Skip to content

feat: redesign the terminal UI as a focused cockpit - #200

Merged
EvanProgramming merged 1 commit into
mainfrom
codex/tui-focused-cockpit
Sep 27, 2026
Merged

EvanProgramming merged 1 commit into
mainfrom
codex/tui-focused-cockpit

Conversation

@EvanProgramming

@EvanProgramming EvanProgramming commented Sep 27, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • replaces the tall metadata stack with a single responsive context bar for brand, active mode, model, graph fallback, usage, and live status
  • gives the transcript the screen, with restrained role-aware message treatments, a branded empty state, privacy-safe collapsed receipts, and a pinned focused composer
  • adds a graph/task/session rail only at >=120 columns and >=24 rows; smaller terminals keep the one-line graph indicator
  • applies one graphite/cyan Kyrozen visual system to the chat shell, command palette, modals, graph explorer, splash, errors, settings, approvals, questions, plans, and updates

The design borrows the calm density of OpenCode, mode clarity of CodeWhale, and compact status presentation of OpenClaw, while keeping OpenKyrozen's task, graph, and memory context.

Before / after

Before Focused cockpit
OpenKyrozen TUI before OpenKyrozen focused-cockpit TUI

These 140×40 captures are rendered from the real Bubble Tea View() output with the same state fixture on origin/main and this branch.

Responsive and interaction behavior

  • preserves every existing JSONL event, CLI flag, slash command, keyboard/mouse action, update lock, approval flow, reduced-motion behavior, and UI settings field
  • progressively omits secondary context instead of wrapping the header
  • keeps the composer, footer, and emergency quit visible across the exhaustive terminal-size matrix
  • keeps token/model telemetry in the context bar and complementary call/scope details in the rail
  • uses no new dependency, backend event, settings schema, or interactive machinery

Validation

  • gofmt — pass
  • go test ./... — pass
  • go vet ./... — pass
  • make check — pass
  • make lint — pass
  • make test — pass, 261 tests
  • isolated real-binary JSONL fixture at 60×16, 80×24, 120×30, and 140×40 — pass
  • exercised startup, streaming, long Markdown, tasks, collapsed receipts, graph explorer, approval, question, plan, scrolling, live resize, and reduced motion — pass
  • WCAG-oriented text/status contrast and non-text border contrast assertions — pass

Known base-branch CI issue

The remote lint-and-test 3.12/3.13 jobs reach make docs-check and fail because docs/self-evolution.md does not record the currently discovered Python test count (261). This is unchanged from origin/main, reproduces in a clean main worktree, and is the same failure in main's latest CI run. The TUI, core-test, wheel, installer, and Docker jobs pass; this PR intentionally does not modify unrelated self-evolution documentation.

Scope

Only the Bubble Tea TUI render/theme code, its Go tests, and TUI comparison captures changed. Web UI, Python backend, packaging, event contracts, and runtime behavior are unchanged.

@EvanProgramming
EvanProgramming merged commit b44b33b into main Sep 27, 2026
5 of 7 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