Review everything shipped this weekend, and fix what the reviewers caught

Claude-Session: https://claude.ai/code/session_01Ms2FbjQy31TVf3CEvQhGM8
This commit is contained in:
Gabriel Brown
2026-08-24 13:29:42 -04:00
parent ffce48964e
commit 07db1068f1
42 changed files with 959 additions and 219 deletions
@@ -25,12 +25,12 @@ Singleton {
property string actionKind: ""
property string actionPath: ""
// actionProc's `exited` and its stdout `streamFinished` are not guaranteed
// to fire in a particular order (same hazard HomeAssistantConfig.qml's
// settle-both pattern guards against). These track which of the two have
// been observed for the action currently in flight so finishAction() is
// only ever called once both have arrived, with the real stdout JSON as
// the authoritative result.
// actionProc's `exited` and its stdout `streamFinished` carry half the
// result each -- the exit and the JSON -- and Quickshell documents no order
// between them. So neither one finalizes on its own: these track which have
// been observed for the action currently in flight, and settleAction() runs
// finishAction() once, on whichever arrives last, with the collected stdout
// as the authoritative result.
property bool actionExited: false
property bool actionStdoutDone: false
property string actionStdoutText: ""
@@ -151,9 +151,8 @@ Singleton {
}
// Called from both actionProc.onExited and its stdout streamFinished.
// Only finalizes once both signals have arrived for the in-flight action,
// since their firing order is not guaranteed -- see the actionExited /
// actionStdoutDone comment above.
// Only finalizes once both signals have arrived for the in-flight action --
// see the actionExited / actionStdoutDone comment above.
function settleAction(): void {
if (root.actionKind === "")
return;