claude-session door: accepted from a non-Claude sender process never reaches the model — the receiver carries only lines from Claude Code descendants (measured 2026-10-28) #134
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Measured 2026-10-28 (Haus Claude, receiver session
388e03f6-cd27-4a6a-89fb-c634a9c98314)A⁶ fired
--kiss-testtwice through the v1.0.95claude-sessiondoor into the running Claude Code session named in PR #133 (15:52:36 peer idle, 15:56:13 peer busy). Both receipts:accepted, pid 8038 (the live row),delivered: true. Neither line ever reached the model — nothing in the receiver's transcript, no turn started, nothing surfaced in the following tool rounds.Controlled self-tests into the same session, same minute:
claude_door.pyclaude_door.pysystemd-run --user, NOT a Claude child)The shipped client and the design-round client build byte-equal frames. Conclusion: the receiving Claude Code carries a door line to the model only when the SENDING PROCESS descends from a Claude Code process; from any other process (the dispatcher, a systemd scope, a shell) the connection is held open and the line is silently kept at the door. Every earlier measurement that showed the line arriving (2026-10-27 design round) was sent from inside a Claude session.
Consequences
acceptedmust not map todelivered: true. Suggestdelivered: false,receipt_class: accepted,reason: "sender is not a Claude Code process — the receiver keeps the line at the door (measured 2026-10-28)", and the same sentence in USAGE §34.3 / README._kiss_verdictcurrently returns delivered foracceptedalone.claudebackend into the postbox session, extended with exactly ONE allowed tool call that runs the door client as the headless session's child (the sender then IS a Claude descendant); (ii) a small long-lived family Claude session ("claude-relay") that forwards door lines via the Claude-to-Claude lane; (iii) a question to Claude Code's makers whether non-Claude peers are meant to be carried at all.claude -p --resume) stays the verified Z → Claude lane; the door stays the verified Claude → Claude lane.Evidence:
~/.zcode/tmp/claude-adapter-design-20261027/task1-pr133-review/EDGE-PROOF.md(+ receipts, self-test receipts, client diff, transcript rows). Refs: PR #133, release v1.0.95, co-review rounds 1–3.🤖 Generated with Claude Code
send --socket … --thread …(stdin line), the transport implementssend <thread> "<line>" --json; the backend has never delivered live #135--resume entry[sessionId]) instead of the postbox — second driver on a running session; busy extension must not drop the status check #148