Skip to content

v20260615-nightly

@gnachman gnachman tagged this 14 Jun 22:40
Session Status tool:
- A per-tab status aggregate borrowed the winning session's GUID and
  broadcast its clear() globally, so switching workgroup peers evicted
  the real session's still-live status from SessionStatusController.
  The copyStatus() aggregate no longer broadcasts.
- Rows whose session can't be resolved render blank instead of showing
  a recycled cell's content; per-reload session resolution is memoized.

Workgroup lifecycle:
- Track instances by a stable identifier so a workgroup whose leader
  already closed can still be exited and torn down instead of leaking.
- Guard mid-spawn teardown reentrancy and close stray spawns so a
  member dying during entry can't leak shells or register a ghost.
- Refuse entry consistently across menu, triggers, and controller
  through one predicate; restoration uses a counted multiset and a
  monotonic soft deadline.

Session lookup and reveal:
- anySessionWithGUID also searches buried peer ports and the workgroup
  registry so windowless peers resolve; reveal surfaces them by
  retrying the swap or reviving into a window.

Adds ModernTests coverage for the above.
Assets 2
Loading