Steps 4-6: the jobs, the set-up tab with generated scripts, Install the staged folder, site bundles and the campus template

- Overview jobs: Change the playlist, Add or remove a HyperDeck, Add a MIDI link, Add a computer,
  Make a PC program startable; 'Add a key for it' on unwatched Companion connections.
- Computers > Setup: steps with a [how] each and the set-up scripts generated per computer by
  settings/scripts.py from the templates in remote-access/ (no site-shaped value left in them);
  Remove this computer drops the fixes and checks that used it.
- Site setup > Site: the running and staged code, Install the staged folder (a one-shot launchd job
  running install.sh --keep-config, refused while live), Export site bundle (zip), New campus from a
  bundle (this campus's site block stays; every copied computer is flagged until touched).
- sites/: na -> the repo config, _template = the empty campus; install.sh --site <id>.
- Review reads appended checks as 'added'; tests for all of it.
- Deployed page-only to NA Ingest. (config.json, status_panel.py and readiness.py are left to the
  READY-page work in progress in the same tree.)

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
2026-10-14 14:53:08 -04:00
co-authored by Claude Fable 5.1
parent dafa14a512
commit a33e344cae
19 changed files with 804 additions and 59 deletions
+4
View File
@@ -124,6 +124,10 @@ def changed_paths(a, b, prefix=""):
# lists of plain records of the same length (checks, windows): by position
for i, (x, y) in enumerate(zip(a, b)):
out += changed_paths(x, y, "%s.%d" % (prefix, i))
elif isinstance(a, list) and isinstance(b, list) and all(isinstance(x, dict) for x in a + b) and a[:min(len(a), len(b))] == b[:min(len(a), len(b))]:
# the same records with some added at the end, or some removed from the end
for i in range(min(len(a), len(b)), max(len(a), len(b))):
out.append(("%s.%d" % (prefix, i), a[i] if i < len(a) else None, b[i] if i < len(b) else None))
elif a != b:
out.append((prefix, a, b))
return out