cmux NEXT: existing chats open cold again until the adopted spare page draws its chat

Merged
TE
5d ago
+6-1

Leo, 2026-11-01: "i had to retry to get it to load???"

#31033 (merged 2026-11-01 22:46Z) turned on the warm-spare adoption from #27759, and the adopted page regresses (HQ#5914, same-host chat-open bench at 098aec3a):

  • sidebar open: the cover leaves, then the transcript is empty;
  • reopen: the cover holds about 15 s and the chat never paints (0/5 valid opens).

This turns adoption off: AgentPaneModel.servesExistingChat is false (AgentPaneSpareReadiness.adoptsExistingChats), so takeConnectedSpare never hands the spare to an existing chat, and every such tab opens cold, as before #31033. New Tab and new workspace still take the spare. Nothing else from #31033 changes (its boot-traffic and pane.clientReady fixes are harmless with no adoption). The fix to the adopted page, which turns it back on, follows in its own PR.

Takes back #31033: its adopted page shows no chat (above); this restores the cold open until the adopt path is fixed.

Changelog

Fixed: opening an existing chat in cmux NEXT draws it on the first try again.

Tests

No new test: the change is a constant that disables a path. SpareSessionAdoptionTests inject takeConnectedSpare directly and still cover the adopt path for its fix.

Observed / Not run

  • Ran: the cmux-next pre-push gate (no new violations); a Linux compile check of CmuxNextAgentPane at the head.
  • Not run: the chat-open bench at this head (the cold path it restores is base 530f1f2f's: sidebar 749 ms idle).

Risk: low. One constant; the path it switches off is 1 day old.
Agent session: agent session

šŸ¤– Generated with Claude Code


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


Summary by cubic

Turns off warm-spare adoption for existing chats in cmux NEXT until the adopted page can draw its chat. Adoption (from #31033) made sidebar opens show an empty transcript and reopens never paint; existing chats now open cold again, as before #31033. The fix to the adopted page follows in its own PR.

  • New Tab and new workspace still take the spare; only the existing-chat path is disabled.
  • No new test: the change is one constant, and SpareSessionAdoptionTests still inject takeConnectedSpare directly.