tui-live-log

TUI live log pane shows empty for running codex agents (pty/stdout stream not captured)

Metadata

Statusdone
Assignedagent-952
Agent identityf51439356729d112a6c404803d88015d5b44832c6c584c62b96732b63c2b0c7e
Created2026-04-28T21:44:00.605462285+00:00
Started2026-04-28T21:51:40.457221641+00:00
Completed2026-04-28T22:07:51.062857177+00:00
Tagseval-scheduled
Tokens2344867 in / 5609 out
Eval score0.74
└ blocking impact0.80
└ completeness0.65
└ constraint fidelity0.85
└ coordination overhead0.85
└ correctness0.75
└ downstream usability0.75
└ efficiency0.75
└ intent fidelity0.88
└ style adherence0.80

Description

Description

When a codex agent is actively running and producing output (visible in .wg/agents/<id>/output.log), the TUI's live log pane shows empty. Confirmed today on agent-941 (create-agents-md cycle iteration 2): output.log was 28+ lines and growing while the TUI live log pane showed nothing.

User quote: 'if create-agents-md is running i don't see it. the log is completely empty' — followed by 'codex log view... it's busted'

This is distinct from:

  • tui-detail-view (iteration-specific FLIP score labels)
  • log-raw-view (head/tail summary feature)
  • fix-pty-output (already-fixed PTY doubling)

This is specifically: codex agents' stream isn't being picked up by the TUI's live log pane, while claude agents' streams are. The wg-level log entries (wg show <task> Log section) DO populate correctly for codex — only the live pty/stdout stream rendering in the TUI is missing.

Likely investigation

  1. Compare how claude vs codex agent streams are tee'd / read by the TUI. Likely src/tui/log_view or wherever the live pane subscribes.
  2. Codex CLI emits JSONL on stdout (item.completed / item.started / agent_message etc) — confirm the TUI's parser handles that format. The PTY-doubling fix (fix-pty-output) handled streaming_text vs finalized message races; this might be a similar handler bypass for codex's structured stream.
  3. Check whether the live pane is reading output.log directly, or subscribing to a stream channel that the codex handler isn't writing to.

Repro

  1. Start a codex task (any --model codex:* add)
  2. Open TUI, navigate to the running agent's log pane
  3. Observe: pane is empty even while tail -f .wg/agents/<id>/output.log shows active writes

Validation

  • Failing test first: render the TUI log pane with a fixture that mimics a running codex agent's output stream; assert non-empty pane content
  • Claude tasks' streams continue to render unchanged (regression check)
  • Manual smoke: dispatch a codex task on codex:gpt-5.5, open TUI live log on the agent — pane shows the codex stream as it arrives
  • cargo build + cargo test pass

Depends on

Required by

Log