Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
dbc14f6
test: preserve recoverable windows in session snapshots
austinywang Aug 7, 2026
5511421
fix: preserve recoverable windows in session snapshots
austinywang Aug 7, 2026
9a5d1e2
fix: harden recoverable window lifecycle
austinywang Aug 7, 2026
ee7813a
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Aug 7, 2026
39e9e9d
refactor: isolate recoverable window route models
austinywang Aug 7, 2026
9f60949
fix: isolate dock route snapshots to main actor
austinywang Aug 7, 2026
f2fe999
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Aug 7, 2026
a15602e
fix: separate live and teardown window routes
austinywang Aug 7, 2026
690911e
test: cover recoverable window lifecycle gaps
austinywang Aug 7, 2026
a4a85ae
fix: unify recoverable window lifecycle finalization
austinywang Aug 7, 2026
8d65aa6
fix: return live dock snapshots
austinywang Aug 7, 2026
e3b8e66
fix: preserve bounded recoverable snapshots
austinywang Aug 7, 2026
2d1fac8
fix: harden recoverable snapshot safety
austinywang Aug 7, 2026
3695295
test: cover production windowless recovery path
austinywang Aug 7, 2026
bb4f4b9
fix: make window recovery lifecycle authoritative
austinywang Aug 7, 2026
042159b
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Aug 7, 2026
caab2d7
fix: freeze windowless recovery state
austinywang Aug 7, 2026
904c658
test: cover recovery freeze safety gaps
austinywang Aug 7, 2026
9dd43f2
fix: restore persistence route compilation
austinywang Aug 7, 2026
aa01a14
test: stabilize windowless recovery fixture
austinywang Aug 7, 2026
ee55d60
test: isolate windowless routing state
austinywang Aug 7, 2026
73b6179
test: target active windowless recovery path
austinywang Aug 7, 2026
ae5adcf
fix: harden frozen recovery state
austinywang Aug 7, 2026
edb63a3
test: migrate issue 2907 routing suite
austinywang Aug 8, 2026
1b1267f
test: remove stale visibility accessor assertions
austinywang Aug 9, 2026
2e64fd7
test: serialize shared app delegate snapshots
austinywang Aug 9, 2026
5e725d8
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Aug 9, 2026
28ad384
test: cover windowless transient cleanup
austinywang Aug 9, 2026
78969a9
fix: retire windowless transient state
austinywang Aug 9, 2026
f22bbf9
test: cover lifecycle freeze finalization
austinywang Aug 9, 2026
f4c3669
fix: finalize recoverable window lifecycle ownership
austinywang Aug 9, 2026
29e536e
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Aug 9, 2026
f4270ad
test: preserve detected binding during recovery freeze
austinywang Aug 9, 2026
aeae1af
fix: preserve verified bindings during recovery freeze
austinywang Aug 9, 2026
77136d6
test: allow hidden orphan window replacement
austinywang Aug 9, 2026
c05d362
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Aug 24, 2026
86184df
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Aug 24, 2026
d091e16
fix: coalesce windowless recovery scans
austinywang Aug 24, 2026
b1391f1
fix: preserve hidden orphan reattachment
austinywang Aug 25, 2026
8322e3e
fix: consume frozen routes during reopen
austinywang Aug 25, 2026
856e7fa
fix: bound recovery scan churn
austinywang Aug 25, 2026
39b6ecf
fix: bound frozen route persistence work
austinywang Aug 25, 2026
32c3bc7
fix: preserve lightweight orphan recovery
austinywang Aug 25, 2026
162f6cb
fix: account for eligible orphan persistence slots
austinywang Aug 25, 2026
554a4b3
fix: bound orphan cleanup and TTY capture
austinywang Aug 25, 2026
736e5b1
fix: retain full fidelity for bounded orphans
austinywang Aug 25, 2026
5c150c9
fix: keep fingerprint projections read-only
austinywang Aug 25, 2026
a569dca
fix: deadline fresh orphan detection
austinywang Aug 25, 2026
8038429
fix: own deferred orphan freeze tasks
austinywang Aug 25, 2026
f0c4e89
fix: preserve bounded recovery scan ownership
austinywang Aug 25, 2026
0d38cfc
fix: release completed recovery scan handles
austinywang Aug 25, 2026
cf20f74
fix: fail closed on unavailable recovery scans
austinywang Aug 25, 2026
9cc4017
fix: fail closed while recovery scan drains
austinywang Aug 25, 2026
4d7705a
fix: merge late recovery bindings
austinywang Aug 25, 2026
6ede59a
fix: align orphan freeze eligibility
austinywang Aug 25, 2026
0a74784
fix: count frozen recovery slots
austinywang Aug 25, 2026
ccaf249
fix: align recovery task result types
austinywang Aug 25, 2026
c73f7cd
fix: retire pruned frozen routes
austinywang Aug 25, 2026
24d3edf
refactor: name local snapshot values clearly
austinywang Aug 25, 2026
73e034b
fix: protect reattached windows and dock bindings
austinywang Aug 25, 2026
c284cce
fix: retain recovery fallback and deadline ownership
austinywang Aug 25, 2026
9fe16fe
fix: make recovery deadline race structured
austinywang Aug 25, 2026
6e0dabc
fix: bound and qualify orphan process bindings
austinywang Aug 25, 2026
2788667
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Aug 25, 2026
1559bb4
fix: restore merged lifecycle compatibility
austinywang Aug 25, 2026
b7b2186
test: cover lifecycle lookup index repair
austinywang Aug 25, 2026
634cd66
fix: close lifecycle review regressions
austinywang Aug 25, 2026
135175c
fix: harden recovery persistence fallbacks
austinywang Aug 26, 2026
b871a9f
test: cover recoverable route ownership teardown
austinywang Aug 26, 2026
6b76456
fix: preserve recoverable route ownership during teardown
austinywang Aug 26, 2026
32ff4ec
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Aug 26, 2026
35eb71d
test: cover hidden recoverable window scripting
austinywang Aug 26, 2026
390882d
fix: keep explicitly hidden recoverable windows routable
austinywang Aug 26, 2026
196a096
test: cover compatibility route reattachment
austinywang Aug 26, 2026
381dc6c
fix: close orphan ownership and adoption gaps
austinywang Aug 26, 2026
5d5d543
fix: avoid retaining orphaned window contexts
austinywang Aug 26, 2026
60922b5
fix: compare recovered sidebar selections by value
austinywang Aug 26, 2026
b69fb31
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Aug 30, 2026
02803ac
fix: expose shared TTY bindings to recovery lifecycle
austinywang Aug 30, 2026
1b15f3b
fix: type windowless recovery task result
austinywang Aug 30, 2026
f382921
fix: scope recovered window replacement checks
austinywang Aug 30, 2026
1f5e531
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Aug 30, 2026
ba9cb36
fix: consolidate exact restored-session lookup
austinywang Aug 30, 2026
aceb078
fix: restore hibernation record memberwise initialization
austinywang Aug 30, 2026
5d69e67
fix: wire main window routing test file
austinywang Aug 30, 2026
179f239
fix: keep Swift Testing notification predicate nonthrowing
austinywang Aug 30, 2026
7198a6e
fix: handle throwing mouse event test helpers
austinywang Aug 30, 2026
368f40c
fix: align browser test helpers with current APIs
austinywang Aug 30, 2026
d0fbba6
fix: align simulator and socket test helpers
austinywang Aug 30, 2026
894f7cc
fix: complete hibernation index test fixtures
austinywang Aug 30, 2026
fefd398
fix: update recovery lifecycle fixture for optional docks
austinywang Aug 30, 2026
1eaeba6
fix: unwrap browser drag translation assertions
austinywang Aug 30, 2026
50e351f
fix: annotate window dock lifecycle test result
austinywang Aug 30, 2026
fa1ea3f
fix: constrain window dock gate result
austinywang Aug 30, 2026
e99c898
fix: make window dock test gate effects explicit
austinywang Aug 30, 2026
94f922d
fix: assert the live recovered dock owner
austinywang Aug 30, 2026
ed8e8c1
fix: retain recoverable close observer and remote-only fixture
austinywang Aug 30, 2026
6d740e1
test: align recovery routing with current lifecycle contracts
austinywang Aug 30, 2026
383f837
test: stabilize app-host regression fixtures
austinywang Aug 30, 2026
1908f9a
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Aug 30, 2026
c6100b4
fix: avoid weak self capture in recovery worker callback
austinywang Aug 30, 2026
2a7f434
Merge origin/main into issue-9666-crosswindow-restore-crash
austinywang Aug 30, 2026
37df2f1
Merge origin/main into issue-9666-crosswindow-restore-crash
austinywang Sep 1, 2026
24d4f21
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Sep 1, 2026
e1c3877
test: cover delayed frozen orphan retention
austinywang Sep 1, 2026
55ad6a4
fix: harden recoverable route persistence
austinywang Sep 1, 2026
733829a
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Sep 1, 2026
edacac2
fix: make recovery fallback Swift 5 compatible
austinywang Sep 1, 2026
50c9ba5
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Sep 1, 2026
826190a
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Sep 1, 2026
dceeafe
ci: document hosted skill contract runner
austinywang Sep 1, 2026
379220c
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Sep 1, 2026
edef7b1
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Sep 2, 2026
93efcf4
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Sep 2, 2026
91b5a4b
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Sep 2, 2026
0cbf20c
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Sep 4, 2026
8342f7e
test: restore cloud test target compatibility
austinywang Sep 4, 2026
5abbd20
Merge remote-tracking branch 'origin/main' into issue-9666-crosswindo…
austinywang Sep 4, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Sources/App/MainWindowController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import CmuxWindowing

