specs/003-inline-approvals/quickstart.md
Repeat the Claude approval-channel probe
Historical probe artifact. Prepared against commit
eaf8076on 2026-10-02. The updated repository already implements native permission replies through spec 013 and ADR-0015. This document records the probe design, not the current implementation contract.
Run from the repository root on Linux. This live experiment uses your existing Claude login and model allowance. It starts two short Haiku sessions in temporary directories and an isolated signaltty server. It installs no personal hooks. Claude can create transcript and workspace trust records for those sessions.
Build the server:
sh1 cargo build -p signaltty-server Check the CLI and login:
sh1 claude --version 2 claude auth status Run the live experiment:
sh1 python3 specs/003-inline-approvals/probe.py
The controller creates a private temporary root and prints its path. It trusts
only the temporary directories it created. Two panes request the exact command
printf approved > approval-proof.txt. The hook waits for an external response;
the controller chooses allow for one pane and deny for the other.
Both result records must contain passed: true. Only the allow pane creates a
marker with content approved. The deny pane displays Denied by PermissionRequest hook. Both hooks report their correct injected pane and socket. The probe closes
its panes and shuts down its server in cleanup. A timeout or missing observation
fails the experiment; inspect the printed root's server.log, case screen.txt,
and results.json.
The probe disables updates for its own processes using DISABLE_UPDATES.
The variable is documented in the
Claude environment reference.
The original runs observed versions 2.1.287 and 2.1.288; this rerun records the
currently installed version.
The response file stands in for the future GUI choice. The probe does not test
decision.answer, because that method and the GUI bar are not implemented.
See probe-results.md for the interactive terminal and timeout
experiments, and plan.md for production acceptance checks.