feat(tui): log / debug overlay — LogRing ring buffer #80

Merged
charles merged 1 commit from tui/log-overlay-41 into main 2026-04-11 20:43:42 +00:00
Owner

Stacks on #79. Closes charles/loom#41. Completes Phase 6.

LogRing with configurable buffer size (oldest-dropped on overflow), min_level pre-enqueue filter, and case-insensitive substring filtered() iterator for the / search. LogLevel::from_str_or_default falls back to Info on unknown input.

Subscriber layer + overlay keybindings land in the glue PR. 4 new tests, 109 total.

Stacks on #79. Closes charles/loom#41. Completes **Phase 6**. `LogRing` with configurable buffer size (oldest-dropped on overflow), `min_level` pre-enqueue filter, and case-insensitive substring `filtered()` iterator for the `/` search. `LogLevel::from_str_or_default` falls back to `Info` on unknown input. Subscriber layer + overlay keybindings land in the glue PR. 4 new tests, 109 total.
Adds LogRing with configurable buffer_size (drops oldest on overflow),
min_level filter that ignores quieter entries before enqueueing, and
case-insensitive substring filtered() iterator for the / search.
LogLevel::from_str_or_default falls back to Info on unknown strings
so a bad config never starves the overlay.

The tracing-subscriber layer and overlay keybindings (Ctrl+L to open,
j/k/Ctrl+d/Ctrl+u/G/n/N inside) land with the glue PR that wires the
subscriber into the main.rs startup path.

Closes charles/loom#41

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
charles changed target branch from tui/sharing-40 to main 2026-04-11 20:43:33 +00:00
charles deleted branch tui/log-overlay-41 2026-04-11 20:43:42 +00:00
Sign in to join this conversation.
No reviewers
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!80
No description provided.