Context
PR #13591 implements a narrow Codex Desktop wake-submit timing stopgap for the broader live tracker #13480. Grace's close-target review correctly identified that #13591 cannot truthfully resolve #13480: the code is L2-verifiable in unit/static evidence, while #13480 remains the L4 tracker for live Codex turn-start proof.
This leaf exists so #13591 can keep the mandatory newline-isolated Resolves #N PR-body close target without auto-closing the broader live tracker.
Release classification: boardless — close-target reconciliation leaf for an already-open Agent OS stability PR; not independently release-blocking.
The Problem
The Codex wake delivery path can paste/inject the wake payload successfully while the scripted Enter is intermittently consumed or ignored by transient Codex composer UI. A human Enter later submits the same payload, proving the missing piece is at the submit/turn-start boundary rather than payload construction.
The broader live behavior remains tracked in #13480. This leaf only captures the specific L2 stopgap: increase the Codex-only wait after Escape before pressing Enter.
The Architectural Reality
The affected surface is the Codex branch inside ai/daemons/wake/daemon.mjs, where osascript focuses Codex, clears transient UI, pastes the wake prompt, sends Escape for the Codex-only popover state, waits briefly, and presses Enter.
The current available Codex app-server debug surface proves message injection/acceptance, not submit or turn-start. Therefore this leaf can be proven with mocked daemon route/static evidence plus post-merge observation, but it must not claim to settle #13480's L4 live-proof requirement.
The Fix
Retain the existing Codex wake delivery strategy and lengthen only the Codex-specific post-Escape settle delay before Enter. Keep the existing Submit attempted / turnStartProof=live-required evidence vocabulary so the live tracker remains honest.
Implementation PR: #13591.
Contract Ledger Matrix
N/A — no public API, MCP tool schema, config key, or persisted data contract changes. This is a private wake-daemon timing constant and comment update.
Decision Record impact
None. This leaf does not amend or challenge an ADR.
Acceptance Criteria
Out of Scope
- Native Codex app-server submit or turn-start proof primitives.
- Claiming that live wake delivery is fixed without post-merge L4 observation.
- Closing
#13480.
Avoided Traps
- Avoid closing the broad live tracker from an L2 timing stopgap.
- Avoid another broad timing-guess ticket when the implemented delta is one narrow Codex-only delay.
- Avoid moving the durable solution away from the native submit/turn-start primitive path once Codex exposes it.
Related
- Parent live tracker: #13480
- Implementation PR: #13591
- Prior close-target split precedent: #13291
Creation Evidence
Live latest-open sweep: checked latest 20 open issues on 2026-06-20; no equivalent narrow settle-delay leaf found. #13480 is the broader live L4 tracker, not a duplicate leaf.
A2A in-flight sweep: checked latest 30 all-status A2A messages on 2026-06-20; no competing [lane-claim]/[lane-intent] for this narrow leaf found.
Knowledge Base semantic sweep: query for an existing ticket for lengthening the Codex wake post-Escape submit settle delay returned no matching ticket; nearest historical result was #13291, the prior close-target split precedent.
Origin Session ID: 152f9eee-42e2-4740-8bce-d23e1f575ec8
Handoff Retrieval Hints: Codex wake post-Escape submit settle delay; #13591 close-target leaf; #13480 L4 tracker remains open.
Context
PR #13591 implements a narrow Codex Desktop wake-submit timing stopgap for the broader live tracker
#13480. Grace's close-target review correctly identified that#13591cannot truthfully resolve#13480: the code is L2-verifiable in unit/static evidence, while#13480remains the L4 tracker for live Codex turn-start proof.This leaf exists so
#13591can keep the mandatory newline-isolatedResolves #NPR-body close target without auto-closing the broader live tracker.Release classification: boardless — close-target reconciliation leaf for an already-open Agent OS stability PR; not independently release-blocking.
The Problem
The Codex wake delivery path can paste/inject the wake payload successfully while the scripted Enter is intermittently consumed or ignored by transient Codex composer UI. A human Enter later submits the same payload, proving the missing piece is at the submit/turn-start boundary rather than payload construction.
The broader live behavior remains tracked in
#13480. This leaf only captures the specific L2 stopgap: increase the Codex-only wait after Escape before pressing Enter.The Architectural Reality
The affected surface is the Codex branch inside
ai/daemons/wake/daemon.mjs, where osascript focuses Codex, clears transient UI, pastes the wake prompt, sends Escape for the Codex-only popover state, waits briefly, and presses Enter.The current available Codex app-server debug surface proves message injection/acceptance, not submit or turn-start. Therefore this leaf can be proven with mocked daemon route/static evidence plus post-merge observation, but it must not claim to settle
#13480's L4 live-proof requirement.The Fix
Retain the existing Codex wake delivery strategy and lengthen only the Codex-specific post-Escape settle delay before Enter. Keep the existing
Submit attempted/turnStartProof=live-requiredevidence vocabulary so the live tracker remains honest.Implementation PR: #13591.
Contract Ledger Matrix
N/A — no public API, MCP tool schema, config key, or persisted data contract changes. This is a private wake-daemon timing constant and comment update.
Decision Record impact
None. This leaf does not amend or challenge an ADR.
Acceptance Criteria
ai/daemons/wake/daemon.mjslengthens the Codex-only post-Escape settle wait before Enter.#13480only as the broader live tracker.#13480remains open after #13591 merges for live L4 Codex turn-start observation.Out of Scope
#13480.Avoided Traps
Related
Creation Evidence
Live latest-open sweep: checked latest 20 open issues on 2026-06-20; no equivalent narrow settle-delay leaf found.
#13480is the broader live L4 tracker, not a duplicate leaf.A2A in-flight sweep: checked latest 30 all-status A2A messages on 2026-06-20; no competing
[lane-claim]/[lane-intent]for this narrow leaf found.Knowledge Base semantic sweep: query for an existing ticket for lengthening the Codex wake post-Escape submit settle delay returned no matching ticket; nearest historical result was
#13291, the prior close-target split precedent.Origin Session ID: 152f9eee-42e2-4740-8bce-d23e1f575ec8
Handoff Retrieval Hints:
Codex wake post-Escape submit settle delay;#13591 close-target leaf;#13480 L4 tracker remains open.