Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
17 changes: 17 additions & 0 deletions .github/workflows/cmux-next.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3689,6 +3689,23 @@ jobs:
derived_data="$(scripts/cmux-next/release-derived-data-path.sh release-compile Release)"
scripts/cmux-next/check-release-compile.sh "$derived_data"

# Early advisory for a newly bundled binary. The signed nightly check
# remains authoritative, but this names an unmapped file during review.
- name: Warn on missing Release bundle notices
if: ${{ always() && steps.reuse.outputs.hit != 'true' }}
continue-on-error: true
run: |
set -uo pipefail
derived_data="$(scripts/cmux-next/release-derived-data-path.sh release-compile Release)"
app="$(find "$derived_data/Build/Products/Release" -maxdepth 2 -type d -name '*.app' -print -quit 2>/dev/null || true)"
if [[ -z "$app" ]]; then
echo "::warning title=Release bundle notices::no Release .app product was found for the advisory notice scan"
exit 0
fi
if ! scripts/verify-app-bundle-licenses.sh "$app"; then
echo "::warning title=Release bundle notices::the advisory scan found a missing or unmapped bundled binary; the signed nightly check remains required"
fi

- name: Upload Release compile timing
if: ${{ always() && steps.reuse.outputs.hit != 'true' }}
continue-on-error: true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,16 @@ final class UIInspectorController {
observeToggle()
}

deinit {
if let contextMonitor { NSEvent.removeMonitor(contextMonitor) }
if let inspectNotification { NotificationCenter.default.removeObserver(inspectNotification) }
// AppKit monitor removal is main-thread-only. The controller can be
// released from an action task, so keep deinit nonisolated and perform the
// cleanup only when the runtime is already on the main thread.
nonisolated deinit {
guard Thread.isMainThread else { return }
MainActor.assumeIsolated {
if let monitor { NSEvent.removeMonitor(monitor) }
if let contextMonitor { NSEvent.removeMonitor(contextMonitor) }
if let inspectNotification { NotificationCenter.default.removeObserver(inspectNotification) }
}
}

var isPicking: Bool { monitor != nil }
Expand Down
Loading