tui: log / debug overlay #41

Closed
opened 2026-04-11 13:06:27 +00:00 by charles · 0 comments
Owner

User story

As a developer or advanced user, I want an in-app log overlay showing plugin stdout, core debug messages, and HTTP traces, so that I can debug failures without leaving the TUI or tailing a file.

Acceptance criteria

Overlay

  • Ctrl+L from any screen opens a scrollable log pane overlay
  • Lines colour-coded by level (error red, warn yellow, info, debug, trace)
  • j/k/Ctrl+d/Ctrl+u scroll; G jumps to tail; auto-follows tail when at bottom
  • / search highlights matching lines; n/N jumps between matches
  • Esc or Ctrl+L closes

Sources

  • Installs a tracing-subscriber layer that forwards records to a ring buffer (configurable size, default 2000 entries)
  • Plugin stdout/stderr forwarded via loom-core plugin bridge
  • HTTP trace events from reqwest (wherever loom-core uses them) included

Config

  • Ring buffer size and enabled levels configurable under [tui.log]
  • Respects RUST_LOG for filter level

Tests

  • Unit test: ring buffer drops the oldest entry on overflow
  • Unit test: search filter matches across level/message and highlights correct indices

Out of scope

  • File-based log rotation (use standard tracing-appender externally if needed)

References

  • Spec §5.1 "Log / Debug Overlay"
## User story As a developer or advanced user, I want an in-app log overlay showing plugin stdout, core debug messages, and HTTP traces, so that I can debug failures without leaving the TUI or tailing a file. ## Acceptance criteria ### Overlay - [ ] `Ctrl+L` from any screen opens a scrollable log pane overlay - [ ] Lines colour-coded by level (error red, warn yellow, info, debug, trace) - [ ] `j`/`k`/`Ctrl+d`/`Ctrl+u` scroll; `G` jumps to tail; auto-follows tail when at bottom - [ ] `/` search highlights matching lines; `n`/`N` jumps between matches - [ ] `Esc` or `Ctrl+L` closes ### Sources - [ ] Installs a `tracing-subscriber` layer that forwards records to a ring buffer (configurable size, default 2000 entries) - [ ] Plugin stdout/stderr forwarded via `loom-core` plugin bridge - [ ] HTTP trace events from `reqwest` (wherever `loom-core` uses them) included ### Config - [ ] Ring buffer size and enabled levels configurable under `[tui.log]` - [ ] Respects `RUST_LOG` for filter level ### Tests - [ ] Unit test: ring buffer drops the oldest entry on overflow - [ ] Unit test: search filter matches across level/message and highlights correct indices ## Out of scope - File-based log rotation (use standard `tracing-appender` externally if needed) ## References - Spec §5.1 "Log / Debug Overlay"
charles added this to the loom-tui v0.1.0 milestone 2026-04-11 13:06:27 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
charles/loom#41
No description provided.