Chief import sheet: footer blends with the sheet, Dot export row aligned, Import keycap spaced

AU
3d ago
+191-53

Fixes https://github.com/manaflow-ai/cmux/issues/34569

What was wrong

The Chief "Bring your history" sheet (webviews/src/pages/import-history) had three layout defects:

  • Black footer bar. The sticky Skip/Import footer painted --cmux-surface-solid, an opaque strip over the see-through sheet (black in dark mode).
  • Misaligned Dot row. "I have a saved Dot export (.zip)" was a loose link button under the list. It had its own indent and no checkbox.
  • "Import↩". The page never loaded ui/ui.css, so DialogButton's inline-flex + gap was missing in the app and the keycap touched the label. The gallery did load it, which is why the gallery looked fine.

Fix

  • The page is a full-height flex column. Header, list and notes scroll in .history-scroll, and the footer sits below it with no background of its own, so it shows the same glass as the rest of the sheet. A hairline separates it from the list.
  • Until a Dot zip is picked, the saved Dot export is an ordinary unchecked zip row in .history-sources: same checkbox column, same "Choose export…" action as the ChatGPT and Claude zip rows. Picking replaces it with the model's real dot row (unchanged pickZip behavior).
  • main.tsx and the gallery entry import ui/ui.css, as settings, keybindings and the other dialog pages already do.

Overlap: https://github.com/manaflow-ai/cmux/pull/34550 (autodetect sources) also edits this page and drops the Dot link. It keeps the solid footer and the missing ui.css. Whichever PR lands second takes the other's footer and stylesheet changes.

Changelog

  • Fixed: The Bring your history sheet's footer blends with the sheet, the saved Dot export row lines up with the other sources, and the Import button's ↩ keycap is spaced from its label.

Tests

Regression test (committed before the fix): cd webviews && bun test test/import-history-sheet.test.tsx

  • Base (test commit alone): 2 fail, 1 pass. The Dot row is not an aligned source row, and the footer is not outside a scroll region. The passing test is the guard against a duplicate Dot row after picking, which base also meets.
  • Head: 3 pass. With src/pages/import-history/model.test.ts: 14 pass, 0 fail.

Observed / Not run

  • Ran locally: the focused bun tests above, scripts/web-lint.sh, scripts/cmux-next/prepush-gate.py.
  • Visual: tagged dev build (below).
  • Not run: the full webviews suite and the gallery advisory sweep. Those run on CI.

🤖 Generated with Claude Code


Autofix with [code]smith
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with what you need.


Summary by cubic

Fixes the Chief "Bring your history" sheet (#34569): the footer no longer paints an opaque black strip over the see-through sheet, the saved Dot export row aligns with the other sources, and the Import button's ↩ keycap is spaced from its label.

Bug Fixes

  • The sticky footer painted a solid background; the list now scrolls in its own region above a footer that shows the same glass as the rest of the sheet.
  • The saved Dot export was a loose link outside the list; it's now an ordinary unchecked zip row, and picking it replaces it with the real Dot row. The pick stays available while sources are detected.
  • The Dot row's Choose action names the source for screen readers, not the placeholder sentence.
  • The page now loads ui/ui.css, so the DialogButton keycap no longer touches the Import label, and it reads one step quieter than the label.

Note: PR #34550 (autodetect sources) also edits this page and changes the Dot row and footer; whichever lands second takes the other's changes.