@MainActor
final class MainWindowController: ReleasingWindowController {
var onClose: (() -> Void)?
var onClose: ((NSWindow) -> Void)?
var shouldClose: ((NSWindow) -> Bool)?
var onFrameRestorationCheckpoint: ((NSWindow) -> Void)?

Expand All @@ -18,7 +18,7 @@ final class MainWindowController: ReleasingWindowController {
#endif

override func managedWindowWillClose(_ window: NSWindow) {
onClose?()
onClose?(window)
}

func windowDidExitFullScreen(_ notification: Notification) {
Expand Down
9 changes: 9 additions & 0 deletions Sources/App/MainWindowVisibilityController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -141,6 +141,15 @@ final class MainWindowVisibilityController {
committedClosedWindows.contains(window)
}

/// Returns whether a hidden window was explicitly retained for a later
/// visibility restore. Generic `orderOut` calls do not enter this topology,
/// so stale ordered-out windows remain fail-closed for routing.
func participatesInRestoreTopology(_ window: NSWindow) -> Bool {
appHiddenWindowRestoreTargets.contains { $0 === window }
|| dismissedWindowRestoreTargets.contains { $0 === window }
|| pendingApplicationActivationKeyRestoreTarget === window
}

@discardableResult
func focus(
_ window: NSWindow,
Expand Down
Loading