A Child Is a Session, Not a Thread
delegate starts a child with its own record, its own leg, and a tool restriction of the parent. Visibility is authority. The child's tools are requested ∩ parent-visible ∩ parent-authorized, resolved against the parent's own surface and policy. An escalating or hidden request is refused loudly, never silently stripped. delegate itself is absent from the child and refused, so depth one is enforced twice. No parent history is inherited. Bounds are the child's own recorded caps.
Until the intersection was the gate, a parent that had denied write could still hand write to a child and apply the change set. Applying a change set is the parent writing. Parent mutation authority is rechecked at apply time as an independent second gate: the parent may apply if it still has write or edit. write:deny plus bash:allow is not enough for parent_not_authorized if edit remains allowed. A bash-holding child does not walk around a write-and-edit deny, because bash is neither. An escalating write request is refused at admit, before apply.
Scratch, Then a Typed Set
A write-capable child works in a scratch copy and returns a typed change set with expected-old digests. The parent verifies every pre-image, stages every new body, then applies through a transaction directory with rollback on failure. A digest mismatch rejects before mutation. This is process-level all-or-nothing, not a claim that POSIX can publish many files at once. In-process children share the process and user — this is not a sandbox.