mirror of
https://github.com/AgentSeal/codeburn.git
synced 2026-04-29 23:49:39 +00:00
fix(menubar): force status bar redraw and lift subprocess QoS
Two independent causes for the stuck-label / only-refreshes-on-click behaviour, both fixed here. 1. NSStatusItem button defers the status bar paint for accessory apps that are not foreground, so after refreshStatusButton sets the new attributed title the menu bar visually froze until the user opened the popover (which triggers NSApp.activate and a forced redraw cycle). Explicit needsDisplay + display() forces the paint every cycle. 2. The codeburn subprocess inherited the accessory app's default QoS, which macOS background-throttles. That could stretch a sub-1-second parse into tens of seconds on large corpora and overrun the 15s refresh cadence. Set .userInitiated so the CLI runs at the same priority it does from a user-interactive terminal.
This commit is contained in:
parent
d69aa344ab
commit
556f2bf78c
2 changed files with 10 additions and 0 deletions
|
|
@ -41,6 +41,11 @@ enum CodeburnCLI {
|
|||
// `env --` treats everything following as argv, not VAR=val pairs -- guards against an
|
||||
// argument accidentally resembling an env assignment.
|
||||
process.arguments = ["--"] + baseArgv() + subcommand
|
||||
// The menubar runs as an accessory app with no foreground window, and macOS
|
||||
// background-throttles accessory apps and their children. Without this lift the
|
||||
// codeburn subprocess parses 5-10x slower than the same command run from a
|
||||
// user-interactive terminal, which starves the 15s refresh cadence on large corpora.
|
||||
process.qualityOfService = .userInitiated
|
||||
return process
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue