fix: preserve window identity across native tabs - #40
Merged
Conversation
- Collapse native tab backing windows behind their representative - Carry runtime state across representative identity changes
|
| Filename | Overview |
|---|---|
| Sources/DefiDaemon/DaemonDesktopSynchronization.swift | Applies representative replacements to prior selection, managed-window tracking, focus requests, and runtime reconciliation. |
| Sources/DefiDaemon/DaemonPointerFocusRecovery.swift | Rebinds command, workspace, and displaced-pointer focus state when native-tab representative IDs change, resolving the prior stale-identity path. |
| Sources/DefiMacOS/MacOSPlatform+WindowSnapshotDiscovery.swift | Detects and coalesces native-tab backing windows and emits live, unambiguous representative replacements. |
| Sources/DefiMacOS/WindowDiscoverySupport.swift | Adds native-tab grouping, matching, rebinding, and representative-replacement algorithms. |
| Sources/DefiRuntime/WindowReconciliation.swift | Rekeys runtime windows and associated layout and fullscreen placement state without removing and reinserting the logical window. |
| Tests/DefiDaemonTests/DaemonPointerFocusRecoveryTests.swift | Verifies displaced command-focus recovery adopts replacement target and previous-selection identities. |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart LR
AX[Accessibility window discovery] --> Tabs[Detect native tab group]
Tabs --> Coalesce[Coalesce backing window IDs]
Coalesce --> Replace[Derive representative ID replacement]
Replace --> Runtime[Rekey runtime window and placement state]
Replace --> Focus[Rebind pending and displaced focus requests]
Runtime --> Stable[Preserve logical window identity]
Focus --> Stable
Reviews (3): Last reviewed commit: "Merge branch 'main' into fix/native-tabs" | Re-trigger Greptile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Testing