Ratatui migration#36
Open
Palanikannan1437 wants to merge 8 commits into
Open
Conversation
Adds docs/ratatui-migration/ with a complete spec for porting apps/tui (Bun + OpenTUI + Solid) to apps/tui-rs (Rust + Ratatui), targeting an ~85-90% per-process RAM reduction (80 MB → ~10-15 MB) with byte-for-byte visual parity. 17 ordered docs covering: - Phased plan + success criteria (01) - Lightweight crate stack with web-research justification (02) - Architecture comparison + WS protocol -> serde mapping (03-04) - State management, layout, components, input handling (05-09) - Mux integration, config, themes, server bootstrap (10-13) - Edge cases, testing strategy, distribution, feasibility matrix (14-17) Reference snapshots (35x56 panes, Catppuccin Mocha): - 3x .ansi truecolor captures + .txt + .meta + 1 PNG ground truth - Decoded SGR palette mapped to ThemePalette tokens - Hardcoded layout invariants for byte-exact reproduction
Palanikannan1437
commented
May 8, 2026
Comment on lines
+8
to
+17
| KeyModifiers as CrosstermKeyModifiers, MouseButton as CrosstermMouseButton, | ||
| MouseEventKind as CrosstermMouseEventKind, | ||
| }; | ||
| use crossterm::execute; | ||
| use crossterm::terminal::{ | ||
| self, Clear, ClearType, EnterAlternateScreen, LeaveAlternateScreen, disable_raw_mode, | ||
| enable_raw_mode, | ||
| }; | ||
| use futures_util::StreamExt; | ||
| use opensessions_sidebar_protocol::{ |
Contributor
Author
There was a problem hiding this comment.
what's this about
Add all remaining user-facing features to reach full parity with the TypeScript reference sidebar: - Metadata display: status/progress/logs in detail panel with tone icons - 20 theme palettes: port all 18 missing themes from themes.ts - Modal infrastructure: overlay system with key dispatch interception - Theme picker: searchable list with live preview (t key) - Kill confirmation: red-bordered confirm modal before killing sessions - Local links: render session local_links in detail panel - Session card metadata: optional status+progress summary row - Port display: port hints on branch row (⌁port or ⌁port+N) - Dynamic detail panel height: Left/Right keys resize, min 4 - Drag-to-resize: mouse drag on separator to resize detail panel
This was referenced May 23, 2026
l opens lazydiff in a new tmux window, L opens it in a new terminal window. Launches in the focused session's working directory.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Right now a freaking pane takes 60-80mbs each, with 6+ sessions and 5+ windows each, it's insane
this pr gets each pane to roughly take 1.5-2mb in memory ;)