You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
bug(codex): browser-pocket server restart is always refused on Codex 0.157 — the empty-composer check cannot see an empty composer #1313
requestServerRestart (browser pocket) delivers with requireEmptyNativeComposer: true. For Codex, promptDelivery.ts then requires isCodexNativeComposerEmpty(snapshotScreen()), which expects:
the idle footer <model> · <cwd> on the last row, and
a bare› row above it.
Codex 0.157.0 renders neither when the composer is empty.
Evidence (recorded 2026-09-25, raw PTY stream, codex-cli 0.157.0, 100×30)
Idle, empty composer:
26|› Ask Codex to do anything
28| GPT-6-Sol high fast · ~/Desktop/Development/agent-code
29| ← for agents · ? for shortcuts ⚠ 1 warning · f2 to view
The placeholder is dim (\x1b[2mAsk Codex to do anything), so the › row is never bare.
A second footer row (hints or warnings) sits below the status row.
isCodexNativeComposerEmpty therefore returns false on an empty composer, and the restart is refused with "Codex native input is occupied or cannot be verified empty".
With a typed draft, the row is › please review the draft in plain cells. Only the cell attributes tell a placeholder from a draft, as with Claude.
Expected
An empty composer (bare or dim placeholder) is verified empty, and a typed draft still refuses the delivery.
Plan
Fix together with #800: codex-headless gains a live-buffer, attribute-aware composer read (bottom-pane anchored, 1–2 footer rows), and the app uses it for this check and for Codex draft occupancy.
Activity
docs(quality-loop): progress 13:45 — #63 merged, #1314, q36, #800/#1313…
Merge pull request #1319 from Juliusolsson05/fix/codex-composer-occup…