cmux-next: reopen closed workspace

Merged
TE
1mo ago
+303-6

Reopen Closed Workspace now uses the same daemon history owner as Reopen Closed Tab, Reopen Closed Screen, and Recently Closed. It reopens the newest plain workspace, skips group records, and shows the restored workspace by its exact ID.

Empty history and a workspace already reopened by another client produce a localized refusal. If the restore commits but its workspace is missing from the mirror, the action reports that it may have applied instead of silently succeeding.

Verification

  • Test-only commit: c1a7b8d66b0cab0b976994cee662a2247787bf36; two new regressions fail as expected, fleet job 3a329bf32bf1249bad75e8ad.
  • Initial fix 277d141f317c5f0105ca083d2d98d9d9f4432237 passed all 6 shared-history tests (fleet 4b72dc8eb9843367e72ebb68).
  • Follow-up test-only commit b21b196c42cabbeaae0e681335b2f75bed0de468 fails the no-window regression (fleet c2e0e0810c3ec85090565c59).
  • Current fix 0cf3736c304b169175c6365dda33ebacacebbabe adds a cancellable event-driven wait for the exact workspace and uses the existing window-reveal path. All 10 focused tests pass (fleet fa5146e490bb8d1feeccbdfc).
  • Shared-history tests cover workspace selection, empty history, raced removal, and a missing workspace alongside an unrelated live workspace.
  • Independent review found no correctness issue. All four original review threads are addressed; both later lifecycle findings are fixed and all review threads are resolved.
  • The refusal is localized in all 21 existing catalog locales. Repository-wide localization guards still fail in unchanged entries.

The merged base dd4e81ad also fails the repository guards: base run shows the same AcpmuxDaemonLauncher concurrency lint, icon-picker scrollbar lint, and CI target/routing graph failures as the earlier PR run. Final-head hosted checks are still pending.

Changelog

  • Added: Reopen Closed Workspace restores the newest workspace from daemon history.