Skip to content

Fix doctor crash and notification status on macOS - #54

Merged
vishr merged 1 commit into
mainfrom
fix/doctor-notifications
Oct 24, 2026
Merged

vishr merged 1 commit into
mainfrom
fix/doctor-notifications

Conversation

@vishr

@vishr vishr commented Oct 24, 2026

Copy link
Copy Markdown
Member

Found right after installing v2026.10.13-alpha:

  • Crash: driga doctor run as Driga.app/Contents/MacOS/driga doctor crashed with SIGSEGV. The notification-permission check drained an autorelease pool on a different OS thread than the one that created it. Pools now lock the goroutine to its thread until drained.
  • Wrong status: through the Homebrew symlink /opt/homebrew/bin/driga, macOS doesn't treat the process as Driga.app, so doctor said "reinstall the app". doctor and collect now re-exec from the real path when started through a symlink. Other commands, including hooks, are unchanged.

The running collector was not affected: launchd starts it by its full path, and it runs these calls on its locked main thread.

Checked: an ad-hoc signed Driga.app, run 10 times via a symlink and 10 times via the full path, reported the status correctly with no crash. just check passes.

https://claude.ai/code/session_01T2vtcW6ihn1ywy9vxUq9a4

`driga doctor` could crash: an autorelease pool was drained on a different
OS thread than the one that created it. Pools now pin their goroutine to
the thread until drained.

Run through the Homebrew symlink (/opt/homebrew/bin/driga), macOS did not
see doctor as Driga.app and it reported "reinstall the app". `doctor` and
`collect` now restart from the real executable path when started through
a symlink, so macOS identifies them as Driga.

Claude-Session: https://claude.ai/code/session_01T2vtcW6ihn1ywy9vxUq9a4
@vishr
vishr merged commit cd3e581 into main Oct 24, 2026
4 checks passed
@vishr
vishr deleted the fix/doctor-notifications branch October 24, 2026 05:17
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