The page revamped: icon navigation, hints instead of prose, one Settings page, a weekly calendar, a PIN

- Top bar with icon navigation (Overview, Keys, Computers, Settings, Logs, History, Help); no side
  menu; every explanation moved into a hover hint; the [how] lines no longer shift the layout.
- One Settings page with sections: Playlist, Auto-fix (a paintable weekly calendar + which fixes),
  Changes wait (calendar), HyperDecks, MIDI links, Computers, Dante, Switcher, Companion (with the
  names check), Network, Site & PIN, Program & campus, Advanced (every field by screen).
- Fixes live under Keys as a tab; the jobs became sections or + buttons where they belong.
- Editing is switched on with a PIN (digits) plus a first name for History; the overview's
  status line became chips; 'Needs attention' instead of a person's name, and it no longer fires
  after a page-only Apply (page-only.json marker); last change comes from History.
- Deployed to NA Ingest; the campus PIN set there and in config.json.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
2026-10-14 17:42:03 -04:00
co-authored by Claude Fable 5.1
parent 9278e08acc
commit 69bb09ad27
5 changed files with 561 additions and 467 deletions
+8
View File
@@ -462,8 +462,16 @@ class Applier:
self._rollback(entry, xml_backup, plan, old_cfg, detail)
return
self.step("restart", "ok", detail)
try:
os.remove(os.path.join(site.data_dir, "page-only.json"))
except OSError:
pass
else:
self.step("restart", "skipped", "nothing the watchdog reads changed")
started = site.read_json("started.json", {}) or {}
prev = site.read_json("page-only.json", {}) or {}
sp.write_json(os.path.join(site.data_dir, "page-only.json"),
{"sha": sha_after, "watchdog_sha": prev.get("watchdog_sha") if prev.get("watchdog_sha") == started.get("config_sha") else started.get("config_sha")})
# 4. pages
if plan["pages"]:
self.step("pages", "running")