Repository navigation
Bring your history: Chats and Memories toggles, sources one level deeper - #36831
Conversation
Leo (2026-11-05): "why isn't it just import memories and chats? ... import clone chats, import clone memory, and then you can go deeper if you want". The first view is now one list of two groups, Chats and Memories, each a switch covering every detected source in it, with a one-line summary of what it brings. Each group's Sources disclosure opens the per-source rows (checkbox, mark, title, path or file under it, Choose export / Paste a summary), sorted alphabetically in the page language. "Found on this Mac" labels are gone. The header, list and notes share one scroll region above the footer, so no card is clipped under a fixed header. The footer paints no band, only a hairline, with the live status between Skip and Import; the keycap is spaced and one step quieter (approach from #34594 by austinywang). Type and spacing use the shared scale (heading, body, detail, caption; 4-32 steps). Every source, the paste flow, Find exports, Undo and the credentials note stay. Regression: test/import-history-groups.test.tsx, 5 fail on base and 5 pass on head; model.test.ts 18 pass. Co-authored-by: Austin Wang <austinwang115@gmail.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-c5293b061743fb106b9f
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
Passes: CI passes on CI passes on Written by web and size checks: green Gallery before/after for
States
Pick other states with a |
|
Review (codex, router-review): SHIP at 5a034ba Reviewer: codex gpt-6-astra high, fast tier. Follow-ups: 1. They land as checklist items in this PR's one follow-up tracking issue in this repo ( SHIP at 5a034ba Visual verdict: no images; Leo tries the build
Follow-ups:
|
…all are The source checkbox and the paste box keep their aria-labels (vp lint control-has-associated-label, red on fast gates). The group switch is on only when every available source in it is selected, so a partial group turns fully on in one click (router-review F1 at 5a034ba). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-c5293b061743fb106b9f
|
Review (codex, router-review): SHIP at 11687c6 Reviewer: codex gpt-6-astra high, fast tier. Follow-ups: 1. They land as checklist items in this PR's one follow-up tracking issue in this repo ( SHIP at 11687c6 Visual verdict: no images; Leo tries the build
Follow-ups:
|
|
Found 10 test failures on Blacksmith runners: Failures
|
The chevron turn used var(--cmux-motion-quick, 120ms); the fallback is off the motion scale (quick is 80ms), which test/motion-scale.test.ts refuses. Use the token without a fallback, as ui/controls.css does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-c5293b061743fb106b9f
|
Review (codex, router-review): SHIP at 1a92676 Reviewer: codex gpt-6-astra high, fast tier. Follow-ups: 1. They land as checklist items in this PR's one follow-up tracking issue in this repo ( SHIP at 1a92676 Visual verdict: no images; Leo tries the build
Follow-ups:
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Summary
Leo, on the Bring your history step (2026-11-05):
He also called it ugly and split up oddly, in an order that "isn't even alphabetical". The "Found on this Mac" labels were noise, and the spacing, font sizes and titles looked "unformatted, untitled, unsized". A card was clipped under the header when the list scrolled, and the footer was a dark band with "Import↩" crammed together.
The first view is now one list with two rows, Chats and Memories. Each row has a switch that covers every detected source in its group, a short summary of what it brings ("Claude Code, Codex chats", "Not included", "None found yet") and its source marks. Its Sources disclosure opens the next level down: one row per source (checkbox, mark, title, and the path or file under it), sorted alphabetically in the page's language, with Choose export… on the archives, Paste a summary on the pasted-memory sources, and Find exports. The "Found on this Mac" labels are gone.
Every source, the paste flow, Undo, the progress lines and the credentials-skipped note are still there. No source is removed. A failed source or an open paste box keeps its group open.
Layout: the header, list and notes share one scroll region above the footer, so nothing scrolls under a fixed header and no card is clipped under it. The footer paints no band of its own, only a hairline, with Skip on the left, the live status in the middle, and Undo and Import on the right. The keycap sits apart from its label and one step quieter, as in #34594 by @austinywang, whose scroll-region and footer approach this carries forward (co-authored). The type uses the shared scale: the page heading, body for rows and titles, detail for summaries and notes, caption for paths. Spacing uses the 4–32 steps.
Spec: leo-workspace
design/onboarding.md(the surface's spec in.github/design-surfaces.json). References: cmux-design-referencescmux/live/first-run-bring-history-source-list,-list-2andfirst-run-import-footer-band(Leo's screenshots), pluswindsurf/web/import-settings-extensionsandcursor/web/import-preferences(one narrow column of migration choices with row-level actions).Variants (gallery
pages.import-history)groups(shipped): two toggles in one inset list, with the sources behind a disclosure.groups-open: the same list with both groups open.sections: each group its own card with every source always listed. More to read before the first click, and it is what Leo called split up.tiles: the two groups side by side. The summaries wrap sooner and the sources open under one tile only.I picked
groups: it is the only one whose first view is just "import chats, import memory", with the detail one level deeper.Gallery: pages.import-history/groups, pages.import-history/groups-open, pages.import-history/sections, pages.import-history/tiles, pages.import-history/autodetected, pages.import-history/importing, pages.import-history/paste-summary, pages.import-history/nothing-detected
Testing
bun test test/import-history-groups.test.tsx(new): 5 fail on baseorigin/feat-cmux-next(the old ImportHistory.tsx swapped in) and 5 pass on head. It checks the two groups and no source rows in the first view, the absence of "Found on this Mac", every source in exactly one group with none dropped, the alphabetical sources with their paths, the group switch turning its sources off and on without touching the other group, and the one-scroll-region structure with the keycap as its own element.bun test src/pages/import-history/model.test.ts: 18 pass, with the store unchanged.history.group.*) in all 21 locales, English translated and the rest needs_review.Observed / Not run
Observed: the tests above, on this lane VM. The before/after stills come from the gallery advisory run on this PR.
Not run: a DEV build check of the page in the app. That comes after merge.
Changelog
🤖 Generated with Claude Code
Agent session: agent session
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Reworks the Bring your history step so the first view is one list with two toggles, Chats and Memories, instead of every source at once. Each group's Sources disclosure opens its rows one level deeper, sorted alphabetically in the page's language, with each source's path under its name; the "Found on this Mac" labels are gone.
No source or flow is removed — every source, the paste flow, Find exports, Undo, and the credentials-skipped note stay, and a failed source or an open paste box keeps its group open. Layout: the header, list, and notes share one scroll region above the footer so nothing clips under a fixed header; the footer paints only a hairline (no dark band) with Skip left, the live status in the middle, and Undo and Import on the right. A group's switch is on only when every available source in it is selected; a partial group reads as off and turns fully on in one click.
Testing
test/import-history-groups.test.tsx: 6 fail on base, 6 pass on head.model.test.ts(18 tests) passes; the store is unchanged.history.group.*strings to all 21 locales; English translated, the rest needs_review.Written for commit 1a92676. Summary will update on new commits.