Repository navigation
fix(claude-queue): a committed notification retires the twin it carries - #1234
Merged
Merged
Conversation
The identity pass matched a queued task notification on its task id alone, but the id is not unique: upstream reuses it when it reconciles a background shell from a previous session, so two different bodies can be queued under one id (divergence-stranded-background-commands.json events 111/112 and 359/360). The first was retired as delivered-observed with the second's uuid as evidence, and the one that left stayed pending. resolveEntryTarget now prefers the claimant whose whole normalized body is inside the entry, and falls back to the id only when a single pending item carries it. Batched deliveries (several different ids in one entry) keep their order. Two corpus tests had blessed the misattribution and are corrected against the recording: 111 is the twin that stays, and the two first-twins the recording never shows departing end as `unconfirmed` on idle rather than being silently retired. Fixes #678 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Juliusolsson05
added a commit
that referenced
this pull request
Sep 25, 2026
…iguity residual Review of #1234: a prefix check passed every test; a wrapped-twin case from the recorded events now fails it. The ambiguous-twin settlement residual (cohort inference after a decline) is documented as accepted: no reworded twin entry exists in 2,410 local transcripts. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Fixes #678
What was wrong
entryClaimsmatched a queued task-notification on its task id alone. The id is present on every recorded notification, but it is not unique: upstream reuses it when reconciling a background shell from a previous session. In the recording, the pairs at events 111/112 and 359/360 are "…was stopped" followed by "No completion record was found…", each under one id.findreturned the first twin, so it was retired asdelivered-observedwith the second twin's uuid as evidence, and the item that actually departed stayed pending.Fix
resolveEntryTarget(inreconcile.ts) mirrorsresolveRemoveCarrierTarget:Batched deliveries, where one entry carries several different ids, are unaffected.
Corrected expectations (evidence, not convenience)
Two corpus tests had blessed the misattribution. #678 predicted this.
unconfirmedon the idle sweep (the strip's existing honest state), and the test asserts exactly that.Tests
find(4 red), returning the first twin when ambiguous (1 red), and dropping the exact pass (2 red).tsc -bis clean.🤖 Generated with Claude Code
Review disposition (A Codex, B Pi)
delivered-inferred)resolveEntryTarget. A's round-2 targeted count: 203 notification entries after same-id twins in 2,413 transcripts; all 203 carry one exact body and zero are reworded. A confirmed the declinestartsWithsurvived)Round 2: A MERGE-READY (decline confirmed); B MERGE-READY.