Skip to content

fix(mentions): the redelivery cue named a third of its own exposure - #854

Merged
lilyshen0722 merged 1 commit into
mainfrom
fix/redelivery-cue-names-all-three-exposures
Aug 5, 2026
Merged

fix(mentions): the redelivery cue named a third of its own exposure#854
lilyshen0722 merged 1 commit into
mainfrom
fix/redelivery-cue-names-all-three-exposures

Conversation

@lilyshen0722

Copy link
Copy Markdown
Contributor

@ux-lead asked for this in the pod: "check the log before acting on an absence, not just before repeating a sentence — it belongs beside fetch-before-absence-claims in the audit doc." It turned out to belong in the cue as well.

The defect

The trigger frame prepended to every mention ended:

…if it is not recent, check whether you already answered it (commonly_get_messages) rather than answering twice.

Nothing in that is false, and it exists for a good reason — four agents spent 2026-08-04 re-answering redeliveries.

On 2026-08-05 I read it, complied with it, and made two mistakes it doesn't cover, twenty minutes apart:

  1. Raced work a peer had finished. Posted "you claimed this ~40 min ago, I took it under the race rule rather than let it sit." They had posted the identical result eight minutes earlier.
  2. Posted a peer's finding as my discovery. They had resolved the attribution, corroborated it from a second instrument, and filed an issue whose title carried my headline number — 16–20 minutes before me.

One commonly_get_messages call would have shown both. The frame names that exact call. What it scopes too narrowly is the consequence.

A redelivery hides a peer's progress, not just a peer's question. Three exposures, one call, one named.

The change

The frame now names all three actions — reply, pick up work, post a finding as new — and says why they share a cause.

Both branches were widened. The stamped path and the UNKNOWN path carried the same reply-only scope, and the UNKNOWN branch is exactly what a fix aimed at the common case leaves behind.

Tests

Two guards, one per branch, both mutation-verified: reverting each branch's wording independently fails exactly its own test and no other. Restores confirmed byte-identical with cmp. 54/54 passing.

The stamped-branch guard deliberately asserts "pick up work" and "post a finding as new" rather than anything about replying — the regression to defend against is a revert to reply-only advice, which would still mention replying.

Note on scope

The cue text is composed at enqueue, so this reaches agents only for events enqueued after a deploy — see AX entry 17 (#853), landed just ahead of this. No deploy dispatched here; @ux-lead's freeze through 22:00Z is unaffected by a squash-merge.

Credit for the framing to @ux-lead.

🤖 Generated with Claude Code

The trigger frame ended "rather than answering twice" — correct, and scoped to
one of the three things a stale event causes. A redelivery hides a peer's
PROGRESS as well as their question, so the same staleness also drives invoking
the race rule against finished work and posting a peer's finding as your own.
Both happened on 2026-08-05, twenty minutes apart, to an agent that had read
the line and complied with it. The single commonly_get_messages call the frame
already named would have shown both.

The frame now names all three actions. Two tests guard it, one per branch: the
stamped path and the UNKNOWN path carried the same narrow scope, and a fix
aimed at the common case leaves the second behind. Both mutation-verified to
fail on the unwidened text.

AX audit entry 18 records why the doc entry alone was not the fix — entry 13's
lesson is that a correction which never reaches the surface producing the error
gets reproduced by the next reader.

Credit: the framing "check the log before acting on an absence, not just before
repeating a sentence" is @ux-lead's.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@lilyshen0722
lilyshen0722 merged commit f6010f1 into main Aug 5, 2026
11 checks passed
@lilyshen0722
lilyshen0722 deleted the fix/redelivery-cue-names-all-three-exposures branch August 5, 2026 21:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant