Skip to content

agent pane: a chat opened in a split starts with Session Info closed - #32763

Merged
teamleaderleo merged 1 commit into
feat-cmux-nextfrom
lane/split-session-info-closed
Nov 3, 2026
Merged

teamleaderleo merged 1 commit into
feat-cmux-nextfrom
lane/split-session-info-closed

Conversation

@teamleaderleo

@teamleaderleo teamleaderleo commented Nov 3, 2026 •

Copy link
Copy Markdown
Collaborator

Leo, 2026-11-03: "i also dont like how the session info overlay is when it goes to a right split honestly it's often fine to just not have it open by default on the right like it doesn't need to inherit that..."

Leo, 2026-11-03: "like if they want it open they can just do it on the right split one but otherwise it really doesn't have that much space pretty often"

Follow-up to #32677, which made an opened subagent go to the right split.

What changes

  • A chat opened in a split starts with Session Info closed. That covers a subagent's pane, and a chat its agent started (startedBy/spawnedBy, the task and sub-session chips) when it opens beside its parent.
    • Session Info's state for such a pane is kept under a key of its own (sessionInfoPaneKey, split:<session>). With no saved state, that key starts closed instead of taking the parent's state or the last choice made.
    • If the person opens Session Info there, the choice sticks for that pane and never reaches the parent's.
    • A subagent's pane shows its chat's own session. Before this change it read and wrote the chat's own Session Info state, so the parent's open state carried over into the split.
  • Review follow-up from agent pane: an opened subagent goes to the right split; no "Back to" names a raw id #32677: the comment above showSubagent in App.tsx no longer says panes open only while the switch is on.

Logic is in shared web only (sessionInfoState.ts, SessionInfo.tsx, App.tsx). The native Session Info layout is untouched.

Tests

test/session-info-split-starts-closed.test.ts:

  • A split pane's first frame and its bind read closed while the parent stays open, including after a relaunch.
  • A started chat opened beside its parent starts closed.
  • Opening Session Info in the split pane sticks there and leaves the parent's state alone.

Observed / Not run

  • Observed: bun test on the new test, session-info-per-pane-state and subagent-click-opens-right-split (23 pass); vp fmt/vp lint on the changed files; prepush gate.
  • Not run:
    • A native capture of a split chat.
    • The "split" signal for a chat opened beside an unrelated chat (for example, a "Sent to" sender chip opening another root chat). The page has no signal for that case today, and the app does not tell the page that a chat tab was opened as a split. Those panes keep the old default.

Agent session: agent session

🤖 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

Chats opened in a split — a subagent's pane, or a chat its agent started — now start with Session Info closed instead of inheriting the parent's open state.

Not covered: a chat opened beside an unrelated chat (a "Sent to" sender chip) and a native capture of a split chat; those panes keep the old default.

Written for commit 6efe02e. Summary will update on new commits.

View guided diff Turn on auto-fix

Leo, 2026-11-03: "i also dont like how the session info overlay is when it goes
to a right split honestly it's often fine to just not have it open by default on
the right like it doesn't need to inherit that..." and "like if they want it open
they can just do it on the right split one but otherwise it really doesn't have
that much space pretty often".

