fix(proxy): reconcile durable full resend owner - #1484
Conversation
|
Triage note: this attacks a real and distinct defect — #1486 preserves the unanchored full resend but leaves the broad Two changes before it leaves draft:
Happy to run review gates once it is restacked, marked ready, and CI has run the test shards (they never started on this draft). |
|
@mhooooo friendly nudge — #1486 merged on 07-27, so this can now be restacked directly onto |
91d8935 to
24a9d1b
Compare
|
@codex review |
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Per the 07-30 maintainer takeover notice (no response for two triage rounds), this has been taken over as #1599: your commit is preserved with original authorship, restacked onto current main (post-#1486/#1394), with the codex P1 addressed via bridge-level failover coverage on top. This PR will be closed when #1599 merges — thanks for the implementation, @mhooooo; happy to hand it back if you return before then. |
…nt main Maintainer takeover follow-up on top of @mhooooo's original commit: - Reconcile with the post-#1394 streaming flow: keep the recovery-attempt journal state alongside the sealed full-resend proof, and keep the unit test's account-neutral classifier assertion conditional (main now computes neutrality eagerly for the recovery journal on the preserved path). - Update the stale anchor-injection comment: with the sealed proof, durable anchor injection can now also run for a full resend that failed proof verification, not only for non-full-resend payloads. - Add bridge-level failover coverage (codex P1 on #1484): complete a turn on account A through the real create/response-create gate, pause A, and assert the verified session-header full resend fails over to account B with the complete history and no previous_response_id. - Satisfy the current openspec validator by moving the MUST clause onto the first body line of the modified requirement. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
* fix(proxy): reconcile durable full resend owner * fix(proxy): restack durable full-resend owner reconciliation on current main Maintainer takeover follow-up on top of @mhooooo's original commit: - Reconcile with the post-#1394 streaming flow: keep the recovery-attempt journal state alongside the sealed full-resend proof, and keep the unit test's account-neutral classifier assertion conditional (main now computes neutrality eagerly for the recovery journal on the preserved path). - Update the stale anchor-injection comment: with the sealed proof, durable anchor injection can now also run for a full resend that failed proof verification, not only for non-full-resend payloads. - Add bridge-level failover coverage (codex P1 on #1484): complete a turn on account A through the real create/response-create gate, pause A, and assert the verified session-header full resend fails over to account B with the complete history and no previous_response_id. - Satisfy the current openspec validator by moving the MUST clause onto the first body line of the modified requirement. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> --------- Co-authored-by: mhooooo <n.tanyawit@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Summary
Stop a deterministic pre-dispatch retry loop when a durable HTTP bridge owner and a broad legacy
CODEX_SESSIONsticky row disagree.A verified complete resend now starts the fresh bridge on the durable owner without consulting or forwarding the stale broad alias. The proof supports both retained prior assistant output and the response-bound pending-tool-call manifest introduced by #1486.
Root cause
#1486 preserves verified unanchored full resends, but account selection still receives the broad session-header affinity. If the durable bridge row owns the task on account B while a legacy raw session row points at account A, selection returns retryable
continuity_owner_conflict. Repeating the same request cannot change either persisted owner, so the client loops.Changes
main; the obsolete fix(proxy): avoid stale anchor on durable full resend #1481 dependency commits are gone.responses_input_suffix_matches_pending_tool_callssettlement.Impact
Refs #1393.
Test plan
Checklist
CHANGELOG.mdis unchanged.