-
bridge: one RIG UP button, and converge stops fighting the gearbox · 26a1e7b8
TWO OWNERS BECOME ONE. gig-up --converge called `powerprofilesctl set performance` while the gearbox wrote the same governor/EPP/platform_profile through thermal-mode, with no arbiter — whichever ran last won, and ppd re-asserts itself on AC transitions, so a converge done on battery was undone by plugging in for the set. converge now drives the gearbox. It deliberately does NOT touch trim: quiet-vs-cool is a room-by-room call (a mic'd quiet room wants Quiet even at a gig) and converge cannot know which room it is in. The resolver rejects a PRE-gearbox thermal-mode rather than calling a verb it does not have, and falls back to ppd when there is no gearbox at all — a rig check must never fail because a sibling repo is missing. THE PANEL, the GUI half of the button whose CLI half converge already was. converge owns services and refuses to open windows ("a script that opens windows under someone is a script they stop trusting"), leaving Pulsar and Ardour reported-but-not-launched. The Bridge is a thing PLN clicked, so it is allowed to open his apps. Converge runs off the request thread: a cold SuperDirt boot warms 51 banks and gig-up waits up to 100s for it, which held open as an HTTP request would read as a hung dashboard. The list under the button carries gig-up's two hard-won rules: * A GREEN UNIT IS NOT SOUND. 2026-08-01 had parvagues-sc.service active while scsynth was dead. `systemctl start` is a no-op on an active unit, so that state reads `broken` and says "needs restart, not start" — reporting it as down would send the reader to a button that cannot fix their problem. * ABSENT IS NOT DOWN. A thing you cannot start is a different problem from a thing you can, and collapsing them wastes the reader's time under pressure. Verified live: POST /api/rig converged the rig for real — SuperDirt booted, watchdog and autoroute up, faders restored, setlist and preload regenerated — and the panel tracked it through the poll. The audio ladder then reported 5/5 with scsynth and sclang joining the PipeWire trio. One bug found on the way, kept as a test: `systemctl show --value` emits properties in ITS order, not the caller's, so pairing them positionally swapped LoadState and ActiveState and made every inactive unit report its state as "loaded". Parsed by key now, with Id making each block self-identifying. 56 bridge tests green (13 new). Co-Authored-By:Claude Opus 5 <noreply@anthropic.com>
PLN (Algolia) authored26a1e7b8
| Name |
Last commit
|
Last update |
|---|---|---|
| .. | ||
| index.html | Loading commit data... | |
| parvagues.svg | Loading commit data... |