fix(daemon): resume-choice review follow-ups — steer superpipe, dedicated park counter, RPC ordering - #3087
Closed
lsm wants to merge 1 commit into
Closed
fix(daemon): resume-choice review follow-ups — steer superpipe, dedicated park counter, RPC ordering#3087lsm wants to merge 1 commit into
lsm wants to merge 1 commit into
Conversation
…ted park counter, RPC ordering Addresses the six post-merge findings from #2997: - Steer resume-choice gates compose as message-blocked-steer-route decisionRun in the delivery pipeline (P1), replacing the hand-rolled branch in routeFeedSteerOutcome. - Resume-choice parks track a dedicated __resumeChoiceParks counter, so accumulated turn_blocked/steer parks never consume the resume budget; promotion reset and the filtered wake reset both counters. - Steers parked on sdk_resume_choice recheck resolution after parking and wake immediately when answered mid-window (parity with the turn path). - JobQueueRepository.fail() clears __parkReason on the retry transition so transient-error retries no longer match the resume-choice wake filter. - session.sdkResumeChoice validates the action before start_fresh clears sdkSessionId/sdkOriginPath, so duplicate replays can't detach a live session from its new transcript.
Owner
Author
|
Closing as obsolete: the steer role and routeFeedSteerOutcome this patches were deleted in #3441. Branch retained. |
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Follow-up to #2997 (reverted in #3078): re-lands the full resume-choice park/backoff feature with all six post-merge review findings fixed.
What changed vs #2997
routeFeedSteerOutcomenow delegates to a newmessage-blocked-steer-routedecisionRun inmessage-delivery-pipeline.ts(resolved→requeue_now / budget→dead-letter / park-with-backoff), symmetric withmessage-blocked-turn-route.__resumeChoiceParks, isolated from the generic__parkCount, so a steer that accumulatedturn_blockedparks waiting behind its turn can no longer dead-letter instantly when the turn blocks on a resume choice. Promotion reset and the reason-filtered wake reset both counters.sdk_resume_choicerecheck resolution after the park mutation and wake immediately if answered mid-window (parity with the turn path's TOCTOU fix).fail()clears__parkReasonon the retry transition, so transient-error retries through the processor no longer match the resume-choice wake filter.session.sdkResumeChoiceordering: the action is validated (exists, correct type, unresolved) beforestart_freshclearssdkSessionId/sdkOriginPath— a duplicate replay of an already-resolved choice can no longer detach a restarted session from its new transcript.Tests: 263 across the six affected suites, including new coverage for counter isolation, the steer wake race, and the fail()-clears-stamp path.