Skip to content

feat(terminal): remove the terminal history scrollbar - #1113

Merged
devswha merged 3 commits into
mainfrom
feat/remove-terminal-scrollbar
Oct 14, 2026
Merged

devswha merged 3 commits into
mainfrom
feat/remove-terminal-scrollbar

Conversation

@devswha

@devswha devswha commented Oct 14, 2026

Copy link
Copy Markdown
Owner

Why

Owner decision (2026-10-15): delete the terminal history scrollbar outright, with no setting. Paseo and Moshi show no terminal scrollbar either, and on phones the bar reserved a 24px column beside the grid. History stays reachable: the wheel, a finger drag, Mod+Shift+PageUp/PageDown and Find all still scroll herdr's shared history.

Removed

  • The terminal-history-scrollbar track and thumb in TerminalViewportTools.tsx, with its drag, click and keyboard (arrows, Page Up/Down, Home/End) handlers, its preview state, the viewportId prop, and the scrollThumb/offsetAtThumb helpers (and their unit test).
  • The reserved column: the .pane-terminal.has-viewport-tools width rule, the --terminal-history-gutter variable, and the single-pane header offsets in PaneCanvas.css. The grid now fits the full mount width (the fit addon reads the mount; no cols math subtracted the column).
  • Its CSS, the Terminal scrollback i18n entry (ko/ja/zh), and the scrollbar passages in DESIGN.md, docs/guide.md and the demo log line.

Kept

  • The scroll metrics poll (GET /api/pane/scroll) the page keys rely on, Mod+Shift+PageUp/PageDown paging with pending-page accumulation, find highlights and jumps (and Find cancelling queued pages), phone drag and wheel scrolling. No server/ or shared/ changes; pane.scroll and /api/pane/scroll are untouched.

Tests

scripts/terminal-viewport-regression.ts now asserts that no scrollbar is drawn and that the grid spans the whole terminal surface. Steps that used the scrollbar now page with the shortcut. The paging, rebound-shortcut, poll back-off, Find ordering and old-bridge checks are kept.

  • bun run typecheck: exit 0 (also after merging origin/main)
  • bun run test:unit: exit 0 (3645 pass, 0 fail, 8 skip)
  • bun run build: exit 0
  • bun run check run sh -c "bun scripts/terminal-viewport-regression.ts && bun scripts/terminal-pinch-regression.ts && bun scripts/ui-regression.ts": exit 0 (terminal-pinch-regression covers one-finger drag scrolling)

Supersedes the idea in #945.

@coderabbitai

coderabbitai Bot commented Oct 14, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: devswha/herdr-web-ui/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 639edfee-0a00-41c9-ae38-223f6e75f4ef
📥 Commits

Reviewing files that changed from the base of the PR and between 57e4254 and af4609c.

📒 Files selected for processing: 2
  • scripts/terminal-viewport-regression.ts
  • src/components/PaneTerminal.tsx

Included review availability: This review used your included allowance. Your plan provides up to 4 included reviews per hour; 0 remain after this review.

📝 Summary

Summary by CodeRabbit

  • Changed
    • Removed the terminal history scrollbar on desktop and mobile, allowing the terminal grid to use the full available width.
    • Browse terminal history with wheel or touch gestures, keyboard paging shortcuts, and Find.
    • Read-only views can’t page through native history. Paging is unavailable while Find is active; starting a search cancels pending page requests and waits for any in-progress native scroll.

The terminal history scrollbar was removed from the viewport and from related layout code. Native paging, Find, and regression coverage now use the scrollbar-free path. User-facing docs, demo text, and translation entries were updated.

Changes: Terminal history navigation

Layer / File(s) Summary
Viewport scrollbar removal
DESIGN.md, src/components/PaneCanvas.css, src/components/PaneTerminal.css, src/components/PaneTerminal.tsx, src/components/TerminalViewportTools.*, src/lib/terminalViewport.*
The scrollbar rendering, gutter layout, drag state, keyboard controls, styles, and thumb conversion helpers were removed. Native paging and Find coordination remain documented.
Native paging regression coverage
scripts/terminal-viewport-regression.ts
Regression checks now use native page shortcuts and verify full-width layout, polling, search refresh, request ordering, and terminal input isolation.
Documentation and translation updates
changelog.d/remove-terminal-scrollbar.md, docs/guide.md, site/demo/history.ts, src/lib/i18n.*.ts
User-facing text now describes scrolling and native paging without the removed scrollbar. Translation entries for “Terminal scrollback” were removed.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~20 minutes

Change: Other · Severity of issue fixed: Low

Suggested reviewers: kratam

Merge Risk: ⚪ Minimal · up to af460

The change removes the terminal history scrollbar and keeps wheel, touch and keyboard paging. No actionable merge-blocking risk is evident from the supplied context.

Pre-merge checks: Passed 4 · Failed 1

Failed Failed checks: 1 warning

Check name Status Explanation Resolution
Docstring Coverage Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 2 functions across 5 files. Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed Passed checks: 4 passed
Check name Status Explanation
Title check Passed The title clearly and concisely identifies the primary change: removing the terminal history scrollbar.
Description check Passed The description explains the reason, removed and retained behavior, affected areas, and validation results. It uses headings different from the template, but it covers the required Change and Validati…
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
  • Fix all pre-merge checks with AI
✨ Finishing Touches: 💡 1
📝 Generate docstrings: 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

The page-wide role=scrollbar check only restated the removal and would trip on any later scrollbar role; the width check proves the gutter is gone. PaneTerminal's viewport id only served the scrollbar's aria-controls. The page-retry wait grows to 3 s so a slow runner does not press twice.
@devswha
devswha merged commit 2e4939e into main Oct 14, 2026
9 checks passed
@devswha
devswha deleted the feat/remove-terminal-scrollbar branch October 14, 2026 19:01
devswha added a commit to m16khb/herdr-web-ui that referenced this pull request Oct 14, 2026
Main removed the terminal history scrollbar (devswha#1113): anchor the jump button to the grid's
bottom-right corner without the gutter, drop the scrollbar's aria-controls, page up with the
shortcut in the regression step, and update DESIGN.md and the changelog fragment.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.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