Repository navigation
cmux NEXT: Session Info opens only when you open it, not over every new chat - #26764
austinywang wants to merge 1 commit into
Conversation
|
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)
Probably yours: CI failed on
Failures:
Matched log linesNot re-run automatically: Written by red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on 3e4549c to compare; do not merge until green; see lane-rules Tour of Stale: these images are of Gallery before/after for
States
Pick other states with a |
|
Found 14 test failures on Blacksmith runners: Failures
...and 4 more test failures. View all on Blacksmith
|
|
Bead |
Correctness review (subagent), head
|
Visual review: FIX (advisory)Head Merge: advisory, no fix finding is on a real-app capture (fleet DEV capture or media tour); Linux, Chromium or WebKit-pane renders of macOS UI never block, confirm on the real app. Linux Chromium renders show the intended change: Session Info is gone from the PR dock stories that are not about it, and it looks the same where a story opens it. Advisory FIX only because there is no real-app or macOS WebKit capture. Evidence: linux · fallback fonts · Chromium (component).
Findings:
Captures: https://github.com/manaflow-ai/cmux/actions/runs/40649941380 |
|
Screenshot evidence for head
|
Visual review: FIX (advisory)Head Merge: advisory, no fix finding is on a real-app capture (fleet DEV capture or media tour); Linux, Chromium or WebKit-pane renders of macOS UI never block, confirm on the real app. Gallery renders show no visual change: Session Info looks identical where the play now clicks it open, and new-chat stays closed. Only Linux fallback-font captures exist, so a real-app capture is still required. Evidence: linux · fallback fonts · Chromium (component).
Findings:
Captures: https://github.com/manaflow-ai/cmux/actions/runs/40980806460 Images stay in the gallery artifact of the captures run (not uploaded to this public PR). |
Correctness review (subagent), head
|
|
Review (subagent, correctness first): SHIP at 17d1765 Three review rounds ran on this head's changes, and every finding is resolved (see the correctness review comment above). The visual review is advisory: its only fix finding is that the evidence is Linux-only, it found no visual defect, and it does not block. The only red, |
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
Review (claude-indep-reviewer): SHIP at 85e982c Checked. I read the full diff from merge-base Correctness. I traced every way the pane moves between chats against
No path opens Session Info without a click. While Repo rules. The PR has no Swift and no animation, dialog, shortcut or action-handler changes. It adds no user-facing strings, so it needs no localization audit. The gallery plays open Session Info only when it is closed, so they do not depend on a fixed order. Tests. The new case in Compile evidence for this head. A green compile exists for this webviews-only change:
The Swift Release compile is neutral ("shared HQ slot is busy"). This PR changes no Swift, so it does not need that compile. Red checks: all from the base, none from this PR.
Risk tier. Notes (not blocking).
|
|
Merged origin/feat-cmux-next into this branch (merge commit c9ba470, no rebase, no force push). One conflict in Checks on this head: |
|
Review (claude-reviewer-26764): SHIP at c9ba470 Scope: PR #26764 (webviews only), head c9ba470, merge commit of origin/feat-cmux-next (parent 2) into the PR head 85e982c (parent 1). Read-only review. I did not compile, run tests, edit, push, or change labels. Searches were scoped to /work/wt/resolve-26764. Verdict: no blocking findings. The merge keeps both sides in full. Merge resolution (checked, correct)
Feat additions since f8bd6ac (no default-open assumption found)
PR's own change (inspectorState.ts, App.tsx, galleries, tests)
Non-blocking notes (no fix needed for SHIP)
Not run: compile, lint, unit tests, browser lanes, gallery. Checks were by reading the diffs and call sites. |
|
Removed ready-to-land: this PR conflicts with feat-cmux-next (DIRTY), so no merge can take it. Merge feat-cmux-next into the branch, resolve, and get a new receipt at the new head; then add the label again. |
|
For awareness: this PR has a SHIP review at its head, but GitHub reports it as conflicting with |
Merged current
|
| Test file | Result |
|---|---|
session-info-per-pane-state |
14/14 |
session-info-split-starts-closed |
3/3 |
session-info.test.tsx |
36/36 |
session-info-surfaces |
22/22 |
session-info-dead-clicks |
7/7 |
session-info-subagent |
1/1 |
subagent-tray |
42/42 |
access-chip-pending-warning |
11/11 |
chat-header-every-tool-acts |
2/2 |
clickable-cursor |
6/6 |
background-task-arrival |
7/7 |
native-session-info-toggle |
5/5 |
session-info-motion |
5/5 |
session-info-reveal |
5/5 |
agent-pane-workflow-progress |
late-root 2/2; the usage-only tests time out under load on both head and base |
scripts/web-lint.sh: passes.prepush-gate.py: no new violations.- Base red:
test/session-info-width-stages.test.tsfails 2 tests both on this head and on base 5de3c47 itself. It is a pure-function test, so this failure is not caused by this PR.
Not run: browser-lane and Playwright tests (reviewed by reading only) and the gallery captures (CI runs those as advisory).
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
Ready for review: head 3ca735cOn top of the merge comment above, 3ca735c fixes this PR's only CI red of its own. Base's newer gallery variant CI on 3ca735c: MERGEABLE, no unresolved review threads. Every remaining red is a base finding, not this PR's:
I have not merged this PR, and I left the labels as they are. |
|
Review (codex gpt-6.1-sol xhigh, next-review): SHIP at 3ca735c SHIP at 3ca735c Visual verdict: no introduced visual regressions across all 16 supplied before/after pairs. Reviewed state transitions and persistence; 17 store checks passed in a Node adaptation. Bun/browser tests were unavailable locally. Follow-ups: none |
A chat with no saved state starts with Session Info closed, a pane moving to a new chat shows it closed from its first frame, and saved per-chat state carries a version so an open written by the old default reads as closed. Tests and gallery plays that relied on the old default open Session Info the way a viewer does. Rebased onto feat-cmux-next b4570f1 as the PR's net change: the branch's last merge already carried the Inspector -> Session Info rename, so its original commits are folded into this one. Merged with the base's per-tab Session Info state: saves go under the tab's and the chat's keys with the version, a tab change while a pane is leaving its chat does not re-bind the chat it left, and a chat handed back is read through the tab's own key. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3ca735c to
60350f8
Compare
|
Correctness review of the rebase onto
|
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)






