feat(neo): grok-exact theme + xterm.js evidence harness (neo-go-tui task 2)#119
Merged
Conversation
internal/theme: 24-bit palette transcribed from the grok capture research (.omo/research/neo-grok ansi-colors.md + FINDINGS.md) — grok-night default plus grok-day, surfaces/text tiers/accents/borders, braille spinner frames, tool-row glyphs, hint/footer styles; loader honors settings.json theme + ~/.senpi/agent/themes custom themes with grok-night default for neo; NO_COLOR + 256-color fallbacks. Golden tests assert exact truecolor SGR bytes through the xterm.js harness cell grid, with hexes derived from the captures, never from implementation output. packages/neo/qa: xterm-render.mjs evidence-harness core on the root-hoisted @xterm/headless (.ans -> self-contained HTML review page + per-cell grid JSON + assertion helpers), visual-claims.json manifest and a verify-manifest mode that fails on missing frames, missing triplet legs, or assertion-less claims. Hidden --theme-sample flag on cmd/senpi-neo renders the QA panel. Plan: .omo/plans/neo-go-tui.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Plan task 2 of
.omo/plans/neo-go-tui.md: the grok-exact theme package for the neo Go TUI, plus the xterm.js evidence-harness core that all later TUI-visual QA in the plan runs through. Additive only — nothing outsidepackages/neochanges.Changes
internal/theme: 24-bit palette transcribed from the grok capture research (grok-night default + grok-day), lipgloss v2 styles (surfaces, text tiers, accents, borders, footer/hint, tool-row glyphs, braille spinner), loader honoringsettings.jsontheme +~/.senpi/agent/themescustom themes; NO_COLOR + 256-color fallbacks.packages/neo/qa/xterm-render.mjs:.ans→ self-contained HTML review page + per-cell grid JSON + assertion helpers, on the root-hoisted@xterm/headless(no new dep);visual-claims.jsonmanifest +verify-manifestmode failing on missing frames/triplet legs/assertions.--theme-sampleflag oncmd/senpi-neorenders the QA panel.QA / Evidence
Evidence:
.omo/evidence/task-2-neo-go-tui.md(+ red/, red-posthoc/, gates/, qa/ artifact dirs) in the work worktree.-vcapture archived).capture-pane -e, every extracted fg/bg hex asserted ∈ grok palette via the parsed cell grid; full triplet archived. 256-color fallback frame has zero truecolor escapes, no crash.npm run checkexit 0; real~/.senpiuntouched (hash receipt).Risks
Secret safety
No secrets in code, fixtures, or evidence; QA sandboxed.
Summary by cubic
Implements the exact grok theme for the neo Go TUI and adds an
xterm.jsevidence harness for visual QA. Locks in truecolor palette accuracy (grok-night default, grok-day optional) with 256/NO_COLOR fallbacks and a reproducible sample panel.New Features
packages/neo/internal/theme: exact 24‑bit palette, lipgloss v2 styles (surfaces, text tiers, accents, borders), braille spinner, and tool-row glyphs.settings.jsonthemeand~/.senpi/agent/themescustom themes; default is grok-night.colorprofile.--theme-sampleflag incmd/senpi-neoto render a deterministic QA panel.packages/neo/qa/xterm-render.mjs:.ans→ HTML review + per-cell grid JSON + assertion helpers;visual-claims.jsonwithverify-manifestto fail on missing frames/triplet legs/assertions.Dependencies
@xterm/headless(no new npm dep in this package).charm.land/lipgloss/v2andgithub.com/charmbracelet/colorprofile.packages/neo.Written for commit 3118bca. Summary will update on new commits.