tui-purple-styled

TUI: purple-styled bottom input box bleeds into wg nex; should not be purple anyway

Metadata

Statusdone
Assignedagent-70
Agent identityf51439356729d112a6c404803d88015d5b44832c6c584c62b96732b63c2b0c7e
Created2026-04-26T17:25:32.376786813+00:00
Started2026-04-26T18:01:34.319054156+00:00
Completed2026-04-26T18:16:40.156320774+00:00
Tagseval-scheduled
Eval score0.75
└ blocking impact0.85
└ completeness0.75
└ coordination overhead0.80
└ correctness0.72
└ downstream usability0.75
└ efficiency0.70
└ intent fidelity0.61
└ style adherence0.80

Description

Description

User reports (verbatim): 'then it offers the bottom purple (cool color bro but not right anymore) as an input to wg nex. there is a nightmare going on with this.'

Two sub-bugs in this:

Sub-bug A: input box is purple

The bottom input box in the TUI chat pane is rendered in purple (or with purple text/border). User says: 'cool color but not right anymore.' They've been complaining about purple all session — for the priority badge AND apparently this input box. Color should be default terminal color, no styling.

Sub-bug B: input box content leaks into wg nex execution

The 'offers as an input to wg nex' part is harder to parse. Possibility: the previous chat output (what wg nex emitted before faulting) ends up pre-populated as the user's NEXT input — i.e., when nex faults and the user types a new message, the input box already contains stale text from the previous turn / from nex's last output. So the next 'send' actually sends back nex's own broken output. Weird state-mismatch.

OR: the input box border/styling visually merges with the failed-nex output above it, making it unclear what the user is typing vs what nex said. UI confusion, not a state-mismatch.

Either way: investigate and fix. Repro should follow the same wg nex smoke: init in scratch with -x nex + lambda01 endpoint + qwen3-coder, open TUI, send a message, observe the input-box state after the fault.

Files likely to touch

  • src/tui/viz_viewer/state.rs (chat pane state, input box state machine)
  • src/tui/pty_pane.rs (input rendering)
  • TUI input-box widget (find via grep for 'input' or 'composer' near the chat module)

Validation

  • Failing tests first:
    • test_chat_input_box_color_is_default — no purple ANSI in the input box style
    • test_chat_input_box_does_not_capture_previous_output — after a fault, input box is empty (or preserves only what user typed, never executor output)
  • Implementation makes tests pass
  • cargo build + cargo test pass with no regressions
  • Manual smoke: scratch dir + nex + lambda01 + qwen, open TUI, send a message, fault occurs → input box is in default color, is empty, ready for next user input

Depends on

Required by

Log