Skip to content

Bring your history: Chats and Memories toggles, sources one level deeper - #36831

Merged
cmux-bot[bot] merged 3 commits into
feat-cmux-nextfrom
lane/import-history-grouped
Nov 6, 2026
Merged

cmux-bot[bot] merged 3 commits into
feat-cmux-nextfrom
lane/import-history-grouped

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 5, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Leo, on the Bring your history step (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

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.

  • Chats: Claude Code conversations, Codex chats, the ChatGPT and claude.ai exports, and saved archives found by Find exports.
  • Memories: Claude memory, Codex memory notes, and the Grok Bot, Muse, ChatGPT Dots and Instinct summaries.

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-references cmux/live/first-run-bring-history-source-list, -list-2 and first-run-import-footer-band (Leo's screenshots), plus windsurf/web/import-settings-extensions and cursor/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 base origin/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.
  • Strings: 5 new keys (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

  • Changed: Bring your history now starts with two switches, Chats and Memories, with each source one level deeper under Sources, sorted alphabetically, and a cleaner footer.

🤖 Generated with Claude Code

Agent session: agent session


Autofix with [code]smith
Open in [code]smith · Need help on this PR? Tag @codesmith-bot with 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

  • New test/import-history-groups.test.tsx: 6 fail on base, 6 pass on head.
  • model.test.ts (18 tests) passes; the store is unchanged.
  • Adds 5 history.group.* strings to all 21 locales; English translated, the rest needs_review.

Written for commit 1a92676. Summary will update on new commits.

View guided diff Turn on auto-fix

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
@teamleaderleo teamleaderleo added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 5, 2026
@github-actions

github-actions Bot commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

cmux status (one comment, edited in place; each line is updated by the job that owns it)

Review 1a92676: HQ feed card · gallery before/after runs · checks

App of this head (app.zip, kept 1 day)

gh workflow run reload-build.yml -R manaflow-ai/cmux --ref feat-cmux-next -f tag=pr36831 -f ref=lane/import-history-grouped -f platform=macos -f backend_mode=local

Passes: CI passes on 1a9267660d.

CI passes on 1a9267660d (run 42130316926 attempt 1).

Written by scripts/ci/classify_failures.py (ci-failure-attribution.yml); signatures are its SIGNATURES table. A machine verdict is the runner's fault, not this PR's; yours means the failing file is one this PR changes, also red on main that main's latest full suite fails the same way, seen on other PRs that it failed on another pull request's run lately.

web and size checks: green

Gallery before/after for 1a92676: 8 states rendered, 16 images differ (picked by the Gallery: line in the PR body). Images are in the run's artifact, not on this public PR; the independent review of this head reads them on its own, so the PR needs no hand-made screenshots of these states.

gh run download 42130355903 -R manaflow-ai/cmux -n gallery-advisory-36831-1a9267660d93978bb40d5516ad549c5f5287b8fb (then read gallery-review.json)

States
State Theme Status Diff Picked by
pages.import-history/groups Apple System Colors Light new 0% pr-body
pages.import-history/groups Apple System Colors new 0% pr-body
pages.import-history/groups-open Apple System Colors Light new 0% pr-body
pages.import-history/groups-open Apple System Colors new 0% pr-body
pages.import-history/sections Apple System Colors Light new 0% pr-body
pages.import-history/sections Apple System Colors new 0% pr-body
pages.import-history/tiles Apple System Colors Light new 0% pr-body
pages.import-history/tiles Apple System Colors new 0% pr-body
pages.import-history/autodetected Apple System Colors changed 10.6% pr-body
pages.import-history/autodetected Apple System Colors Light changed 10.2% pr-body
pages.import-history/importing Apple System Colors changed 9.36% pr-body
pages.import-history/importing Apple System Colors Light changed 9.01% pr-body
pages.import-history/paste-summary Apple System Colors Light changed 10.2% pr-body
pages.import-history/paste-summary Apple System Colors changed 10.1% pr-body
pages.import-history/nothing-detected Apple System Colors changed 8.31% pr-body
pages.import-history/nothing-detected Apple System Colors Light changed 5.44% pr-body

Pick other states with a Gallery: entry.id, entry.id/variant line in the PR body.

@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

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 (Follow-ups: #N ..., label follow-up; add to an open one before filing, never one issue per finding), linking this receipt; the lane that opened the PR fixes them forward.

SHIP at 5a034ba

Visual verdict: no images; Leo tries the build

  • [P2] [follow-up] [category:correctness] [finding:F1] [outcome:pending] webviews/src/pages/import-history/ImportHistory.tsx:184 — The group switch is checked when any source is selected (included.length > 0). After unchecking one source, it still appears enabled, and clicking it only turns every source off; the aggregate control cannot turn a partially selected group fully on in one action. Base its state on all available sources and handle partial selection.

Follow-ups:

  • [P2] [follow-up] [category:correctness] [finding:F1] [outcome:pending] Group switch state should reflect partial selections.

@cmux-bot cmux-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cmux-bot approves 5a034ba: an independent review passed this exact head (router-review receipt by teamleaderleo). A push needs a new review; a later BLOCK at this head dismisses this approval.

…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
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

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 (Follow-ups: #N ..., label follow-up; add to an open one before filing, never one issue per finding), linking this receipt; the lane that opened the PR fixes them forward.

SHIP at 11687c6

Visual verdict: no images; Leo tries the build

  • [P2] [follow-up] [category:ux] [finding:F1] [outcome:pending] No after screenshots or gallery artifact were supplied for this UI change; capture the listed import-history states for visual review.

Follow-ups:

  • F1: Provide after screenshots or gallery captures.

@cmux-bot cmux-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cmux-bot approves 11687c6: an independent review passed this exact head (router-review receipt by teamleaderleo). A push needs a new review; a later BLOCK at this head dismisses this approval.

@blacksmith-sh

blacksmith-sh Bot commented Nov 5, 2026

Copy link
Copy Markdown

Found 10 test failures on Blacksmith runners:

Failures

Test View Logs
test/composer-one-row-layout.test.ts/composer-one-row-layout.test View Logs
test/composer-one-row-layout.test.ts/composer-one-row-layout.test View Logs
test/composer-permission-pill.test.ts/composer-permission-pill.test View Logs
test/composer-permission-pill.test.ts/composer-permission-pill.test View Logs
test/motion-scale.test.ts/motion-scale.test View Logs
test/motion-scale.test.ts/motion-scale.test View Logs
test/popup-surface.test.ts/popup-surface.test View Logs
test/popup-surface.test.ts/popup-surface.test View Logs
test/thread-rail-pending-load.test.ts/thread-rail-pending-load.test View Logs
test/thread-rail-pending-load.test.ts/thread-rail-pending-load.test View Logs

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

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
@teamleaderleo

Copy link
Copy Markdown
Collaborator Author

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 (Follow-ups: #N ..., label follow-up; add to an open one before filing, never one issue per finding), linking this receipt; the lane that opened the PR fixes them forward.

SHIP at 1a92676

Visual verdict: no images; Leo tries the build

  • [P2] [follow-up] [category:ux] [finding:F1] [outcome:pending] No usable before/after screenshots or gallery stills were available for visual comparison. Focused tests could not run because bun is unavailable in the review box.

Follow-ups:

  • [finding:F1] Provide usable gallery captures for visual verification.

@cmux-bot cmux-bot Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

cmux-bot approves 1a92676: an independent review passed this exact head (router-review receipt by teamleaderleo). A push needs a new review; a later BLOCK at this head dismisses this approval.

@cmux-bot
cmux-bot Bot merged commit 35d64b5 into feat-cmux-next Nov 6, 2026
298 of 306 checks passed
@cmux-bot
cmux-bot Bot deleted the lane/import-history-grouped branch November 6, 2026 00:39

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 1a926766 Deployed Nov 5, 2026 by teamleaderleo via cmux-tui tree preflight #117749
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

risk:normal Risk tier (docs/ci/risk-tiers.md)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant