Revert portal hierarchy mutation tracker launch crash - #10018
Conversation
This reverts commit a161d16.
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (10)
📝 WalkthroughWalkthroughThe split-divider cache now tracks root subview identities and observes geometry and structure views directly. Hierarchy mutation swizzling, registration, tracking state, and related tests were removed. Interaction-layer reordering always invokes ChangesSplit-divider cache redesign
Estimated code review effort: 4 (Complex) | ~45 minutes Possibly related PRs
Suggested reviewers: ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
* Hide current iOS Agent GUI * Revert portal hierarchy mutation tracker launch crash (#10018) * Revert "Fix portal mutation tracker launch crash (#10008)" This reverts commit a161d16. * Revert "Portal: invalidate the split-divider hit-test cache on nested subview insertion (#8580)" This reverts commit bcfb2d7. --------- Co-authored-by: Austin Wang <austinwang115@gmail.com>
Summary
Closes #10016
Crash and rationale
Nightly 0.64.22-nightly.3154007367401, built from 71d80fa, crashed about ten seconds after launch on the main thread with EXC_BAD_ACCESS at address 0. The stack entered cmux from SwiftUICore _AppKitAddSubview during DisplayList rendering and reached objc_setAssociatedObject with a nil receiver.
The crashing nightly already included #10008, which moved insertion tracking before AppKit consumed the inserted view. Because that forward fix did not eliminate the launch crash, this PR follows the issue directive and removes the entire regression source instead of attempting a second nil/lifetime patch at a process-wide AppKit swizzle boundary.
Verification
CMUX_SKIP_ZIG_BUILD=1 /Users/austinwang/manaflow/cmuxterm-hq/scripts/reload-cloud.sh --tag issue-10016-revert-portal-tracker-launch-crash --launchissue-10016-revert-portal-tracker-launch-crash-a35df7eebe94completed in 247 seconds and launched the isolated bundle.divider.session.mouseDown,divider.dragUpdate, anddivider.dragEnd; pane widths changed from 459.5/299.5 to 484.5/274.5, confirming restored split-divider hit-testing still works.cmux*.ipsorcmux*.crashappeared in~/Library/Logs/DiagnosticReportsafter the verification marker.scripts/check-pbxproj.sh,scripts/lint-pbxproj-test-wiring.sh(671 files),scripts/check-package-resolved-policy.py, andgit diff --checkpass.scripts/swift_file_length_budget.pyis not present on this branch.Summary by cubic
Reverts the portal hierarchy mutation tracker and AppKit swizzles to fix a launch-time EXC_BAD_ACCESS and restores the previous split-divider cache policy keyed by root subview identity. Addresses #10016 and keeps divider hit-testing working.
NSView/NSSplitViewswizzles and associated-object tracker that triggered the launch crash; reverted Fix portal mutation tracker launch crash #10008 and Portal: invalidate the split-divider hit-test cache on nested subview insertion #8580.subviewsidentity, observesubviewsplus geometry/structure views; no global hooks.WindowBrowserHostViewandWindowTerminalHostViewto use the new cache key and simplified invalidation.Written for commit 127dcc7. Summary will update on new commits.
Summary by CodeRabbit
Performance
Bug Fixes
Tests