Southcoast matches NA, per its startup checklist: X32s, ProPresenter to Lighting MIDI, pages 19/20
- An explicit look or rebuild may apply inside the auto-fix hours (never while live) - A page move clears the page left behind when only our keys are on it - A rebuild keeps MIDI links that are down now; first-setup import waits for the keys to land - ProPresenter port drift fixed automatically (kind propresenter_port) - sites/sc/config.json kept with the others Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
+8
-2
@@ -443,9 +443,15 @@ class Applier:
|
||||
if not ok:
|
||||
return False, "page %d: %s" % (page, why)
|
||||
push_page.push(host, port, page, path, expected)
|
||||
after = push_page.fetch_page(host, port, page)
|
||||
want = {(r, c) for r, row in export["page"]["controls"].items() for c, ctl in row.items() if ctl and ctl.get("type") == "button-layered"}
|
||||
have = {(r, c) for r, row in (after.get("page") or {}).get("controls", {}).items() for c, ctl in (row or {}).items() if ctl and ctl.get("type") == "button-layered"}
|
||||
# Companion places the keys a moment after the import call returns (Southcoast's first setup
|
||||
# was judged too early, 2026-10-21): look again for up to 10 s before calling it a failure.
|
||||
for _ in range(20):
|
||||
after = push_page.fetch_page(host, port, page)
|
||||
have = {(r, c) for r, row in (after.get("page") or {}).get("controls", {}).items() for c, ctl in (row or {}).items() if ctl and ctl.get("type") == "button-layered"}
|
||||
if want == have:
|
||||
break
|
||||
time.sleep(0.5)
|
||||
if want != have:
|
||||
return False, "page %d: the import did not land as built (%d keys built, %d on the page)" % (page, len(want), len(have))
|
||||
done.append(name)
|
||||
|
||||
Reference in New Issue
Block a user