The decisive symptomUnrelated Session and RPC operations stall during the first grant, then recover together.
One synchronous path.
workspace-writefirst canonical pathgrant.add(root, true)standing inheritable ACERoute the apparent freeze.
all RPC stallsHost request pathCheck first workspace ACL materialization.only model is slowProvider pathMeasure first-token latency instead.stderr has denialRunner already startedDiagnose sandbox policy or target.Minimal Bash errorPTY platform mismatchUse the focused Minimal preset guide.First use and reuse are different contracts.
cost ∝ descendant treeskip native re-applymay pay first use againReduce both cost and authority.
Async is a state-machine change
A helper process keeps the event loop free, but the Agent needs explicit preparing, ready, and failed states. No child may run before the grant is confirmed.
Ten repair invariants.
- Event loop responds.
- No early child starts.
- One in-flight grant per path.
- Failures stay closed.
- Ready state is explicit.
- Moved path gets new SID.
- Shutdown observes helper.
- Agent gets bounded retry.
- Temp grants stay revocable.
- Windows test measures latency.