Skip to content

fix: preserve window identity across native tabs - #40

Merged
qeude merged 3 commits into
mainfrom
fix/native-tabs
Aug 25, 2026
Merged

fix: preserve window identity across native tabs#40
qeude merged 3 commits into
mainfrom
fix/native-tabs

Conversation

@qeude

@qeude qeude commented Aug 25, 2026

Copy link
Copy Markdown
Owner

Summary

  • Detect and coalesce native tab backing windows behind their Accessibility representative.
  • Preserve window identity and runtime placement when native tab representatives change.
  • Add diagnostics and comprehensive discovery/reconciliation coverage for native tabs.

Testing

  • Not run (change request content only).

- Collapse native tab backing windows behind their representative
- Carry runtime state across representative identity changes
@greptile-apps

greptile-apps Bot commented Aug 25, 2026

Copy link
Copy Markdown

Greptile Summary

The PR coalesces native macOS tab backing windows under their Accessibility representative and preserves logical window identity when that representative changes.

  • Detects native tab groups and suppresses their physical backing windows during discovery.
  • Propagates representative-ID replacements through runtime layout, fullscreen placement, selection, and pending focus state.
  • Adds discovery, reconciliation, and displaced-focus recovery coverage.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

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
Loading

Reviews (3): Last reviewed commit: "Merge branch 'main' into fix/native-tabs" | Re-trigger Greptile

Comment thread Sources/DefiDaemon/DaemonDesktopSynchronization.swift
@qeude
qeude merged commit 9aaa053 into main Aug 25, 2026
2 checks passed
@qeude
qeude deleted the fix/native-tabs branch August 25, 2026 21:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant