Skip to content

Commit 43c53cd

Browse files
0xrinegadeclaude
andcommitted
feat(research): Add bidirectional web TUI streaming with keyboard input
Add WebSocket-based streaming to enable browser control of research TUI: - Add web_terminal.rs: WebSocket server with keyboard event handling - WebKeyEvent struct with crossterm KeyEvent conversion - Broadcast channels for multi-viewer output streaming - 100-frame history buffer for late-joining viewers - Add web_tui_backend.rs: Dual ratatui backend - DualBackend writes to both CrosstermBackend and WebTuiBackend - Proper ANSI escape code generation for xterm.js - Full Backend trait implementation for ratatui 0.29 - Update TUI app with web input support: - run_with_web() method for dual output + web input - event_loop_with_web_input() polls both crossterm and WebSocket - handle_key_event() unified handler for local and remote keys - Add --web flag to research command: - Streams TUI output to http://localhost:13370 - Browser keyboard input controls the TUI - Works with --tui for interactive mode Also includes OVSM compiler improvements and AI service enhancements. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent aba84a0 commit 43c53cd

File tree

13 files changed

+4194
-800
lines changed

13 files changed

+4194
-800
lines changed

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ cursive-multiplex = "0.7.0"
5151
anyhow = "1.0.99"
5252
fs2 = "0.4" # File locking to prevent session recording race conditions
5353
async-trait = "0.1.83"
54+
async-stream = "0.3"
5455
futures = "0.3.31"
5556
rand = "0.9.2"
5657
colored = "3.0.0"
@@ -134,6 +135,7 @@ proptest = "1.5.0"
134135
default = []
135136
remote-wallet = ["solana-remote-wallet"]
136137
incomplete_tests = [] # Feature flag for incomplete/experimental test files
138+
mdns = [] # Optional mDNS peer discovery for BBS federation
137139

138140
[[bin]]
139141
name = "osvm-bootstrap"

crates/ovsm/src/compiler/ir/generator.rs

Lines changed: 559 additions & 634 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)