fix: prevent terminal container from overflowing page on desktop

The desktop terminal page sometimes grew an outer scrollbar because the
terminal instance/wrapper/container chain lacked height constraints.
Without min/max-height enforcement, xterm.js's internal viewport could
expand its parent flex/grid track past the available space.

- Add overflow: hidden to .terminal-page.
- Add max-height: 100% and overflow: hidden to .terminal-instance.
- Add max-height: 100% to .terminal-wrapper.
- Add min-height: 0 to .terminal-container.
- Constrain .xterm-viewport to max-height/width 100% so it fills but
  never exceeds its container.

Quality gates: npm run typecheck, npm run lint, npm test -- --run (87 passed).

Refs: openspec/changes/fix-terminal-container-overflow
This commit is contained in:
Developer
2026-06-14 09:07:43 +00:00
parent 84cf423684
commit ac9f7a9299
13 changed files with 75 additions and 17 deletions
@@ -0,0 +1,13 @@
# Fix Terminal Container Overflow on Desktop — Tasks
- [x] Discard debug `terminal.tsx` changes from `debug/mobile-terminal-scroll`.
- [x] Create focused branch `fix/terminal-container-overflow` from `dev`.
- [x] Update `utilities.css` to prevent terminal container from overflowing its flex/grid track:
- [x] `.terminal-page`: add `overflow: hidden`.
- [x] `.terminal-instance`: add `max-height: 100%` and `overflow: hidden`.
- [x] `.terminal-wrapper`: add `max-height: 100%`.
- [x] `.terminal-container`: add `min-height: 0`.
- [x] `.terminal-container .xterm-viewport`: add `max-height: 100% !important` and `width: 100% !important`.
- [x] Run `npm run typecheck` and `npm run lint` in `apps/web`.
- [x] Run `npm test -- --run` in `apps/web` (87 passed).
- [x] Update project maps for changed files.