NA: ARENA moved to the Restart page, AUTO-FIX in its place; SC: Midi-Lighting connection watched

- a key whose fix sits on the Restart page is not warned about as unseen (its checks still feed ALL and auto-fix)
- SC LIGHTS set to operator, as its checklist says (Lighting disconnected for the lighting op)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-21 13:46:23 -04:00
co-authored by Claude Opus 5.5
parent 7068244ba4
commit 5007d3d85e
3 changed files with 33 additions and 5 deletions
+7
View File
@@ -657,7 +657,14 @@ def validate(cfg, live=None):
if m == t.get("id"):
errors.append("key %s: is its own member" % t.get("id"))
in_group = {m for t in cfg["tiles"] for m in t.get("members", [])}
# A key moved to the Restart page (NA's ARENA, 2026-10-21): its checks still feed ALL and auto-fix,
# and the Restart key watching it flashes, so it is seen.
rk = (cfg.get("restart_page") or {}).get("keys") or []
on_restart = {f for k in rk for f in [k.get("fix")] + list(k.get("watch") or [])}
for t in cfg["tiles"]:
fixes_of = {c.get("fix") for c in t.get("checks", []) if isinstance(c.get("fix"), str)} | {"conn:" + c["conn"] for c in t.get("checks", []) if c.get("conn")}
if fixes_of & on_restart:
continue
if "pos" not in t and "members" not in t and t.get("id") not in in_group and t.get("kind") != "master":
warnings.append("key %s has no place on the deck and is in no group: nobody will see it" % t.get("id"))
if kinds["master"] != 1: