feat: Add in-TUI log panel to prevent log messages from breaking layout #106
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
LogBufferandLogEntrystructs for in-memory log storage with configurable max entries (default 1000)TuiLogLayerthat captures tracing events and stores them in the shared bufferKey Features
BSSH_TUI_LOG_MAX_ENTRIESenvironment variablel- Toggle log panel visibilityj/k- Scroll logs when panel is visible+/-- Resize panel (3-10 lines)t- Toggle timestampsFiles Changed
New Files
src/ui/tui/log_buffer.rs- LogBuffer and LogEntry structssrc/ui/tui/log_layer.rs- TuiLogLayer implementing tracing_subscriber::Layersrc/ui/tui/views/log_panel.rs- Log panel view componentModified Files
src/ui/tui/app.rs- Added log panel state fields and methodssrc/ui/tui/event.rs- Added key bindings for log panel controlssrc/ui/tui/mod.rs- Integrated log layer and panel renderingsrc/ui/tui/views/*.rs- Added render_in_area() for layout flexibilitysrc/utils/logging.rs- Extracted filter creation for reusetests/tui_snapshot_tests.rs- Updated assertion for new footer layoutTest Plan
Fixes #104