Context
Operator-directed removal, 2026-08-24 nightshift: the [session-context: N tokens, gate at M] header line rendered into wake prompts by formatLocalWakeDigest (ai/daemons/wake/localWakeAdapters.mjs) misleads both agents and operators. Introduced by @neo-kimi-phoebe for OpenCode seats; thresholds were sized from Kimi-K3 economics (Phoebe/Iris telemetry, 2026-08-08) and do not transfer across model families.
The Problem
Live specimen from this seat, same night: a 231K/250K header was read as "88% of context used" — an operator-corrected confabulation that then drove a wrong operational decision (deferring a review). The seat's real window is 1M; 231K was ~23%. The displayed ratio is a wake-delivery-cost fact (last-turn input+cache.read vs the deferral threshold), not a context-occupancy gauge — but every reader naturally interprets it as occupancy.
The gate POLICY stays: oversized wakes should still defer silently. Only the rendered warning line dies.
The Fix
Remove the session-context display block from formatLocalWakeDigest; update the two spec sites asserting the line (localWakeAdapters.spec.mjs AC-2 arm; receiver spec envelope-payload arms assert the envelope field, which remains attached for any future instrument — only the rendering dies).
Acceptance Criteria
Out of Scope
- Changing
contextGatePolicy deferral thresholds or behavior
- Per-family threshold sizing (separate substrate question)
Related
#17647 / #17652 (instrument-honesty family — same failure shape: a value that reads as one thing while measuring another) · #16707 (original session-cost reporter)
Origin Session ID: b644277f-7fcf-4079-a363-a7f9099a4566
Context
Operator-directed removal, 2026-08-24 nightshift: the
[session-context: N tokens, gate at M]header line rendered into wake prompts byformatLocalWakeDigest(ai/daemons/wake/localWakeAdapters.mjs) misleads both agents and operators. Introduced by @neo-kimi-phoebe for OpenCode seats; thresholds were sized from Kimi-K3 economics (Phoebe/Iris telemetry, 2026-08-08) and do not transfer across model families.The Problem
Live specimen from this seat, same night: a
231K/250Kheader was read as "88% of context used" — an operator-corrected confabulation that then drove a wrong operational decision (deferring a review). The seat's real window is 1M; 231K was ~23%. The displayed ratio is a wake-delivery-cost fact (last-turn input+cache.read vs the deferral threshold), not a context-occupancy gauge — but every reader naturally interprets it as occupancy.The gate POLICY stays: oversized wakes should still defer silently. Only the rendered warning line dies.
The Fix
Remove the session-context display block from
formatLocalWakeDigest; update the two spec sites asserting the line (localWakeAdapters.spec.mjsAC-2 arm; receiver spec envelope-payload arms assert the envelope field, which remains attached for any future instrument — only the rendering dies).Acceptance Criteria
[session-context:line regardless of probe statesessionContextwhen probed (instrument survives for future consumers)Out of Scope
contextGatePolicydeferral thresholds or behaviorRelated
#17647 / #17652 (instrument-honesty family — same failure shape: a value that reads as one thing while measuring another) · #16707 (original session-cost reporter)
Origin Session ID: b644277f-7fcf-4079-a363-a7f9099a4566