Skip to content

remove: TUI dashboard, keep CLI-only interface#32

Merged
himanshu231204 merged 14 commits into
mainfrom
remove-tui-cli-only
Jul 11, 2026
Merged

remove: TUI dashboard, keep CLI-only interface#32
himanshu231204 merged 14 commits into
mainfrom
remove-tui-cli-only

Conversation

@himanshu231204

Copy link
Copy Markdown
Contributor

Summary

Remove the Textual-based TUI dashboard and keep the CLI-only interface.

Changes

  • Delete openagent_eval/ui/ — 12 source files (app, screens, components, widgets, theme, streaming, styles)
  • Delete openagent_eval/cli/commands/ui.py — the oaeval ui command
  • Remove ui from CLI registration and shell completions (bash/zsh/fish)
  • Remove textual and pyfiglet from pyproject.toml optional dependencies
  • Delete test_phase14_redesign.py and test_phase14_ui.py — UI-specific tests

Why

The TUI (Textual-based dashboard) was unused in practice — all evaluation workflows run through the CLI. Removing it:

  • Simplifies the codebase (-4,228 lines)
  • Eliminates the textual/pyfiglet dependency chain
  • Reduces maintenance surface

Verification

  • 43 CLI tests pass, 0 regressions
  • oaeval --help shows 13 commands (no ui)
  • All shell completion scripts updated

Impact

  • Lines removed: 4,228
  • Dependencies removed: textual, pyfiglet
  • Commands removed: oaeval ui

Test User added 14 commits July 11, 2026 20:41
- Improved banner with gradient colors and 3 variants (full/mini/rich)
- Enhanced TUI widgets with color-coded metrics and status icons
- Improved screens with better layouts using Horizontal/Vertical containers
- Added dark/light theme support in Textual CSS
- Fixed Rich markup syntax error in QuickActions widget
- All 72 CLI/config tests passing, zero regressions
- Added theme system with 70+ semantic tokens (frozen dataclass)
- Added streaming output with 6-state machine
- Added spinner widget with rotating tips
- Added status footer with session info
- Added tool-specific renderers (eval, audit, diagnose)
- Updated styles.tcss for new components
- Added 48 tests for new components (120/120 passing)

Phase 1 of Claude Code-inspired TUI redesign.
- Added name: ThemeName = ThemeName.DARK to Theme dataclass
- Updated DARK_THEME, LIGHT_THEME, ANSI_DARK_THEME with name parameter
- Fixed missing closing brace in THEMES dict
- All 48 tests passing
- Added MessageList widget with O(visible) rendering
- Added Message and MessageRole dataclasses
- Added line map for multi-line message support
- Added auto-scroll, batch updates, max messages limit
- Added 19 new tests (139/139 passing)
- Updated styles.tcss for MessageList component

Phase 2 of Claude Code-inspired TUI redesign.
- Added RichCommandInput with fuzzy matching autocomplete
- Added Command dataclass with name, description, aliases, args
- Added CommandSuggester with prefix, alias, and substring matching
- Added vim mode support (i, a, o, dd, dw, yy)
- Added command history with max history limit
- Added 24 new tests (163/163 passing)
- Updated styles.tcss for RichCommandInput component

Phase 3 of Claude Code-inspired TUI redesign.
- Added ChatScreen with MessageList, StatusFooter, and command input
- Integrated theme system with get_theme()
- Integrated streaming manager for streaming responses
- Added keyboard shortcuts (Ctrl+P, Ctrl+L, Escape)
- Added welcome message with available commands
- All 163 tests passing

Phase 4 of Claude Code-inspired TUI redesign.
- Removed :dark and :light pseudo-selectors (not supported in Textual 8.x)
- Removed style='dim' from Rule() calls (not supported in Textual 8.x)
- Fixed register_screen() to use push_screen() with screen instances
- Fixed push_screen() to use screen instances instead of string names
- All 163 tests passing
- UI now launches successfully with 'oaeval ui'
- Added import error details to help debug Textual installation issues
- Package now installs in development mode with 'pip install -e .'
- Added TUI component overview and architecture
- Added keyboard shortcuts reference
- Added TUI testing instructions
- Added TUI-specific debugging tips
- Updated project structure with ui/ directory
- Removed version display from all banner functions
- Fixed ASCII art to properly spell 'OAEVAL'
- Updated BannerWidget in TUI to show correct ASCII art
- All tests passing
- New block-character ASCII art for OAEVAL branding
- Gradient coloring from cyan to blue
- Updated tagline to 'Production-Ready RAG Evaluation'
- All tests passing
- Removed _get_version() from banner.py and widgets.py
- Removed importlib.metadata.version import
- Removed corresponding test
- Version display already removed from banner
- Removed all color styling from banner, widgets, screens
- Changed cyan/blue/bright_blue to bold/dim
- Changed green/yellow/red to bold/dim
- Simplified status indicators
- All tests passing
- Remove openagent_eval/ui/ (12 source files: app, screens, components, widgets, theme, streaming, styles)
- Remove openagent_eval/cli/commands/ui.py
- Remove ui command from CLI registration and shell completions (bash/zsh/fish)
- Remove textual and pyfiglet from pyproject.toml optional dependencies
- Remove test_phase14_redesign.py and test_phase14_ui.py
- 43 CLI tests pass, 0 regressions

The TUI (Textual-based dashboard) was unused in practice — all evaluation
workflows run through the CLI. Removing it simplifies the codebase and
eliminates the textual/pyfiglet dependency chain.
ctx = click.get_current_context(silent=True)
if ctx is not None and ctx.invoked_subcommand is None and not quiet:
create_mini_banner()
except Exception:
@himanshu231204 himanshu231204 merged commit 4e6ba96 into main Jul 11, 2026
10 checks passed
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