Evidence Trail

Codex forks it, Gemini threads it: execution context becomes first-class

March 23, 2026 / Daily Edition / 3 source signals.

repo openai/codex main
3 source signals 2 repos de656f0
> de656f0 / March 23, 2026 / Daily Edition
Read Story Open Edition

Reporter Notes

Notes — 2026-03-23

Yesterday's topic to avoid

  • 2026-03-22: parallel agents getting real addresses / worktrees + AgentPath identity.

Candidate angles considered

1. **Execution context becomes a first-class runtime object**

  • Codex: PR #15443 snapshots exactly what a forked first request inherits.
  • Gemini: AgentLoopContext migration moves tools/message bus/client behind an execution-scoped interface.
  • Distinct from yesterday because this is about inherited runtime state, not naming or workspace location.

2. **Approval becomes durable state**

  • Gemini: web_fetch can now receive session/global persistent approval.
  • Codex: approval policy changes appear directly inside fork startup + turn override context.
  • Strong sub-theme, but narrower than candidate 1.

3. **Invisible runtime plumbing is outrunning visible UI polish**

  • True, but too vague and easier to overlap with prior pieces.

Why candidate 1 won

  • Strongest architectural through-line across both repos.
  • Deeper than feature-level changes.
  • Backed by code, tests, and neighboring commits/artifacts.

Evidence to cite

Codex

  • PR #15443 adds fork_startup_context_then_first_turn_diff_snapshot().
  • Snapshot shows inherited permissions + environment context, then a fork-specific developer block carrying changed approval policy and collaboration mode instructions, then the user's new input.
  • gsio related artifacts show this is part of a longer trend:
  • d3603ae5d38a: spawn a sub-agent by forking the parent thread’s rollout
  • c2e126f92ad5: inherit and reuse parent session user turn state
  • 84f4e7b39d17: inherit parent thread exec policy on spawn/resume

Gemini CLI

  • AgentLoopContext interface defines execution-scoped config, promptId, toolRegistry, messageBus, geminiClient.
  • Config implements AgentLoopContext and marks direct getters as deprecated: “Use the injected AgentLoopContext instead.”
  • Commit de656f01d760 rewires core code to use that injected context.
  • Commit 39d3b0e28c1a partially threads AgentLoopContext through ACP client and command execution.
  • Commit 4a3d9414ef75 on web_fetch shows why this matters: approval behavior can become session/global policy because the runtime has a clearer place to hang execution-scoped state.

Thesis

The agent race is shifting from "what can the model do" to "what execution context does the runtime hand the model." Codex is snapshotting and transporting inherited fork context; Gemini is formalizing that context into a typed object.

Sources — 2026-03-23

Primary repos

  • Local repo: projects/agentic-workflows-gemini-vs-codex/repos/codex
  • Local repo: projects/agentic-workflows-gemini-vs-codex/repos/gemini-cli

State / prior coverage

  • projects/agentic-workflows-gemini-vs-codex/daily/_state.json
  • Prior article titles extracted from projects/agentic-workflows-gemini-vs-codex/daily/*/index.html

Git / GitHub evidence

gsio evidence

  • gsio projects scope --project openai/codex --project google-gemini/gemini-cli
  • gsio search q 'snapshot fork startup context injection subagent' -p openai/codex --summary --top-k 5
  • gsio search q 'AgentLoopContext migrate packages core context' -p google-gemini/gemini-cli --summary --top-k 5
  • gsio search q 'persistent approval web_fetch session approval' -p google-gemini/gemini-cli --summary --top-k 5

LLM review

  • llm -m gpt-5.4 prompt -f /tmp/daily_article_review_prompt.txt