-
Notifications
You must be signed in to change notification settings - Fork 1.1k
fix(live): validate upstream sideband handshake before upgrade #4367
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
17 commits
Select commit
Hold shift + click to select a range
dcd2d07
fix(search): retry clean empty answers without masking truncation
lidge-jun 45f703f
test(search): narrow terminal fixture projection
lidge-jun 3652da7
test(search): exercise live output truncation without duplicate replay
lidge-jun 59ec04b
fix(cursor): preserve first overflow and bound stable-thread remints
lidge-jun 36625c7
test(cursor): activate remint guards after first overflow
lidge-jun 321b9b1
fix(live): validate sideband upstream before client upgrade
lidge-jun 46f90d3
Merge latest dev and preserve sideband runtime contract
lidge-jun 1898bba
merge: reconcile current dev documentation for search recovery
lidge-jun 06fc280
Merge remote-tracking branch 'origin/dev' into codex/260912-finish-4363
lidge-jun eca7ce9
fix(cursor): preserve isolated recovery state and active cap retention
lidge-jun 8cafec9
Merge remote-tracking branch 'origin/dev' into codex/260912-finish-4367
lidge-jun 3ad908f
docs: synchronize live sideband handshake ownership
lidge-jun efb3936
fix(search): reject malformed truncated calls before replay
lidge-jun 57b3057
docs: describe cancelled live sideband handshakes
lidge-jun b4cc99e
[skip ci] chore(stack): merge origin/dev into codex/260912-60plus-str…
lidge-jun 4f260b7
[skip ci] chore(stack): merge codex/260912-60plus-stream-search into …
lidge-jun 37bc1a0
[skip ci] chore(stack): merge codex/260912-60plus-stream-cursor into …
lidge-jun File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🗄️ Data Integrity & Integration | 🟠 Major | ⚡ Quick win
Clear the invalidated checkpoint reference before reminting.
The overflow branch deletes
inheritedCheckpointRef, butremintConversationIdchanges only the conversation ID. If no replacement checkpoint is captured, thedonehandler serializes the inherited cursor with the new conversation ID and the deletedcheckpointRef.The post-loop cleanup does not remove the reference for this path because overflow remint requires a non-isolated request with
contextUsageStoreCheckpoints !== false. On the next turn,resolveCursorCheckpointfinds no snapshot for the stale reference and returnsexpired, notmissing_ref.createCursorRequestthen selectsfull-replay, which can trigger the overflow again.Remove only
checkpointRefbefore reminting. Preserve the other cursor continuation fields.Proposed fix
📝 Committable suggestion
🤖 Prompt for AI Agents