fix(rig): neither painter may be auto-started blind
lcxl3-driver was policy "login", so rig_units.ensure() started it whenever it was not already active -- and ensure() runs inside gig-up.sh --converge, which is what the Bridge's RIG UP calls. With the CLASSIC LCXL plugged that is actively destructive: the v3 driver has Conflicts=lcxl-leds-watch, so a converge would stop the painter that was correctly lighting the classic board, then fail to bind (there is no LCXL3 port) and crash-loop at RestartSec=5. That is exactly what happened between 11:26 and 14:36 on 2026-09-05 -- 86 restarts, the board dark the whole time -- and today's repair would have been undone by the next press of GIG UP. lcxl-leds-watch was already "manual" for the mirror-image reason, stated in the comment right below this one. The rule generalises: neither painter may be auto-started blind, because "which painter" is a question only the plugged hardware can answer. gig-up.sh's leds() is the generation-aware chooser -- it greps aconnect for LCXL3 and restarts the right unit -- and it now owns the decision outright. Verified: `rig_units.py --ensure` (dry) reports "nothing to do" with the driver inactive and the v2 painter running, instead of queueing a start that would have gone dark. Trade-off worth knowing: on a mk3 rig the driver no longer comes up at login, so faders reach Ardour only after gig-up runs. That is the price of not guessing the generation, and gig-up is the documented bring-up.
Showing
Please
register
or
sign in
to comment