Repository navigation
fix(desktop): bump tao to 0.37.2 to stop AppKit exceptions aborting Buzz - #1885
Merged
Merged
Conversation
On macOS 27, AppKit's Writing Tools text-selection affordance can raise an NSInternalInconsistencyException (NSCampoLightweightUIController.m:1429) inside [super sendEvent:]. tao 0.37.1 overrides -[NSApplication sendEvent:] with an `extern "C"` function, so the foreign exception could not unwind through it: Rust called panic_cannot_unwind and aborted the app. A native app would have let -[NSApplication run] log the exception and continue. tao 0.37.2 (tauri-apps/tao#1354) declares its ObjC method implementations and CFRunLoop callbacks `extern "C-unwind"`, so AppKit's own handler reports the exception and the app keeps running. The fix depends on Buzz not setting `panic = "abort"`, which it does not. The release also fixes a macOS abort on drags without file paths (#1267), a debug-build panic in drag_window with no current event (#1372), and memory growth when creating and closing windows on macOS (#1368). Lockfile-only: tauri-runtime-wry already accepts tao 0.37.x, and only tao's version and checksum change. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Matt Toohey <contact@matttoohey.com>
matt2e
marked this pull request as ready for review
October 29, 2026 05:13
kazemek21
approved these changes
Oct 29, 2026
kazemek21
left a comment
Contributor
There was a problem hiding this comment.
Kyle reviewed this PR and the Nexus review-tracker notes and approved with no comments.
Posted by Codex (gpt-6.1-sol) on behalf of kylez.
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
Buzz desktop aborted (SIGABRT) on macOS 27 after an AppKit assertion in the Writing Tools text-selection button. This PR bumps
taofrom 0.37.1 to 0.37.2, which includes the upstream fix (tauri-apps/tao#1354). AppKit can then handle its own exception, and the app keeps running.The crash
just desktopsession, a key press while text was selected in the webview brought up AppKit's Writing Tools button.NSInternalInconsistencyExceptionatNSCampoLightweightUIController.m:1429.abort() called. Rust printed no panic message.Root cause
[super sendEvent:].-[NSApplication sendEvent:]with anextern "C"Rust function, and a foreign exception can't unwind through one. Rust's landing pad intao::…::app::send_eventcalledpanic_cannot_unwindand then aborted.-[NSApplication run]would have caught the exception, logged it and kept running.-[NSApplication _handleEvent:], above every Buzz handler.stop_app_on_panicalready catches panics from Buzz's handlers and re-raises them as ordinary panics.Fix
tao 0.37.2 declares its ObjC method implementations and CFRunLoop callbacks
extern "C-unwind". AppKit's exceptions then reachNSApplication's handler, which reports them and continues. The upstream PR describes the same assertion on macOS 27.0.The release also includes:
draggingEntered:/performDragOperation:for drags without file paths (text, URLs).drag_windowwhen there is no current event.Keep in mind: the fix only holds without
panic = "abort". Buzz doesn't set it in any profile, so keep it that way.Scope
Cargo.lockchanges tao'sversionandchecksum, and nothing else moves.tauri-runtime-wry2.12.2 already depends ontao = "0.37.0", so no manifest changes are needed.cargo update -p tao --precise 0.37.2also rewrote 15 unrelatedwindows-sys/windows-coredependency edges to other versions that are already locked. I left those out.cargo check --lockedaccepts the tao-only lockfile as is.Test plan
bin/cargo check --locked -p Buzz: compiles, andcargo tree -i taoresolves totao v0.37.2.just desktop. Select text in a message to bring up the Writing Tools button, use it and dismiss it, and confirm normal use (typing, selection, window drag, drag and drop) still works.NSExceptionunder-[NSApplication sendEvent:]) in a scratch build. Otherwise, the next time the assertion fires, it should show in the unified log while Buzz keeps running.🤖 Generated with Claude Code