Skip to content

fix(tui): surface ink, sticky hover, wrap, and session chrome polish - #286

Open
rotemmiz wants to merge 7 commits into
mainfrom
fix/tui-light-theme-bg-slabs
Open

fix(tui): surface ink, sticky hover, wrap, and session chrome polish#286
rotemmiz wants to merge 7 commits into
mainfrom
fix/tui-light-theme-bg-slabs

Conversation

@rotemmiz

Copy link
Copy Markdown
Owner

Summary

  • Pin nested panel text via Styles.On(surface) so ctrl+p / slash / diff panes no longer paint stream-bg glyph slabs on elevated surfaces (all themes).
  • Keep modal mouse hover highlight without scrolling the list (modalListOff sticky window; keyboard still scrolls).
  • Wrap chat/chrome copy instead of truncating with ellipsis; assistant left inset via PaddingLeft; align slash descriptions; optional terminal text selection (disable mouse capture); sidebar path/branch wrap + context stats polish; related diff/split and streaming fixes on this branch.

Test plan

  • go test ./internal/tui/ -skip Opcode42Parity
  • Light + dark + monochrome: open ctrl+p and / — no black/white text slabs; descriptions column-aligned in /
  • ctrl+p: hover moves highlight only; arrow keys scroll long lists
  • Long tool headers / paths wrap in the stream; sidebar cwd:branch wraps without
  • Palette “Enable terminal text selection” (or equivalent) allows native drag-select; re-enable restores hover/click
  • Diff viewer still opens and navigates after split/surface changes

Made with Cursor

rotemmiz and others added 7 commits July 24, 2026 00:40
…rfaces

Unstyled " " between styled spans was refilled with stream Bg and read as
white gaps on sidebar/mode-line; cursor line lacked Fg so the active row washed out.

Co-authored-by: Cursor <cursoragent@cursor.com>
Enable bubbles DynamicHeight so newline growth clamps YOffset; without it
height-1 scroll stuck after grow and hid the first line.

Co-authored-by: Cursor <cursoragent@cursor.com>
Pulling one event per Update forced a full body rebuild per token; a
16ms flush window plus delta coalesce matches opencode/Android and
collapses multi-second same-session catch-up into one frame.

Co-authored-by: Cursor <cursoragent@cursor.com>
Pin nested panel text to On(surface) so modals/slash/diff drop stream-bg
slabs; keep ctrl+p hover without scrolling the list; wrap stream/chrome
copy; align slash descriptions; add selection toggle and related UX fixes.

Co-authored-by: Cursor <cursoragent@cursor.com>
…284)

* feat(tui): align session composer chrome with opencode layout (08g)

Fold mode/model into the elevated prompt box and put usage/hints on the
under-box row so the empty input bar reads tall like opencode; tighten
sidebar padding and use max(6, h/3) as the textarea growth cap.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(tui): address 08g review — acPopupY and composer inner width

Stop double-counting the hint row in autocomplete Y; size the textarea to
barWidth-5 (border+padding under lipgloss v2); align resize with the
guttered stream column; tighten tests and mode-line gap.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(tui): only gutter composer width on the session screen

Splash has no stream gutter; applying it there narrowed the home
composer. Also truncate sidebar cwd for Padding(1,2).

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
…285)

* feat(tui): polish session chrome theme, title, footer, agents (08h)

Pin composer/textarea to BgElev, clamp near-white light elevations, wrap
sidebar titles, restore green • footer, always show mode-line model info,
and rename TASKS→AGENTS.

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix(tui): drop dead footerMicroLogo; tighten 08h footer test

Review follow-up: remove unused micro-logo helper and assert the green
dot chip is not flush on the last sidebar row.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
Fg-only lipgloss styles left canvas cells with nil Bg; on light terminals
those rendered as black rectangles behind sidebar, mode line, and tool chrome.

Co-authored-by: Cursor <cursoragent@cursor.com>
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