Skip to content

Harden event tap and add Sparkle auto-updates - #5

Merged
andyhtran merged 2 commits into
mainfrom
fix-keyboard-tap
Jul 15, 2026
Merged

Harden event tap and add Sparkle auto-updates#5
andyhtran merged 2 commits into
mainfrom
fix-keyboard-tap

Conversation

@andyhtran

Copy link
Copy Markdown
Owner

Summary

  • Starved tap detection: Query CGGetEventTapList for WindowServer queue latency to detect taps that report enabled=true but are no longer servicing events (e.g. after sleep/wake). Tear down and rebuild when latency exceeds 5s during a silent window.
  • Sparkle auto-update integration: Full in-app update pipeline — custom SPUUserDriver (no Sparkle windows), inline update state in the menu bar and Settings, macOS notification on background discovery, Homebrew Cask detection to disable Sparkle for cask-managed installs, build-time framework embedding and re-signing, appcast generation/verification scripts, and local E2E update-flow testing.

Test plan

  • Verified starved tap detection triggers rebuild after simulated stall
  • Sparkle update check works from menu bar and Settings
  • Update banner renders all states (checking, available, downloading, installing, up-to-date, failed)
  • Auto-update toggle persists preference correctly
  • Disabled updater shown for unsigned/dev/Homebrew builds
  • Notification fires for background-discovered updates
  • just test-update local E2E flow completes successfully

🤖 Generated with Claude Code

andyhtran and others added 2 commits July 14, 2026 23:26
tapIsEnabled reports true even when the mach port is registered but
events are no longer being serviced. Query CGGetEventTapList for
per-tap latency and rebuild when it exceeds 5s during a silent window.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Wire up Sparkle for in-app updates: updater subsystem with custom
SPUUserDriver (no Sparkle windows), inline update state in the menu
bar and Settings, notification on background discovery, Homebrew Cask
detection, build-time framework embedding and re-signing, appcast
generation/verification scripts, and local E2E update-flow testing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@andyhtran
andyhtran merged commit 822ea31 into main Jul 15, 2026
1 check passed
@andyhtran
andyhtran deleted the fix-keyboard-tap branch July 15, 2026 04:14
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