A subagent's pane and a chat its agent started (startedBy/spawnedBy) keep
Session Info under a key of their own (sessionInfoPaneKey, "split:<session>"),
which starts closed instead of inheriting the parent's or the last choice. Opening
it there sticks for that pane and never reaches the parent's. A subagent's pane
shows its chat's session, so it no longer reads and writes the chat's own state.
Also fixes the stale comment above showSubagent (review follow-up of #32677).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agent-Session: https://cmux.com/deeplink/agent?id=aid-7a7568197607c3cdfb81
@github-actions

github-actions Bot commented Nov 3, 2026 •

Copy link
Copy Markdown
Contributor

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

Review 6efe02e: 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=pr32763 -f ref=lane/split-session-info-closed -f platform=macos -f backend_mode=local

Gallery before/after for 6efe02e: 16 states rendered, 10 images differ, 3034 more touched states not rendered. 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 41556457919 -R manaflow-ai/cmux -n gallery-advisory-32763-6efe02e75adeb999d534bd61edf44597498fc23e (then read gallery-review.json)

States
State Theme Status Diff Picked by
agent-pane.chat-inspector/full Apple System Colors Light unchanged 0% own SessionInfo.tsx
agent-pane.chat-inspector/full Apple System Colors unchanged 0% own SessionInfo.tsx
agent-pane.chat-inspector/workflow-running Apple System Colors Light changed 0.0064% own SessionInfo.tsx
agent-pane.chat-inspector/workflow-running Apple System Colors changed 0.0056% own SessionInfo.tsx
agent-pane.chat-inspector/workflow-finished Apple System Colors Light unchanged 0% own SessionInfo.tsx
agent-pane.chat-inspector/workflow-finished Apple System Colors unchanged 0% own SessionInfo.tsx
agent-pane.chat-inspector/workflow-agent-failed Apple System Colors Light unchanged 0% own SessionInfo.tsx
agent-pane.chat-inspector/workflow-agent-failed Apple System Colors unchanged 0% own SessionInfo.tsx
agent-pane.chat-inspector/workflow-agent-row-compact Apple System Colors Light changed 0.0048% own SessionInfo.tsx
agent-pane.chat-inspector/workflow-agent-row-compact Apple System Colors changed 0.0023% own SessionInfo.tsx
agent-pane.chat-inspector/workflow-agent-row-detail Apple System Colors Light changed 0.0067% own SessionInfo.tsx
agent-pane.chat-inspector/workflow-agent-row-detail Apple System Colors changed 0.0055% own SessionInfo.tsx
agent-pane.chat-inspector/workflow-agent-row-grid Apple System Colors Light changed 0.0062% own SessionInfo.tsx
agent-pane.chat-inspector/workflow-agent-row-grid Apple System Colors changed 0.0059% own SessionInfo.tsx
agent-pane.chat-inspector/workflow-agent-row-narrow Apple System Colors Light changed 0.0063% own SessionInfo.tsx
agent-pane.chat-inspector/workflow-agent-row-narrow Apple System Colors changed 0.0056% own SessionInfo.tsx
agent-pane.chat-inspector-surfaces/transcript Apple System Colors Light unchanged 0% own SessionInfo.tsx
agent-pane.chat-inspector-surfaces/transcript Apple System Colors unchanged 0% own SessionInfo.tsx
agent-pane.chat-inspector-surfaces/diff-in-place Apple System Colors Light unchanged 0% own SessionInfo.tsx
agent-pane.chat-inspector-surfaces/diff-in-place Apple System Colors unchanged 0% own SessionInfo.tsx
agent-pane.chat-inspector-surfaces/document-beside Apple System Colors Light unchanged 0% own SessionInfo.tsx
agent-pane.chat-inspector-surfaces/document-beside Apple System Colors unchanged 0% own SessionInfo.tsx
agent-pane.chat-inspector-surfaces/diff-closed Apple System Colors Light unchanged 0% own SessionInfo.tsx
agent-pane.chat-inspector-surfaces/diff-closed Apple System Colors unchanged 0% own SessionInfo.tsx
agent-pane.chat-width/standard Apple System Colors Light unchanged 0% own App.tsx
agent-pane.chat-width/standard Apple System Colors unchanged 0% own App.tsx
agent-pane.chat-width/wide Apple System Colors Light unchanged 0% own App.tsx
agent-pane.chat-width/wide Apple System Colors unchanged 0% own App.tsx
agent-pane.chat-width/wide-blocks Apple System Colors Light unchanged 0% own App.tsx
agent-pane.chat-width/wide-blocks Apple System Colors unchanged 0% own App.tsx
agent-pane.composer-edge/short-edge Apple System Colors Light unchanged 0% own App.tsx
agent-pane.composer-edge/short-edge Apple System Colors unchanged 0% own App.tsx

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

Shipped in:

@github-actions github-actions Bot added the risk:normal Risk tier (docs/ci/risk-tiers.md) label Nov 3, 2026

@teamleaderleo teamleaderleo left a comment

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Review (claude-opus-5-5): SHIP at 6efe02e

Review (subagent claude-opus-5-5): SHIP at 6efe02e
Visual verdict: no images; Session Info closed by default in a split-opened chat, layout untouched.
Checked the pane key match between App.tsx and useSessionInfo, snapshot stability of the closed default, index/prune with split: keys, native Session Info reading the bound state, and gallery plays (none expect Session Info open in a subagent pane or started chat). Tests pass.
Follow-ups: key subagent panes by subagent id instead of one split: key; avoid the first-frame bind to the parent's key before the subagent reveal; keep a split pane's open/close out of the global default for new chats; Chief-spawned chats (spawnedBy) start closed in their main pane too.

@teamleaderleo
teamleaderleo merged commit 4f0dbd7 into feat-cmux-next Nov 3, 2026
196 of 208 checks passed
@teamleaderleo
teamleaderleo deleted the lane/split-session-info-closed branch November 3, 2026 01:48
austinywang added a commit that referenced this pull request Nov 3, 2026
Conflicts came from base renaming Inspector to Session Info (inspector/ to
session-info/, .acpmux-chat-inspector to .acpmux-session-info) and from
#32763 (a split pane starts with Session Info closed). sessionInfoState.ts
keeps both rules: a chat with no saved state starts closed when it replaces
another chat's session or sits under a split pane's key; base's Show more,
section versioning and split keys stay, and the saved state keeps its v: 2.
App.tsx calls startNewSessionInfoChat at the handshake reset. The PR's
gallery plays open Session Info with the renamed selector;
PullRequestDockComparisons.ts stays deleted as on base (#29614). The per-pane
test folds Context instead of opening it, since base opens Context by default.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

This branch was previously deployed

1 inactive deployment
ci-routing-agent — 6efe02e7 Deployed Nov 3, 2026 by teamleaderleo via cmux-tui tree preflight #103220
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