- Set vertical_scroll=999999 to always show newest content
- Update scroll position on every invalidate
- Reduced visible_lines to 20 for safety
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use HSplit with filler + output to push content to bottom
- Output window uses dont_extend_height so it only takes needed space
- Empty filler expands to fill remaining space above
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Instead of trying to scroll the window, just display the most
recent lines that fit on screen. Full history is kept but only
the last 50 lines are rendered.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove patch_stdout (was buffering until exit)
- Add 100ms refresh loop that periodically invalidates the app
- Ensures output buffer changes are displayed in real-time
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add patch_stdout to capture external prints in TUI mode
- Any stdout from handlers/pump appears in output area, not prompt
- Simplify response handler logic
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add thread-safe invalidation for cross-task updates
- Fix response handler to properly route to TUI output
- Add debug output if console hook fails
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
New console features:
- Scrolling output area above separator line
- Status bar with organism name
- Input area at bottom
- Color-coded messages by source
- Command history with up/down arrows
- Graceful fallback to simple mode on unsupported terminals
Usage:
python run_organism.py # TUI mode (or fallback)
python run_organism.py --simple # Force simple mode
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>