Daily harness signal

Don’t copy the parent into every child

Codex MultiAgentV2 defaults an omitted fork_turns to all. Long or resumed parents can then materialize another large rollout for every full-history child.

July 19, 2026 · JST Fresh · source date July 18 UTC One implementation finding
Implementation lesson: delegation context is stored state, not free background. Pass an explicit bounded fork to every child, then gate unattended runs on measured child-rollout growth.
01 · Fresh · source date 2026-07-18 UTC / 2026-07-19 JST

Make every delegated context boundary explicit

Use when. You use Codex CLI or Desktop MultiAgentV2 from a long-lived or resumed parent that launches subagents.

Action. Upgrade is not a mitigation: issue #34061 reproduces through 0.144.6. In every V2 spawn_agent call, set "fork_turns":"none" when the task packet is self-contained; otherwise set a small positive string such as "3" and include missing requirements and artifact paths in message. Never omit the field: current source defaults omission to "all". For V1 use fork_context:false. Keep agents.max_depth=1 unless recursion is essential. Before unattended rollout, measure $CODEX_HOME/sessions, run one parent plus three children, then measure the delta and largest child JSONL. Do not delete existing history as part of this gate.

task packet → fork_turns: none or N → three-child canary → inspect captured calls and session growth → release or block

Acceptance check. Pass only if every captured V2 tool call carries none or the approved N; no child begins with an embedded parent session_meta; total session-store growth stays below a budget set before the canary; and repeating the canary grows roughly linearly, not by another copy of the parent per child. Any omitted or all fork, duplicated parent metadata, or superlinear growth blocks rollout.

Evidence. #34061 contains privacy-safe filesystem counts and record-type byte totals from Codex 0.142.4–0.144.6: one resumed parent produced 2,393 child files totaling about 731.5 GiB. An independent Linux reproduction found 117.9 MB—99.72% of one child file—persisted before the child’s first actual turn. Codex main source confirms omission becomes all and legacy full-history loading includes stored history. Older issue #14981 had already identified the missing hard kill-switch.

Caveat. none removes conversational context; a bounded N can also omit a required decision. Supply a destination-specific task packet and artifact references, then acceptance-test the child’s output. The report is strongest for legacy-history, long or resumed parents; ordinary paginated, short-lived sessions may grow far less. Codex still exposes no hard config switch that forbids full-history forks, so prompt or skill instructions are guidance, not tool-boundary enforcement.

Compact source notes

  1. Codex issue #34061 (opened July 18, 2026 19:35 UTC / July 19 04:35 JST). Versioned macOS measurements, privacy-safe record accounting, source-path analysis, and an independent Linux reproduction.
  2. MultiAgentV2 spawn handler (retrieved July 19, 2026). Inspectable source: omitted fork_turns becomes all; none creates no fork and a positive integer bounds inherited turns.
  3. Agent-control fork implementation (retrieved July 19, 2026). Shows legacy history loading and retained rollout item classes.
  4. Codex issue #14981 (March 17, 2026). Earlier artifact-backed request for a hard fork-context kill-switch and large-parent warning.
  5. Official Codex subagent guide (retrieved July 19, 2026). Confirms the default depth cap and warns that deeper fan-out increases local resource use.