Per operator: under the SiteLink IP plan there should never be
GUID/MAC/IP conflicts. Reframed the merge checks accordingly - they
are tripwires for plan drift (un-renumbered site) or stale inventory
(same pod recorded in two site files), not expected events. The merge
now exits 3 when any warning fired (master still written) so event-day
scripts can gate on a clean merge; 0 = clean, 1 = usage, 2 = hard
error. Verified: same-file-twice merge exits 3, clean merge exits 0.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
New: tools/SiteConfigMerge (net48 console app)
- dump: decode any .siteconfig (squads, pods, IPs, MACs, host types)
- merge: combine <siteName>.siteconfig inputs into master.siteconfig,
renaming squads "<siteName>-<original squad name>"
- Pod records pass through byte-for-byte; only squad records (the
rename) are re-serialized, under the TeslaConsole assembly identity
captured from the input. Stand-in types + SerializationBinder, so no
build dependency on TeslaSuite.
- Warns on duplicate pod GUID/MAC and cross-site IP overlap.
- Verified end-to-end: the real TeslaConsole.exe 4.11.4.1 loaded the
merged master via its own Site.LoadFromFile (reflection harness).
Doc updates from operator decisions:
- Operating model settled: sites voluntarily hand console authority to
the central console for the duration of a SiteLink event, by
contributing their siteconfig. Federation ruled out at current scale.
- Siteconfig "secrets" framing corrected: pod keys have no practical
value outside the air-gapped bay; files are exchanged per event and
never stored in this repo (tools only).
- Fleet scale recorded: 6 active pod bays, <120 cockpits in existence;
bay sizes range console+2 cockpits up to the full 20-node complement.
Open question 9 answered.
- Hub hosting direction: neutral Firestorm host at the WireGuard hub;
the FS server usually IS the Live Cam, so stream its output to all
sites and optionally to the public internet. Mission Review instance
runs at the hub too - one authoritative debrief streamed everywhere.
- Virtual PDF scoresheet printer at the hub: event debriefings print
centrally, retrievable from any site on the link.
- Voice (Mumble) backburnered - revisit only on event interest.
- .gitignore: build outputs; siteconfig exclusion rationale reworded.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>