cmux NEXT: a click on a chat its agent made with acpmux new opens it
Summary
Leo clicked a row in the "18 sessions" tray above the composer (summary-panel, priority-view, … each "Running") and nothing happened. Same for those chats in the Inspector's Subagents list.
Why: the tray and the Inspector list the chats a chat's agent started from acpmux spawnedBy (an agent running acpmux new, started/startedSessions.ts). A click sends chat.offer.open, and the app only opens a session of the chat's family (AgentPaneOfferOpen, AgentTurnStateStore.isFamily). That family check read only startedBy, the link the start_session tool sets. A chat made with acpmux new has spawnedBy only, so the app answered chat.offer.refused and the page (by design) did nothing.
Now the watch's summaries link a chat by startedBy, else spawnedBy, the same way RemoteAgentSessionLinks already reads a peer machine's chats. Every started chat the page lists can be opened: it focuses its tab if one shows it, else opens in the chat's side pane.
Testing
AgentSubsessionFamilyTests.aSpawnedChatIsFamilyToo(new): aspawnedBy-only summary links to its parent,startedBywins overspawnedBy, a blankstartedByfalls back, a self link is dropped, andisFamilyholds afterreplaceStartedBy. It fails on base: there the summary has no parent.- The new parsing expression was compiled and run standalone with
swiftc(cases above). The package compile and test run on CI.
Observed / Not run
- Observed: the standalone
swiftcrun printed the expected parents. - Not run: the app. No Mac build on this host (rulebook); CI compiles it.
Changelog
Fixed: Clicking a chat the agent started with acpmux new in the running tray or the Inspector's Subagents now opens it
Proof
No capture: the fix is the native permission check behind the click; nothing changes on screen until a row is clicked.
Agent session: cosmic-gray