Expand description
The delivery canary (D-13): the guard that notices when the undocumented CLI behaviour this whole arc rests on has gone away.
§Why a planted token rather than a version check
Claude Code’s task-notification delivery — the CLI waking a live session
back up after a background task finishes — is undocumented behaviour,
observed only on claude_code_version 2.1.220. A CLI update can withdraw it
without any announcement, and if it is withdrawn then every multi-plan wave
silently orphans its dispatched work: exactly the 999.64 shape this phase
exists to close. Reading the version string would guard a proxy for the
behaviour, not the behaviour, and would go on reporting healthy the moment
the same version number stopped meaning the same thing. So the guard plants
a value only DevFlow knows and confirms it comes back.
§What a Confirmed outcome does and does not mean
It means the notification path is alive. It NEVER means the dispatched work happened. The agent can read the token out of its own prompt and emit it without doing anything at all — that is 999.67’s shape, accepted here deliberately (threat T-31-11) rather than mitigated, because mitigating it needs per-child tokens and D-14 defers those on size. Summaries and merges remain the evidence of work (D-16/D-18). Nothing in this module may be rephrased to imply otherwise.
§Where the trust decision is made
Not here. The CLI echoes the operator’s prompt back into the same stdout as
a user event, so the planted token will appear in the capture whether
or not anything was delivered — that echo is what produced the checkpoint
false positive 30-05 had to fix. The question “did this token come back from
somewhere trustworthy?” is therefore answered by exactly one function in
this codebase, crate::agent_result::token_reported_in_capture, which
confines the match to events that are both type: "result" and
orchestrator-authored. This module delegates to it and holds no notion of
its own about which lines are trustworthy — a second such notion would be
free to drift away from the first, and the drift would be invisible.
Structs§
- Claude
Canary Launcher - The real launcher: runs one throwaway
claudeturn over the same bidirectionalstream-jsontransport a production stage uses.
Enums§
- Canary
Outcome - What one canary run established.
Constants§
- TOKEN_
PREFIX - The fixed, greppable prefix every declared canary token carries.
Traits§
- Canary
Launcher - How the canary gets a child to talk to.
Functions§
- canary_
capture_ path - Where one canary run’s throwaway capture lands.
- canary_
prompt - The throwaway prompt: dispatch one trivial background task, wait for its completion notification, and only then report.
- claude_
cli_ version - The
claude --versionstring, for the run’s provenance. - declare_
token - Declare a fresh success token for one canary run.
- run_
delivery_ canary - Run one delivery canary and report what it established.