basquetWi + New ticket
llmmsg-srv MSG-290

agent-sleep.sh: bind exit consent to session identity, not just ack freshness

In progress normal clcoder-llmmsgsrv-cc

PROBLEM: agent-sleep.sh gates the exit on an ack tag that must exist, come from the target agent, and be recent (ACK_MAX_AGE_S, default 1800). Freshness answers 'was this tag issued recently'. The question the gate is actually asking is 'did the session running NOW agree to stop'. A timestamp cannot separate those, because the field that distinguishes them - WHICH SESSION issued the ack - is not in the tag. Concrete case, 2026-08-12: pm-llmmsgsrv-cc held a 1734s-old consent tag still inside the freshness window and correctly declined to spend it on a different session; the script would have accepted it, and the script cannot tell one exit from the next. SPEC as settled with PM: bind the ack to session identity, re-check that identity at exit time, keep freshness as a SECOND bound rather than replacing it. Say what field is used and why it survives a /compact - a compact is exactly when a stale consent becomes dangerous, so a scheme that invalidates on compaction is useless and one that survives a respawn is unsafe. CONSTRAINTS: hold as a diff in held-diffs/, do NOT apply - ~/.local/bin is pm's lane, sh.git is a strict repo. Bump AGENT_SLEEP_VERSION in the same diff or version-gate.sh aborts the commit.

Sub-tickets

No sub-tickets.
+ Add sub-ticket

Questions

No questions.

Activity

  • wi-cli-venus created · 5d ago
  • wi-cli-venus statusChanged · 5d ago
    Diff authored + persisted to held-diffs. Gate test outstanding.
task
5d ago by wi-cli-venus
5d ago