Fixes #26692
What was happening
The floating panel listing the chat's machine, folder, repository and branch with a Save button is Session Info (the chat Inspector,
inspector/ChatInspector.tsx, Environment section). Its state (inspector/inspectorState.ts) defaulted to open for any chat with no saved state of its own ("Open unless the viewer closed it: a first chat shows it"), a new chat inherited the open state of the chat the pane showed before, and that open was then saved under each new chat. So Session Info appeared by itself over every new agent chat, on top of the chat and its composer, until it was closed by hand.Every other way it opens (the header toggle, the command palette, a running line's count, a tray row with nowhere else to go) is already a click.
The change
v: 2). Anopen: truesaved before this change was written by the old default, not by the viewer, so it reads as closed. Chats that already popped Session Info open stop doing so too.The panel's placement does not change: it floats in the right gutter, or above the composer stack when it lies over the chat (
inspectorOverChat/useDockHeight).Tests and gallery
test/inspector-per-pane-state.test.ts: new regression test, "a new chat never opens Session Info by itself, whatever another chat or an old install left". It covers a first chat, a last choice of open in another pane plus the old shared key set to"1", an old unversionedopen: truechat, a pane moving from an open chat to a new chat (shownForandbind), and a harness switch. Existing tests there are updated to the closed default. The module import now goes by file path instead of URL path, because the URL path percent-encodes the space in the fleet'sApplication Supportcheckout and the file failed to load there.setInspectorOpen(true)):chat-inspector.test.tsx,background-task-arrival.test.tsx,agent-pane-background-tasks.test.ts,chat-inspector-per-pane.test.ts, and theInspectorMotion,scrollbarEdge,ChangesFromCache,WorkflowPaneandPullRequestDock(none-session-info) gallery entries.Changelog
Rebased on feat-cmux-next
b4570f16cc(head60350f8877)The branch's last merge already carried the base's Inspector → Session Info rename, so the 13 original commits are folded into one commit with the PR's net change. Three files conflicted with the base's per-tab Session Info state (
setTab/savedFor) and were merged keeping both sides:sessionInfoState.ts(saves go under the tab's and the chat's keys withv: 2; a tab change while a pane is leaving its chat does not re-bind the chat it left; a chat handed back is read through the tab's own key),App.tsx(imports) andChangesFromCache.gallery.ts(the base's Show-more preset, then the open-by-click).60350f8877, stepfb1bf66cb39a6438581a8244(aws-m4pro-6): 1877 files, every Session Info test passes; 11 files fail, the same 11 that fail on the baseb4570f16cc, stepae43f8a934af9e6c9d9c68a2(aws-m4pro-2): queuePausedState, browser-lane-required, check-icon-scale, check-system-blue, gallery-coverage, hairline-rims, theme-colors, thread-minimap-rail, tooltip-rules, ui-rules, user-message-actions. None is from this PR.26692-location-popoverfrom60350f8877, jobc7d43a1cee788d7e188a6499: done, published.The receipts below are from the pre-rebase heads.
Red / green
Fleet
cmux-ci run --class light --script scripts/ci/run-webviews-tests.sh:ae8b5222622f40c09c20ef8114296dfd860235d9(the regression test, before the fix), jobfeb486d0fa498ff147ac547f:test/inspector-per-pane-state.test.tsfails 4 of 12. The new test fails at line 70,expect(open).toBe(false), Receivedtrue; the other three are existing tests updated to the closed default.4e48cabc589c3318b3bef5e0aa799a08f6d837ab, unit, joba21bd65d8bb304502d462c3d(cmux-austin-mini-0):inspector-per-pane-state,chat-inspector,background-task-arrivalall pass.4e48cab, browserchat-inspector-per-pane(chromium and webkit), job4386ffeb63009a1090079665(cmux-austin-mini-0): pass. An earlier run, jobdd67e3bd8deec09758f02c3don another fleet Mac, hit the 120s file limit after the chromium case passed; the rerun on another host passed.agent-pane-background-tasks: the inspector cases pass at4e48cab. One case, "the summary card lists the chat's background tasks: running ones first, the finished folded", fails the same way on the base17dfb9d320(jobbe795030dee344caee9c57f2): the summary card shows the first finished tasks while folded. It is not from this PR, and this PR leaves it as is.scripts/web-lint.shpassed (webviews, 720.7s).Observed / Not run
26692-location-popoverbuilt from4e48cab(jobaa693f4d87688e3b99718780); CI gallery captures of4e48cab(Linux Chromium, run https://github.com/manaflow-ai/cmux/actions/runs/40649941380). In the PR-dock states, before shows Session Info over the chat and composer, and after shows the chat with the composer clear.🤖 Generated with Claude Code