Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
8.3 KiB
The coordinated cutover: final migration proposal
Prepared 4 November 2026 for Paul's explicit approval. Nothing here has been executed. It follows the approach Paul approved at 10:33 (docs/cutover-plan.md) and covers his ten pre-cutover checks.
1. Release
The cutover runs on 0.99.12: 0.99.11, which is installed now, plus safe pool refresh. 0.99.12 is built and verified, but waiting for its own install approval. If Paul prefers, the cutover can run on 0.99.11 as installed; the scheduling is identical.
What the release carries:
- the approved scheduling for all 30 channels: tiers, the hybrids and floors, equal turns where chosen, film rest, the After Dark review and daytime Option B, and every appointment
- presentation keys
- clash avoidance
The cutover changes schedule files only. It installs nothing.
2. What it changes
The figures come from a simulation on the box's current data (copies taken after 0.99.11 was installed), with T = today 15:00 (docs/replays/cutover-simulation-final.md). At execution they're recomputed from that moment's snapshot and checked again before anything is written.
| Channels | all 30 scheduled channels together. No partial cutover. The Drive-In is outside it. |
| Kept | 1,320 programmes that have started by T, including the programme on air on every channel |
| Unaired bookings replaced | 7,968, mostly the old committed weeks to about 10 November |
| New bookings | 8,599, to 11 November. No gaps at any seam, no clashes. |
| Places corrected | 627 shows whose saved place had run ahead of what actually aired. Each resumes from its last broadcast episode. |
Episode, shuffle-deck and film positions are rebuilt from the broadcast record only: the aired cursor plus programmes started by T. Viewing history isn't used and isn't touched. Weighted tallies start level.
3. Appointments and special presentation in the first rebooked week
Simulated start of each night's first programme, in minutes after the hour:
| Appointment | Start |
|---|---|
| Ring X weeknights, 18:00 | Mon 13, Tue 14, Wed 3, Thu 13, Fri 6, Sat 5 |
| PPV Sunday, 19:00 | 0 |
| Horror Slasher Saturday, 20:00 | 13 |
| Evidence Sunday Mystery, 20:00 | 10 |
| Terra Sunday, 20:00 | 40 (equal turns; the worst case in four weeks is 37 to 40) |
| Odyssey Journeys, 14:00 | Sat 9, Sun 10 |
| After Dark B-Movie, 21:00 | 19 |
| After Dark Joe Bob, 21:00 | 16 |
| After Dark Cult, 21:00 | 3 |
284 new bookings carry a presentation key, so the special idents start with the cutover rather than from 10 November. That covers Riot's Laughs, After Hours and Stunt Night; Orbit 2's Retro and Spooky; Three's Scottish night; Gold's Sunday; Vortex's Movie Night; Terra's Sunday; Horror's Slasher; After Dark's three nights; and all of Ring X's nights plus PPV.
PPV Sunday lands on Sunday 8 November, 19:00 to 22:05: WWE WrestleMania III, the whole 184-minute file.
- It's 8 November rather than 15 November because Ring X's current week was booked on 3 November at 10:25, before PPV Sunday existed. That Sunday holds ordinary shows (Raw, Nitro and others), and committed bookings are only replaced by this cutover.
- It's WrestleMania III because the PPV list plays in order and none has aired.
- WCW Capital Combat follows on 15 November.
Joe Bob Saturday lands on Saturday 7 November, 21:16 to 23:27: The Last Drive-in with Joe Bob Briggs, S1 E1 "Tourist Trap", the whole 131-minute episode, with its key.
- No episode has aired, and the old week had none.
- Editorial intention, for Paul to confirm: After Dark's brief describes Joe Bob landing "around 21:00". Since 0.99.9 it's a 21:00 appointment with a 20-minute grace, so it starts 21:00 to 21:20 when a rested film fits before it. If Paul wants a different time, it's a one-line change before the cutover.
4. Preserved and untouched
- Programmes playing at T, and everything already broadcast.
- The Drive-In: its plan (20 programmes) and its tickets file aren't touched. Linear bookings avoid its films.
- Everything else on the box: suggestion choices and the After Dark review, failed-file records, episode pools, settings, playback notes, and the catalogue database.
5. Procedure
Each step happens only after Paul's approval, in the window he picks, with nothing being watched and wireless debugging on. It has switched itself off several times today, so Paul may need to turn it on first.
- Confirm the box. It's on the approved release, idle, and reachable.
- Stop Orbit with
am force-stop, so no top-up runs during the change. - Snapshot everything in
no_backup/schedule(every file, including the.prevcopies and the Drive-In), three ways:- to this machine, with a SHA-256 manifest
- on the box, to
no_backup/schedule-rollback-<time> - in a manifest kept with both
- Rehearse the rollback. Restore the box copy over the live folder and check that every file matches the manifest. This proves the restore on identical bytes before anything changes.
- Compute the 60 new files (schedule and progress for 30 channels) on this machine from that exact snapshot, with T taken then. Recheck before writing:
- no gaps and no clashes
- episode order across the seam
- kept programmes identical
- the Drive-In untouched
- Write the files to the box and check every one's SHA-256 against this machine.
- Start Orbit and verify:
- every channel loads with
added=0andclashes=0, and there's no crash - each first new programme starts as the on-air one ends
- cursors match the computation
- playback and idents work
- every channel loads with
- Record the installation separately from on-air checks. The never-rewrite rule then applies again.
Time needed: about 15 to 20 minutes with Orbit stopped.
6. Rollback
- Immediate: restore the snapshot. This is seamless while each channel's on-air programme from T is still playing, 1 to 122 minutes depending on the channel. The old and new plans are identical up to then.
- Stop Orbit.
- Copy back and check the manifest.
- Start Orbit.
- After new programmes have aired: keep everything broadcast, rebuild positions from it, and rebook from the programme on air, on whichever release is wanted. This was simulated a day after the cutover on the cutover's own output (docs/replays/cutover-recovery-final.md): every channel keeps its broadcasts, with no gaps, no clashes, and every show continuing in order or along its deck.
- Limit: once new programmes have aired, the exact old future bookings can't come back without contradicting what was broadcast. Recovery restores the rules and history, not the old bookings. The snapshot stays on the box until Paul says it can go.
7. Known exceptions carried into launch
- After Dark's two late nights. On evenings when few daytime films are rested, one Cult Sunday ran 102 minutes late and one Joe Bob night 52 minutes late in the four-week audit. The planner starts late rather than cut a film or break a rest. A deeper look-ahead would be too slow on the box. This is documented, not blocking.
- Tenchi Muyo! Tenchi Universe is matched in the library but has no episode that plays on this box. It's left out until a playable copy exists. Nothing is transcoded.
- Equal-turns channels keep their known gaps, by choice. Riot's The Office (12 episodes) and How I Met Your Mother didn't air in the four-week audit; Ring X's AEW Battle of the Belts likewise.
- Odyssey's Band of Brothers has no block, by choice.
- Vortex's Now and Then, Here and There is rare under the hybrid.
- The small film channels (VHS, Detour, BritX, Wonder and PixelZ) still loop their pools in a fixed order. More films is the fix.
- Planning speed: the real top-up timing on the box after 0.99.11 is being measured at the next due top-ups.
8. The final audit
The final audit was run on the current release and data (docs/replays/final-network-audit-final.md). Every hard rule passes on every channel:
- committed bookings kept
- no gaps
- no clashes
- no in-order show stepping back, and no shuffled show off its deck
- nothing within 24 hours in weighted blocks
- no show twice running where its block had a choice
9. To approve
- Install 0.99.12 first, or run on 0.99.11.
- Joe Bob at 21:00, as now.
- An execution window when Orbit won't be watched, for example tonight after viewing or tomorrow morning.
- Explicit approval to execute the procedure above.