Evidence Trail
Gemini Lets the Model Schedule Parallel Tools. Codex Makes the Runtime Decide.
March 19, 2026 / Daily Edition / 5 source signals.
openai/codex
main
5 source signals
2 repos
source trail
> source trail / March 19, 2026 / Daily Edition
Reporter Notes
Notes — 2026-03-19
Selected angle
**Gemini lets the model mark dependency barriers for parallel tool execution; Codex encodes concurrency permission in tool metadata and enforces it in the runtime.**
Why this won:
- Distinct from yesterday's subagent/trust story
- Strong code evidence on both sides
- Broadly legible: same goal, different control plane
Candidate angles considered
1. Picked: model-directed vs runtime-enforced tool parallelism
2. A2A fabric vs threaded app-server protocol
3. Terminal agents hiding latency via UI/runtime changes
Key evidence
Gemini CLI
- PR #21933: model-driven parallel tool scheduler
packages/core/src/scheduler/scheduler.ts- batches contiguous parallelizable calls
_isParallelizable()checkswait_for_previous; default is parallelpackages/core/src/tools/tools.ts- injects
wait_for_previousinto every tool schema packages/core/src/prompts/snippets.ts- prompt explicitly tells the model tools run in parallel by default
- instructs setting
wait_for_previous=truefor dependent tools packages/core/src/scheduler/scheduler_parallel.test.ts- verifies wave scheduling and dependent/sequential cases
Codex
codex-rs/core/src/tools/registry.rsConfiguredToolSpec { supports_parallel_tool_calls: bool }codex-rs/core/src/tools/router.rstool_supports_parallel()reads metadata from configured specscodex-rs/core/src/tools/parallel.rsToolCallRuntimeownsparallel_execution: Arc<RwLock<()>>- parallel-safe tools take a read lock, others take a write lock
- Mar 12 commit
09ba6b47ae5c: reuses turn-scopedToolCallRuntimein code mode worker - gsio search on Codex points to earlier commits plumbing model parallel tool support plus race/ordering fixes, but the runtime code is the clearest grounding.
Repo freshness / trend signal
gh repo view openai/codex --json stargazerCount,forkCount,updatedAt- 66,195 stars, 8,835 forks, updated 2026-03-19T05:01:31Z
gh repo view google-gemini/gemini-cli --json stargazerCount,forkCount,updatedAt- 98,301 stars, 12,405 forks, updated 2026-03-19T04:56:44Z
- Gemini merged PRs within ~24h include gateway auth via ACP and resilient subagent tool rejection, so the repo is clearly active; the scheduler change from Mar 12 still stands out as the sharper architecture story.
Editorial guardrails
- Do **not** say Gemini has no runtime scheduler
- Do **not** say Codex has no model planning role
- Frame as different **primary control planes**, not absolute opposites
- Avoid overlap with yesterday by focusing on concurrency/scheduling, not trust/isolation
CTA / ending question
Which control plane will age better as terminal agents grow more autonomous: model-planned parallelism, or runtime-enforced parallelism?
Sources — 2026-03-19
Published article target
- Edition route: /editions/2026-03-19/
GitHub / web sources
- Gemini CLI PR #21933 — model-driven parallel tool scheduler
https://github.com/google-gemini/gemini-cli/pull/21933
- OpenAI Codex repository
https://github.com/openai/codex
- Google Gemini CLI repository
https://github.com/google-gemini/gemini-cli
Local repo source files
Gemini CLI
repo source/gemini-cli/packages/core/src/scheduler/scheduler.tsrepo source/gemini-cli/packages/core/src/tools/tools.tsrepo source/gemini-cli/packages/core/src/prompts/snippets.tsrepo source/gemini-cli/packages/core/src/scheduler/scheduler_parallel.test.ts
Codex
repo source/codex/codex-rs/core/src/tools/parallel.rsrepo source/codex/codex-rs/core/src/tools/router.rsrepo source/codex/codex-rs/core/src/tools/registry.rs
Supporting command evidence
Repo freshness / popularity
gh repo view openai/codex --json stargazerCount,forkCount,updatedAt,description,url
gh repo view google-gemini/gemini-cli --json stargazerCount,forkCount,updatedAt,description,url
Gemini scheduler evidence
rg -n "wait_for_previous|parallel" \
packages/core/src/scheduler/scheduler.ts \
packages/core/src/tools/tools.ts \
packages/core/src/prompts/snippets.ts \
packages/core/src/scheduler/scheduler_parallel.test.ts
Codex runtime evidence
rg -n "supports_parallel_tool_calls|tool_supports_parallel|RwLock|parallel_execution" \
codex-rs/core/src/tools/parallel.rs \
codex-rs/core/src/tools/router.rs \
codex-rs/core/src/tools/registry.rs \
codex-rs/core/src/client_common.rs
gsio trend queries
gsio search q 'parallel scheduler wait_for_previous tool' -p google-gemini/gemini-cli --output summary
gsio search q 'supports_parallel_tool_calls parallel tool runtime lock' -p openai/codex --output summary