Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
8.4 KiB
8.4 KiB
Orbit TV 0.97.0: editorially weighted rotation on Orbit Three (Phase 1)
Phase 1 of the plan after the editorial compliance audit, approved by Paul on 3 November 2026 at 23:45: Orbit Three only, behind a per-channel switch. Scheduler only: no playback, presentation, asset or homepage changes.
What's in it
- Tiers on Orbit Three (
ThreeTiers, ChannelIdentities.kt), from docs/channels/orbit-three.md: core 3, supporting 2, surprises 1. Core: Still Game, Limmy's Show!, Burnistoun, Chewin' the Fat, Rab C. Nesbitt, Gavin & Stacey, The Mighty Boosh, Little Britain, The Inbetweeners, Two Pints of Lager and a Packet of Crisps, Spaced, Phoenix Nights. Surprises: The League of Gentlemen, Nighty Night, Snuff Box, Monkey Dust, Psychoville, Inside No. 9, Garth Marenghi's Darkplace, Brass Eye, The Day Today, Nathan Barley, Bo' Selecta!, Stressed Eric. Every other listed show is supporting. - The switch is
ChannelProgramming.tierWeights. Only Orbit Three (103) sets it; every other channel takes exactly the path it took in 0.96.0. - Family Guy is out of Three's evening. Riot is its home. Its progress is kept in Three's cursor, so a future approved crossover would carry on where it left off. Committed bookings are untouched, so any Family Guy already booked on Three still airs.
- The rule (
extendWeighted, ChannelSchedule.kt). Each block keeps a tally per show: the minutes it has aired there divided by its tier's weight. The eligible show with the lowest tally goes next. So airtime follows the tiers, not episode counts or runtimes, and nobody waits for anyone else to finish (finish-together doesn't apply).- A show new to a block, or back in the pool, joins level with the block's lowest tally. It neither floods in nor waits.
- A show held back by the 24-hour or restart rule is brought level when it's passed over, so it comes back to its share without a burst.
- Soft rules, relaxed in this order only when nothing else is left:
- Not the show that just played.
- Not a file aired within 24 hours. This is a minimum, and the stronger rules still apply.
- Not a series starting its run from the top again within 3 days of last doing so.
- Clash avoidance with other channels is checked first, as before.
- Shuffled or sequential is untouched. The tier decides how often a show is chosen; the show's own cursor decides which episode plays, exactly as before.
- In-order shows such as Gavin & Stacey continue from their saved place.
- Shuffled shows play through their fixed deck from their saved place before it comes round again. Three's real pool has none today; Family Guy, The Simpsons and South Park are shuffled on Riot, which isn't changed.
- No cursor is reset and no deck is reshuffled.
- Saved across restarts. The tallies and run starts are saved in the plan file's cursor ("tallies" and "runs"). Older files without them load as before. Values must be finite and not negative, or the file counts as damaged and the last good copy is used.
Checks before install
- 392 unit tests pass, including the hand-run replays on copies of the box's files. Lint has no errors.
- 13 new tests in WeightedRotationTest:
- Airtime follows the tiers 3 : 2 : 1 whatever the episode counts, including against a 457-episode surprise.
- An hour-long show gets the same minutes as a half-hour one in the same tier.
- A long series can't hold short ones hostage. Shows at the end of their runs carry straight on, and nobody waits more than 4 days.
- A short series doesn't restart within 3 days, and comes back without a burst.
- A long core series carries straight into its next run.
- In-order shows stay in order, and shuffled shows play their fixed deck.
- A top-up carries on exactly as one long plan would (in order and shuffled).
- The same show never plays twice running, and no file airs again within 24 hours.
- A show joining later takes its share without flooding the block.
- Blocks and events are kept.
- A save and reload between every top-up over four weeks changes nothing. Committed programmes stay, there are no gaps, and order and decks are kept.
- Only Orbit Three is weighted, and Family Guy is out of its pool.
- Four-week replay on Three's real pool (docs/replays/weighted-rotation-three-replay-2026-11-04.txt). Both rules top up every six hours from the box's committed plan, which ends on 10 November. The 28 days of new bookings after it compare as follows.
| Before (0.96.0) | After (0.97.0) | |
|---|---|---|
| Core share of airtime | 41.0% | 51.3% |
| Supporting share | 46.2% | 37.5% |
| Surprise share | 12.7% | 11.2% |
| Evening 18:00 to 22:00, core | 0% | 39% |
| Gavin & Stacey, Mighty Boosh, Spaced, Phoenix Nights | 0 airings each | 53, 53, 26, 26 |
| Longest wait for any show | 28 days (never aired) | 4.1 days (Being Human) |
| Same file again within 24 hours | 16 | 0 |
| Same show twice running | 19 | 0 |
| Runs restarted within 3 days | 8 | 0 |
| Three-hour stretches over half one show | 115 | 0 |
| Two Pints of Lager | 10.1% | 5.6% |
| In-order shows stepping back; gaps or overlaps; outside its block | 0; 0; 0 | 0; 0; 0 |
- Scottish Comedy Night: all 48 programmes on Friday and Saturday 21:00 to midnight are Scottish shows and keep the three.scottish presentation. The dayparts are unchanged.
- Family Guy has 0 evening airings on Three after the change.
- A save and reload every 18 hours across the four weeks gives the identical schedule.
- Committed plans and other channels (docs/replays/replay-fingerprints-0.97.0.txt): the same four-week replay of all 30 channels was run on 0.96.0 and on 0.97.0.
- Every committed fingerprint is identical, and every committed programme came through exactly.
- Every channel except 103 has an identical four-week fingerprint.
- 103 differs, as intended.
- The two-week presentation replay is also unchanged (83 transitions, committedKeptExactly=true).
Known limits
- Three's committed plan runs to 10 November. The new rule books from there, so the change shows on air from about 10 November, as the plan rolls forward.
- One change from the approved prototype: the run rest counts from when a series last started its run, not from when it ended. With rest from the end, every short core show (Spaced is 14 episodes) sat out 3 days after each run, which cut its share and caused long waits. Counted from the start, a series that takes more than 3 days to play through carries straight on, and a six-parter still can't restart more than once every 3 days.
- The replays use copies of the box's files from 3 November and don't include other channels' clash avoidance. On the box it applies as before.
- This is tested as scheduling logic only. What actually airs from 10 November needs checking on the box.
Rollback
Install 0.96.0. The extra cursor fields are ignored by 0.96.0's reader, which reads only the fields it knows, so plans saved by 0.97.0 still load.
Installation record (4 November 2026, 00:06 GMT)
Approved by Paul at 00:05. Installed over 0.96.0 with adb install -r, and the box reports versionCode 128, 0.97.0-weighted-three. Orbit relaunched; process up, MainActivity in front, no crash in the log.
- Plans: all 31 plan files were snapshotted before the install and again after the relaunch. Five (101, 104, 201, 305, 601) had dropped their oldest one to three programmes, all of which ended more than 24 hours ago. That's the ordinary daily trim. Every other entry was identical in order and content, nothing was added, and every cursor was identical. The other 26 files were byte-identical.
- Orbit Three: its plan runs to 10 November about 11:30, and its cursor has no tallies yet, as expected. The first weighted top-up should happen around 11:30 on 4 November, when the plan drops under six days ahead, and it will book from 10 November.
- Playback: channel 303 resumed its film after the relaunch (DTS 6ch passthrough, the same as before install). There are no player, audio-clock or decoder errors in the log.
On-air verification (pending)
- Not yet checked on the TV after the install: picture and sound on the channels, and special idents. The first special ident was already due on 10 November, from Retro Action 00:17.
- Not yet observed on the box: Three's first weighted top-up. Expect "tallies" and "runs" in its cursor after about 11:30 on 4 November, with weighted reasons on bookings from 10 November.
- Not yet seen on air: the change itself, from about 10 November.