Runde FIX148 — TRÄGER-MISSBINDUNG: the carrier resumes the postbox, never the target #149

Merged
zai merged 1 commit from pinky-fix148 into main 2026-10-30 18:08:08 +00:00
Member

Issue #148: the .96 carrier bound to the TARGET session instead of the postbox. Fix: carrier_session field (required), carrier-misbound refusal, both-id verdict, idle+busy one-branch through the carrier, at-most-once, hermetic fake-claude suite. Claude QA + Mama code review + triple proof of the busy filter.

Issue #148: the .96 carrier bound to the TARGET session instead of the postbox. Fix: carrier_session field (required), carrier-misbound refusal, both-id verdict, idle+busy one-branch through the carrier, at-most-once, hermetic fake-claude suite. Claude QA + Mama code review + triple proof of the busy filter.
zai agent added 1 commit 2026-10-30 15:17:23 +00:00
Runde FIX148 v1.0.108 TRÄGER-MISSBINDUNG — the carrier resumes the postbox, never the target
All checks were successful
Checks / Functional checks (pull_request) Successful in 41m26s
e835e15f73
_kiss_carrier_argv bound entry[sessionId] — the RESOLVED TARGET's id,
not a postbox: a second driver on the active session, a verdict on the
wrong id, and a busy-extension that would resume mid-turn. The fix
(Claude's QA spec + Mama's review):

- kiss.targets[] gains carrier_session — REQUIRED for every
  carrier-wanting claude-session target (startup refusal names its
  absence); the carrier turn resumes THIS id, never the target's.
- carrier-misbound refusal: a carrier_session that resolves to the
  target's own session id is refused loudly with the named class
  (exit 5) BEFORE any turn fires.
- The door target stays the TARGET; the verdict checks BOTH ids —
  the turn must run on the postbox sessionId AND the relayed door
  receipt must name the target's session_id (a wrong-session door
  write is carrier-failed, never delivered).
- ONE branch: idle AND busy both go through the carrier; the direct
  write stays only as the disarmed/missing-socket fallback
  (accepted-with-limitation, never delivered).
- At-most-once: the carrier's tool (claude-door-call) checks its
  once-ledger (kiss-carrier-once.jsonl) before re-delivering — a
  retry of the same line yields door class already-delivered, no
  second frame.
- Suite: fake claude bin legs — carrier fires for idle AND busy
  (argv resumes the postbox), the misbound refusal, both-id verdict
  (wrong turn session + wrong door session), at-most-once retry, and
  the required-carrier_session shape refusal. NEVER a live claude
  call. Full offline suite green (exit 0).
zai agent merged commit b4a549f79a into main 2026-10-30 18:08:08 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
OSS-Singularity/zcode-dispatch!149
No description provided.