---
name: accused-mechanism-needs-a-production-caller
description: "Before hunting a mechanism a red names, census the accused function's callers — resume_no_control_steal_e2e accused resume_sessions, which had ZERO production callers and had left the daemon path 24 days before the first sighting; an instrument sited by the accusation inherits its error"
metadata: 
  node_type: memory
  type: project
  originSessionId: 3ba73af7-0360-47b8-a4f5-d83cdb1e11b5
  modified: 2026-08-05T01:15:56.799Z
---

**Mechanism.** A failing test names a mechanism in prose (panic text, test name, rig comments). Every
existing discipline says treat that as author-time, not evidence — [[pre-authored-panic-names-an-unmeasured-mechanism]].
This is the sharper arm: the named mechanism can have been **structurally removed from the exercised
path** long before the red, and nothing in the run says so. The prose keeps accusing a function the
product no longer calls. A caller census is one grep and settles it; skipping it can cost weeks of
hunting a path no code takes.

**The instance (releases#123, measured 2026-08-04, hertz).**
`resume_no_control_steal_e2e::brain_respawn_keeps_every_session_controller_and_still_promotes` red
twice, its panic convicting "the respawn's `resume_sessions` STOLE the controller slot (Control
re-attach → `become_controller`) — Failure A". Against the path the rig actually drives:

- The rig spawns a REAL `spt daemon brain` subprocess. Its `run_brain` calls
  **`resume_session_cursors()`** — cursor-only, NO subscribe, therefore no attach and a fortiori no
  steal — `brainproc.rs:255`, identical at `2138b16`, `4b37512` and the tip.
- `resume_sessions()` has **zero production callers**. Exhaustive census: 4, all tests.
- That function itself binds `AttachIntent::Viewer`, never Control, since v0.30.4.
- It left the daemon path at `03c7109` (2026-07-09) — **24 days before the first sighting**.

The freeze is real and measured twice. Its NAMED cause is void at both sighting shas.

**The corollary that cost the most.** The observation arming added in response to the red
(`RESUME_ATTACH_INTENT`, `9c9e6c5`) was placed at `brain.rs:1374` **inside `resume_sessions`** — the
uncalled function. It cannot emit in this rig or in any daemon-brain run. A future log with no such
line reads as "resume chose viewer, all clear" when it means the probe never ran. **An instrument
sited by the accusation inherits the accusation's error** — the accusation picks the file you
instrument, so a wrong accusation aims the probe at a dead path and returns a clean zero. Kin
[[a-predicate-without-its-tool-is-not-evidence]], [[verdict-from-probe-competence]].

**Second lever from the same measurement — check where the window OPENS.** `t0` is sampled after the
ready stamp, and the brain stamps ready only AFTER resume completes. So resume AND any earlier freeze
fall in a blind zone that closes before the window opens: `gained==0` says a session was flat ACROSS
the window and can never say WHEN or WHY it froze. A depressed `t0` is then the early-freeze signature
— in both sightings the victim was session 0 **despite session 0 carrying the longest head start**
(spawned first): `[7,12,12]→[7,25,25]` and `[4,17,16]→[4,32,33]`. A discriminator whose window opens
after the event it names cannot attribute, however sound its arithmetic.

**Why:** retirement is invisible to the artifacts that name the mechanism. Panic strings, test names,
REQ tags and rig comments all survive the deletion of the path they describe, and a red re-prints them
with full confidence. The fix that retired the mechanism (here the round-3 SharedSend cursor-only
split) lands in a different file from the test that keeps accusing it, so no diff ever shows the two
touching. Kin [[assert-string-identity-must-include-the-predicate-subject]] (an assert string carried
across a mechanism change), [[stable-anchor-is-not-a-recycling-defense]],
[[source-read-needs-its-sha-and-ancestry]].

**How to apply:**
- **Grep the accused function's callers before anything else** — it costs one command
  ([[measure-what-costs-one-command]]). Zero production callers ⇒ the named mechanism is void and the
  hunt re-aims immediately.
- **Do the census AT THE SIGHTING SHAS, not only at the tip.** A path present today may have arrived
  after the red, or vice versa. Here `git show <sha>:<file>` at both shas is what made the claim
  hold ([[source-read-needs-its-sha-and-ancestry]]).
- **Date the retirement.** `git log -S` on the call gives the commit and the date; "24 days before the
  first sighting" is what turns a code observation into a disarm.
- **Before trusting an instrument's silence, check it can fire on the path under test.** Site probes
  from the measured call path, never from the panic's accusation.
- **Do NOT repin the assertion or delete the test on this finding alone.** The rig still guards a
  revert of `brainproc.rs:255` back to a subscribing resume; the freeze it caught is real and remains
  un-attributed. Report the void, let the gater re-aim ([[report-measurement-never-issue-direction]]).
