fix-tui-message

Fix: TUI message-indicator (letter symbol) disappears unexpectedly

Metadata

Statusdone
Assignedagent-1307
Agent identity3184716484e6f0ea08bb13539daf07686ee79d440505f1fdf2de0357707034c3
Created2026-05-01T00:17:00.315168488+00:00
Started2026-05-01T00:18:04.528162049+00:00
Completed2026-05-01T00:47:48.581809084+00:00
Tagsbug,tui,ux, eval-scheduled
Eval score0.91
└ blocking impact0.85
└ completeness0.95
└ constraint fidelity0.85
└ coordination overhead0.90
└ correctness0.95
└ downstream usability0.85
└ efficiency0.85
└ intent fidelity0.70
└ style adherence0.90

Description

Description

The TUI shows a letter / envelope symbol on tasks that have unread messages (from wg msg send). User reports this symbol disappears unexpectedly — task that should have an unread message indicator stops showing it.

User report 2026-04-30: 'the message symbol seems to disappear, like the little letter symbol seems to disappear from the TUI and I don't know why that's happened.'

Likely cause hypotheses

  1. Indicator is cleared too eagerly — maybe any read of task state (not just wg msg read) marks messages as read and removes the symbol
  2. Indicator-render logic doesn't refresh — message gets sent, indicator should appear, but the row's render cache doesn't invalidate until something else triggers a redraw
  3. Per-task vs per-batch state confusion — the indicator may be tracking a stale field that gets overwritten by other state-update paths

Investigation + fix

  1. Find where the indicator is rendered (likely in src/tui/ near the task-list row rendering)
  2. Find where unread message state is computed — is it 'has unread' or 'has any messages'?
  3. Identify the disappearance trigger — what state change clears it inappropriately?
  4. Fix: indicator should appear when wg msg send adds a message and stay until wg msg read is called against that task

Validation

  • Failing test or repro: wg msg send <task-id> 'test' → indicator appears in TUI for that task. Pre-fix: disappears unexpectedly during some state update. Post-fix: stays until wg msg read <task-id>.
  • Live smoke: send a message via wg msg send, watch the indicator across normal TUI activity (state transitions, scrolling, switching tabs). Confirm indicator persists.
  • No regression: indicator correctly clears when read
  • cargo build + cargo test pass
  • cargo install --path . was run before claiming done

Depends on

Required by

Log