Skip to content

feat: TUI overhaul — animation, widgets, layout, modals, streaming, theme system#1

Open
ruttydm wants to merge 2 commits intodevfrom
feat/tui
Open

feat: TUI overhaul — animation, widgets, layout, modals, streaming, theme system#1
ruttydm wants to merge 2 commits intodevfrom
feat/tui

Conversation

@ruttydm
Copy link
Copy Markdown
Contributor

@ruttydm ruttydm commented Apr 7, 2026

Summary

Massive TUI overhaul implementing the full plan from docs/proposals/tui-overhaul-master-plan.md. 188 files changed, ~72K lines added.

Key Systems

  • Animation systemTuiAnimationManager with breathing effects, spinners, phase-based animations, signal-based timing
  • Widget libraryTreeWidget (lazy-load, expand/collapse), TableWidget, TabsWidget, StatusBoardWidget, EditorWidget, MarkdownWidget with custom stylesheet
  • Modal systemTuiModalManager with overlay dialogs, settings, session picker, plan approval, user questions
  • Toast notifications — non-blocking inline feedback
  • Theme systemTheme class with shared color palette, tool icons, context bar; KosmokratorTerminalTheme for syntax highlighting
  • Layout engine — Composer-based layout with header/context bar/conversation/input zones
  • Streaming renderer — Real-time LLM response streaming integrated with Revolt event loop
  • Subagent displaySubagentDisplayManager with live tree widget, progress bars, swarm dashboard

Commits

  • ba22775 — docs: add TUI overhaul master plan and sub-plans
  • ced594e — feat: TUI overhaul — animation, signal, widget, theme, layout, modal, toast, streaming systems

Test Plan

  • All widget unit tests pass (TreeWidgetTest, TableWidgetTest, TabsWidgetTest, TabItemTest)
  • php vendor/bin/phpunit green
  • php vendor/bin/pint clean
  • Manual smoke test with bin/kosmokrator in TUI mode
  • Verify ANSI fallback still works with --renderer=ansi

ruttydm added 2 commits April 7, 2026 18:56
… toast, streaming systems

Major additions:
- Animation system (spring physics, easing, driver, preferences, state)
- Reactive signal system (Signal, Computed, Effect, BatchScope, EffectScope)
- Phase state machine for UI lifecycle transitions
- Input system (KeybindingRegistry, InputHistory, HelpGenerator, Conflict)
- Layout system (ZCompositor, ZLayer, Breakpoint, DimensionProvider)
- Modal system (DialogWidget, ModalOverlayWidget, ButtonWidget, DialogResult)
- Toast notification system (ToastManager, ToastOverlayWidget, ToastItem)
- Performance (RenderScheduler, MemoryProfiler, WidgetCompactor, AnsiStringPool)
- Streaming (StreamingMarkdownBuffer, ChunkedStringBuilder, StreamingThrottler)
- Terminal capabilities (MouseParser, TerminalCapabilities, AdvancedTextDecoration)
- Theme system (ThemeManager, ColorConverter, ColorDownsampler, ThemeTokens)
- State management (TuiStateStore)

New widgets:
- TreeWidget, TableWidget, TabsWidget, GaugeWidget, SparklineWidget
- CommandPaletteWidget, HelpOverlayWidget, StatusBarWidget
- ScrollbarWidget, StreamingMarkdownWidget

Updated: TuiCoreRenderer, TuiAnimationManager, TuiInputHandler, Theme, stylesheet
Tests for all new systems and widgets
@ruttydm ruttydm changed the base branch from main to dev April 7, 2026 20:35
@Bratatat Bratatat mentioned this pull request Apr 14, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant