Skip to content

Expand History with filters, grouping, and restore actions - #9148

Open
lawrencecchen wants to merge 10 commits into
issue-9127-vault-historyfrom
feat-history-sidebar-controls
Open

lawrencecchen wants to merge 10 commits into
issue-9127-vault-historyfrom
feat-history-sidebar-controls

Conversation

@lawrencecchen

@lawrencecchen lawrencecchen commented Jul 29, 2026 •

Copy link
Copy Markdown
Contributor

Stacked on #9131 by @austinywang. Builds on #9127.

Summary:

  • Rebrand the right-sidebar Vault surface as History while preserving history, vault, and sessions CLI compatibility.
  • Replace Sessions and Timeline with Timeline, By Folder, and By Agent.
  • Make Timeline workspace-first, with active and closed workspaces, nested terminals, nested coding-agent sessions, navigation, and workspace recovery.
  • Move the complete History surface into one AppKit view controller, including native controls, loading, empty states, filtering, refresh, and the NSTableView timeline.
  • Subscribe directly to topology, agent, title, directory, lifecycle, and session changes, coalescing refresh bursts for 75 ms without rebuilding SwiftUI.
  • Project bounded row presentation before cell creation and apply stable-ID AppKit snapshots without reloadData().
  • Recycle only visible cells, remove passive per-cell hover tracking, cache action symbols, and create context menus on demand.
  • Show Codex, Claude, Pi, OpenCode, and registered custom-agent icons with running, restoring, saved, and hibernated states.
  • Suppress lifecycle recording during normal quit and startup restore so restored active workspaces do not become fake closed history.
  • Use minimal plus and minus lifecycle symbols, preserve custom agent names, and localize the new UI in English and Japanese.

Verification:

  • Commit 4932f20 adds the failing multiline-row and lifecycle-symbol regression tests; commit decbdfe fixes them.
  • Commit 691a9f5 adds the failing update-lag regressions; commit a874647 fixes them.
  • Cloud XCTest run hyt5-0d886c627db1 passed 33 History grouping and AppKit viewport tests, including 3,000-row virtualization, stable-cell retention, bounded 100,000-token transcripts, and lazy pointer work.
  • The right-sidebar CLI forwarding integration test passed.
  • Swift parsing, string-catalog validation, project validation, test wiring, and diff checks pass.
  • Final tagged fleet build hstry-5de008a30222 installed the exact PR head as cmux DEV hstry.app.
  • Before the incremental update fix, one mode switch produced a 528.39 ms main-thread hitch. The final Instruments trace produced zero hangs, with 25 ms in the AppKit snapshot update, 6 ms in visible event-cell configuration, and 2 ms in regrouping.
  • Search typing and an eight-page virtualized scroll each produced zero Instruments hangs.
  • Tagged Computer Use preflight exercised Timeline, By Folder, By Agent, search, agent icons, deep scrolling, active topology, normal quit and reopen, and workspace recovery.
  • Closing and reopening History Recovery Check restored the same workspace UUID and its /tmp terminal.

@coderabbitai

coderabbitai Bot commented Jul 29, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository: manaflow-ai/cmux/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: db0c4b00-e37c-4498-a329-2fe6a81c882d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@cursor

cursor Bot commented Jul 30, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@cursor

cursor Bot commented Jul 31, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@cursor

cursor Bot commented Jul 31, 2026

Copy link
Copy Markdown

Bugbot is paused — on-demand spend limit reached

Bugbot uses usage-based billing for this team and has hit its on-demand spend limit.

A team admin can raise the spend limit in the Cursor dashboard, or wait for the next billing cycle to continue.

@teamleaderleo

Copy link
Copy Markdown
Collaborator

I opened stacked follow-up #15628 for a concrete History gap: #9148 records windowOpened/windowClosed events with only a window ID, but the default Timeline filtered them out and the workspace projection could not match them. The follow-up includes window identities in Timeline matching and adds a regression test. It also adds a direct “Open History as Pane” action to the History menu.

* feat: expose History pane from History menu

* fix: retain window events in History timeline

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants