6698c20f25
- Retain xterm normal-buffer history on mobile while preserving desktop zero-scrollback behavior\n- Repair ProjectsPage tests for session context and current project list markup\n- Add focused terminal scrollback coverage\n\nOpenSpec: fix-mobile-terminal-scrolling\nQuality gates: npm run typecheck, npm run lint, npm test (89 passed), npm run build
31 lines
1.6 KiB
Markdown
31 lines
1.6 KiB
Markdown
# Restore Mobile Terminal Scrolling
|
|
|
|
## Summary
|
|
|
|
The recent terminal scrollback optimization disabled scrollback for every viewport. Mobile terminal swipe handling still scrolls xterm's normal buffer programmatically, so swipes in normal-buffer tools no longer have retained output to move through.
|
|
|
|
## Root Cause
|
|
|
|
`468f342` changed the terminal configuration to `scrollback: 0` globally to prevent stale repaint frames and wheel scrolling on desktop. The mobile touch handler calls `term.scrollLines()` when the normal buffer is active. With zero scrollback, that call has no scrollable history and becomes a no-op.
|
|
|
|
## Scope
|
|
|
|
- `apps/web/src/components/features/terminal/terminal.tsx`
|
|
- Focused terminal configuration test
|
|
|
|
## Fix
|
|
|
|
Retain a bounded xterm scrollback buffer on mobile only (`10000` lines), while leaving desktop at zero scrollback and with wheel sensitivity disabled. Mobile's existing custom touch handler remains responsible for moving through normal-buffer history; alternate-screen swipes continue to send SGR wheel events to the active TUI.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- [ ] A mobile terminal with normal-buffer output exceeding one screen scrolls via a vertical swipe.
|
|
- [ ] Alternate-screen terminal scrolling continues to use the existing SGR wheel-event path.
|
|
- [ ] Desktop keeps zero xterm scrollback and disabled native wheel scrolling, so stale repaint frames do not return.
|
|
- [ ] Focused unit test and frontend quality gates pass.
|
|
|
|
## Related
|
|
|
|
- `468f342 fix(terminal): hide scrollbar and stop stale-frame wheel scroll for TUI tools`
|
|
- `openspec/changes/fix-terminal-container-overflow`
|