- remote-access/windows-baseline.ps1: no driver updates, no restart while signed in, active hours 5-23, Game DVR off,
Microsoft bundled apps removed, no sleep/hibernate/disk/USB power saving; never restarts or touches the NIC
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- the inserted administrator check split the header comment, leaving '} for ... run ONCE' as code: WS and SC
join.ps1 failed to parse (Windows' parser: Missing opening '(' after keyword 'for'); now after the whole line
- site.admin_ips / admin_keys (laptop 10.6.7.38, fixed in UniFi) go into every PC script's firewall rule and key
files, and into the Mac join line, so running a set-up again never shuts the laptop out
- scripts verified by Windows' own PowerShell parser on the NA Lighting PC
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- nav_hold_more: longer holds go further (tested on NA's Companion emulator: 2.5 s -> 19, 3.5 s -> 98, tap -> 1)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- AUTO-FIX: tap = pause / resume; a pause lasts through the current or the next auto-fix hours; key says ON TIL,
OFF / ON <start>, PAUSED TIL; forcing auto-fix on outside the hours is gone
- MIDI: macOS 26 reports every live link's state, so no state there = NO ANSWER; on macOS 14/15 a link put back after
a drop counts only after 20 s (macOS drops an unanswered one at ~12 s): no more OK/LOST flicker
- WS and SC PROP ignore the rc4 module's harmless warnings, as NA
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- LOCATIONS page key at 3,1: shows ALL ON or the paused locations; tap pauses all, tap again sends each back to its hours
- autofix auto: back to the auto-fix hours
- the page name and number shrink into the top 60% while the locations band shows
- WS and SC Propresenter-API on renewedvision-propresenter-api 1.2.0-rc4 (pinned manual, as NA)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- campuses.remote_summary -> custom variable sp_remote; band flashes until acknowledged there, steady after, "SC?" when silent
- nav_locations_band (NA only); red stays for NA's own problems
- PROP OUT: /Volumes/Location Assets/{date} on NA ProP (Chronicles share)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- prop_bundle_folder takes {date} (the plan's weekend, as the tracks folders): any bundle there counts
- readiness scripts for this Mac run here (NA ProP's Google Drive showed 261025 empty)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- newest_of picks by CFBundleShortVersionString, not file name (ProPresenter.app sorted after ProPresenter 20.1.app)
- mac_start takes newest_of; auto-setup uses it for programs on the Companion Mac
- WS and SC switched over; NA's ProP restart re-rendered (same pick today)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- only in the watchdog's first 10 minutes, never another version, never during an upgrade
- SC verified end to end; laptop SSH to the SC Macs; configs synced
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- a helper program (rtpMIDI) on a computer that joins after the MIDI key exists is added to it
(it was marked seen and never added)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 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>
- pages (NA 98 Locations / 99 Location, re-imported via PAGES_VERSION), keys, settings page, setup and
install messages, alerts, docs, the Apollo Beach kit; python3 -m settings.location and /location/...
addresses (the old names still answer for installed Macs)
- Apply reads the before settings from the file: an in-place edit skipped the watchdog restart
- SC: SUPERRACK (+SoundGrid) and X32 EDIT from SC FOH; FOH TRACKS and TRACKS LIGHTS MIDI links watched
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- kind autofix: its own switch on the auto-fix hours; ALARMS then only silences (NA keeps the old
combined key until it has room for one)
- kind bypass: hold takes every network MIDI link to a peer out (here and on listed Macs), checks stop
calling it lost, re-taken every 10 s; hold again puts back exactly what was taken plus every watched link
- a MIDI peer with no address is never called (it connected SC Tracks to itself)
- holds from NA's CAMPUS page flip switch keys; a rebuild keeps them; new campuses get AUTO-FIX
- key kind changes restart the watchdog; settings page has separate alarm / auto-fix buttons
- WS and SC configs: AUTO-FIX at 3,1; SC LIGHTS at 1,3; NA config synced from live
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- tools/standalone.py builds dist/<Name> Status Panel.zip: program, install.command, READ ME FIRST.txt
- setup --standalone: campuses.json standalone, tells nobody, no hub, no NA key
- Standalone backs itself up nightly to ~/Documents/Status Panel Backups/<id>
- upgrade-companion --from <.dmg/.zip from bitfocus.io> (no NA needed)
- Only the hub lists campuses or shows other campuses' install lines
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- 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>
ProPresenter (on the Companion Mac) now reaches Lighting at 10.2.2.2:5004; Lights sees ProPresenter at
10.2.2.210:5004, both running. The MIDI key watches it (PROP LIGHTS). Auto-setup counts a link to the
Companion Mac's own session once (it had listed it from both ends).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Auto-setup: programs on the Companion Mac itself (ProPresenter at Woonsocket) get a local process
check and local start/restart fixes; every campus gets a Restart page (keys arrive as computers
join); NA's auto-fix hours (Tue, Wed, Sun); a program found after its Companion connection joins
that key instead of making a second one. settings.campus rebuild remakes a campus from what is
found now, keeping its name, PIN and pages; upgrade-companion brings Companion to 5.0.7 from NA's
copy (/campus/companion.zip), as Woonsocket was; setup stops with that advice on an older one.
- NA's CAMPUSES page has a RESTART key per campus; the CAMPUS page shows that campus's Restart page
and a hold there restarts it at that campus.
- Backups: backup/backup-campuses.sh, nightly 04:30 on NA (installed everywhere, acts on the hub),
into Drive > Waters Creative > Apps > Status Panel Backups/<campus>, 30 kept, alert email via the
checklist's alert.js. Campuses report the account to back up with. sites/ws/config.json in the repo.
- Woonsocket rebuilt: 9 keys (PROP with ProPresenter on its Mac), Restart page 20 (SUPERRACK, VISTA,
ABLETON, PROP), auto-fix on NA's hours; all OK. Both campuses backed up to Drive by the job.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- NA's CAMPUS page (99): tap = acknowledge, hold = fix, at the campus shown. NA's settings page
turns the cell into that campus's key and writes the command into that campus's Companion
(sp_cmd), exactly as a press on its own deck does. Logged on both sides.
- coremidi.JXA_CONNECT: connect_peer in JavaScript for Automation, used when a Mac has no python
(no Command Line Tools): a MIDI hold now reconnects Woonsocket's Tracks, FOH and Lights.
- Woonsocket's MIDI links are on wired addresses now (Tracks to Lighting 10.2.2.2, Tracks to FOH
10.2.1.12; the other ends list Tracks at 10.2.1.219), and the wired-network rule is back on there.
- Auto-setup keeps one check per MIDI link (the end that reports the link's state): two pulled
links read 4 DOWN before.
Tried live: a hold sent from NA's page 99 reconnected the FOH link at Woonsocket.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
From the WS Production Startup checklist (check.watersmedia.org):
- M32 (the "X32" there is a Midas M32 at 10.2.1.146): Woonsocket's Companion got the X32/M32
module (imported from NA's copy through Companion's own API) and an m32 connection; auto-setup
names a single M32 connection's key M32.
- SuperRack's link to the Waves SoundGrid server: a soundgrid check builder (SuperRack's control
connection on port 19000) inside every SUPERRACK key.
- MIDI ("Open Audio MIDI"): Macs without the Command Line Tools have their sessions read with
JavaScript for Automation (coremidi.JXA_SESSIONS) - by the watchdog every 2 s and by discovery. A
peer with no state (older macOS) counts as configured. A peer joined by name or IPv6 gets the
wired address of the Mac whose session it is (matched by session name), at that session's port.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
On a Mac without the Command Line Tools, /usr/bin/python3 is a stub that opens Apple's installer on
that Mac's screen: Woonsocket's Tracks and FOH Macs showed it after joining (and would every ten
minutes). Python now runs on another Mac only when xcode-select says it is there (MIDI reads, MIDI
reconnects, the Computers probe); without it those Macs' own MIDI sessions are simply not read.
The app list used a glob that zsh (the Macs' login shell) turns into an error when one pattern
matches nothing, so no app was ever found there: find instead, and a running program's app path is
taken from the program itself. New recipes: SuperRack SoundGrid and X32-Edit (AUDIO).
Woonsocket now has ABLETON, SUPERRACK and X32 EDIT keys, all OK, and NA's page 99 shows them.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Opened directly (nothing tapped), page 99 was all purple: no campus chosen. It now shows the first
other campus until one is tapped, and the back key reads WS / ALL SITES.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The template had no nav_keys, so Woonsocket's UP and DOWN keys followed ALL on all 98 pages.
Woonsocket set to ["pagenum"] on its page (UP and DOWN put back); the kit NA serves now carries it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Campuses set up from NA's install line tell NA where they are and learn nothing back (no campus
ever shows another). NA alone reads each campus's key states every two seconds and keeps two pages
in its Companion (added at the end, 98 and 99, since every other page is in use): CAMPUSES, a key
per campus (its ALL key, purple when it stops answering), and CAMPUS, the tapped campus's status
page drawn live in the same places, view only. Tried on NA with a test campus pointing at NA
itself, then removed.
tools/fleet.py: an Apple Remote Desktop command that turns on Remote Login, adds the laptop's key
and reports each Mac to NA, and the laptop SSH shortcuts made from those reports (tried on NA
Translation).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
settings/discover.py reads Companion's connections (and their addresses and channel counts), the
Dante devices, the network MIDI sessions here and on joined Macs, this Mac's wired network, and
what runs on each joined computer. settings/autoconf.py turns that into keys, checks, start and
restart fixes and a page layout the way North Attleboro's were made (group keys only when not
everything fits; receivers fold first), all through the existing builders and rules.
settings/campus.py prepares Companion through its internal API (the panel's custom variables and
the blink trigger), picks free pages, applies the first config, serves the program kit, the
campus install line and the Mac/PC join lines, and looks every ten minutes to add new gear
(discover.auto; never during a service or a recording, never removes, never re-adds what someone
took off). Settings > Auto-setup shows what was found and the lines to paste. install.sh keeps the
kit and makes the panel's login key.
Checked on North Attleboro read-only: discovery finds all 43 connections, 19 Dante devices, four
Macs' MIDI sessions and seven computers, and a from-scratch build reproduces NA's layout. The
Companion calls were tried with a throwaway variable and a disabled trigger, then removed.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An address change also updates the same link on the READY page. Without a wired rule, a button adds
one. The add-a-link screen shares the same wired-network helpers.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tracks had joined NA Ingest, Lighting PC and Studio B by Bonjour name: macOS picks the network
each time, so a reconnect could land on Wi-Fi or Dante. The wired check now also names a link
joined by name; holding MIDI moves it to the wired address its own MIDI check names (a hold
only: auto-fix never moves a working link). Reconnects prefer a wired address over a Wi-Fi or
by-name one they last saw. The settings refuse a MIDI link whose address is a name or off the
wired network, and the add-a-link screen fills in the wired address. Studio B's link now has its
wired address, and Tracks' link to NA Ingest is watched (TRK INGEST). All links on the four Macs
were moved and checked: wired IPv4, running.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The Macs are also on Wi-Fi and the Dante networks, and Bonjour lists each MIDI session once per
network. ProdDash's Vista Cues module had Tracks and Companion set to their Wi-Fi addresses, so
lighting MIDI rode Wi-Fi. A midi_wired check now names any peer, in NA Ingest's session or the
other Macs', whose address is outside the wired network (10.1.0.0/16 at NA).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Muted, nothing fixes itself at all: no Spotify exception (while_muted is gone) and no any-hour
READY fix; holds still fix and the Sunday stream-audio failover still switches. The key reads
ALARMS OFF / AUTO-FIX OFF / TIL 12AM, and its note says both. The settings page's switch says the same.
The mute's end is worked out at the press and kept: a watchdog that was not running at 23:59 no
longer leaves the alarms muted until the next schedule change.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The LTC write only puts a note in Planning Center; nothing in the room notices, so the mute (pressed
Sunday 12:24 at NA and never lifted) must not hold it back. The window's fixes still stop when muted.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Auto-fix now looks at the READY page's keys too, for the READY fixes ticked under Settings > Auto-fix,
and acts on a checklist gap while it is still amber. A fix marked anytime (only a READY fix may be)
runs outside the auto-fix hours as well, never while ALARMS is muted; the window's own fixes keep
their hours and start fresh each window. ready_ltc is ticked and marked anytime at North Attleboro:
once the weekend's set is on Tracks, every song's timecode goes into all four campuses' plans.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
With the weekend's set not on Tracks yet, every campus song looked out of order. The campuses now
pair with the home plan itself; a song the home set has no timecode for yet is matched but neither
faulted nor written, and the campuses are not looked at at all until the home set gives some timecode.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The TIMECODE key now reads each campus's plan for the same weekend, pairs its songs with North
Attleboro's by title in North Attleboro's order (a song out of order, or one NA does not play, is
left alone and said so), checks their LTC notes, and the hold writes the timecode into every
campus's plan. ready.ltc_campuses lists the campuses (name, two letters, PCO service type).
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The module only reads a device's channels when it starts, so a receiver added later is missing
from the crosspoint lists until the connection restarts (the two AD4Q receivers today). The
watchdog now remembers every Dante device it has seen in state.json and, when a newcomer appears,
restarts that connection once: never during a live service, at most every ten minutes, and never
for a device that merely dropped out and came back.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
A reader that reconnects while the other Mac is still at the login window never sees the user's
MIDI sessions and reports none for ever (four false NO SESSION alarms after the Tracks and
ProPresenter Macs rebooted on Sunday morning). Two threads writing fixes-running.json shared one
temp file and one rename failed.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
- config.json is NA Ingest's live settings: the READY hours (Tue 14-22, Wed 9-19, Sun 5-14) and the
auto-fix hours (Tue 14-22, Wed 9-21, Sun 6:30-14) set on the settings page.
- Settings page: a draft carries what its page started from. A tab that loaded the settings before
they changed (an Apply elsewhere, a program update) now has only its own edits put on top of the
live settings; before, it saved its whole older copy and Apply quietly undid the newer values
(it took ready.prop_host out twice today).
- install.sh refuses (exit 4) to replace live settings that came from an Apply (their fingerprint is
a history entry's sha_after) unless --replace-config; --keep-config still updates code only.
- Tests pin their own auto-fix and READY hours, so the campus can change its own; the exit-timeout
test expects 310 s (the Tascam outlet power-cycle).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>