Merge pull request #126 from getagentseal/fix/menubar-disable-appnap

fix(menubar): opt out of App Nap so refresh loop keeps ticking
This commit is contained in:
Resham Joshi 2026-04-21 13:38:26 -07:00 committed by GitHub
commit 2ffd5b46c1
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -30,11 +30,21 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSPopoverDelegate {
private let store = AppStore()
let updateChecker = UpdateChecker()
private var refreshTask: Task<Void, Never>?
/// Held for the lifetime of the app to opt out of App Nap and Automatic Termination.
/// Without this the 15s refresh Task gets suspended whenever the user is interacting with
/// another app, and the status bar label freezes until they click the menubar icon (which
/// calls NSApp.activate and wakes the app back up).
private var backgroundActivity: NSObjectProtocol?
func applicationDidFinishLaunching(_ notification: Notification) {
// Menubar accessory -- no Dock icon, no app switcher entry.
NSApp.setActivationPolicy(.accessory)
backgroundActivity = ProcessInfo.processInfo.beginActivity(
options: [.userInitiated, .automaticTerminationDisabled, .suddenTerminationDisabled],
reason: "CodeBurn menubar polls AI coding cost every 15 seconds while idle in the background."
)
restorePersistedCurrency()
setupStatusItem()
setupPopover()