From 56d94e69745a6988cb192ec3b3e77fa61bafd9da Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Wed, 17 Dec 2025 19:55:41 +0100 Subject: [PATCH] Node pairing: avoid blocking main actor --- docs/refactor/canvas-a2ui.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/refactor/canvas-a2ui.md b/docs/refactor/canvas-a2ui.md index e4b0faf6a..30135f871 100644 --- a/docs/refactor/canvas-a2ui.md +++ b/docs/refactor/canvas-a2ui.md @@ -24,6 +24,7 @@ - `VoicePushToTalkHotkey`’s NSEvent monitor could call `@MainActor` code off-main, triggering executor checks / EXC_BAD_ACCESS on macOS 26.2. - Now it hops back to the main actor before mutating state. - Preserve in-page state when closing Canvas (hide the window instead of closing the `WKWebView`). + - Fix another “Canvas looks hung” source: node pairing approval used `NSAlert.runModal()` on the main actor, which stalls Canvas/IPC while the alert is open. ## Follow-ups - Add a small “action sent / failed” debug overlay in the A2UI shell (dev-only) to make failures obvious.