← NEWS DESK
release impact

OpenClaw Codex Child Agents Keep Their Hook Policy Across Turns After Merged Relay Repair

Long-lived Codex child agents lost OpenClaw hook policy when their parent turn ended, failing later tool calls with 'native hook relay not found'. The merged fix introduces per-turn immutable relay bindings that survive cross-turn polling without granting session-wide authority.

Independent reporting and tested guidance for OpenClaw operators · Editorial standards

Operators using Codex child agents for long-running work hit a specific failure: a child that outlived its spawning turn lost OpenClaw’s hook policy, and its later tool calls failed with native hook relay not found. Cross-turn wait_agent workflows — spawn a child, end the turn, poll from a later turn — broke exactly when the child did something interesting.

What changed

The repaired architecture keeps one stable process-local relay route while separating immutable bindings per originating turn:

  • child hook events select their exact origin binding by agent_id; foreground events require the exact active turn_id;
  • bindings own their approvals, cleanup, and TTL renewal, so continued life does not become session-wide bearer authority;
  • the route binds from turn/started before early tool calls can race turn start, composes only for transient starts that intentionally preserve an existing thread binding, and fails closed if route ownership or renewal is lost;
  • active children renew their relay lifetime from authoritative thread state, so silent long-running work no longer dies simply because the parent turn ended.

Gateway restart remains deliberately fail-closed: children must be redispatched, because persisting privileged relay authority across restarts would be a different security architecture.

Operator guidance

  1. If you built workarounds around native hook relay not found — keeping parent turns alive artificially, splitting child work into same-turn chunks — you can retire them once this lands in your channel.
  2. Design long child jobs around process lifetime, not turn lifetime: the same Gateway process must stay up, and restarts still require redispatch. Treat that as a feature for security review, not an inconvenience.
  3. Approval flows now live with the binding. If you audit approvals, audit them per originating turn rather than per session.

THE RECEIPTS

Claims should survive the click.

Primary links used for this article are listed openly. If the evidence changes, the verification date changes with it.
  1. 01PR #128485: preserve child hooks across turns

THE OPERATOR BRIEF

One useful email when the signal earns it.

Release impact, security changes and repository intelligence. No daily sludge.