Files
OrbitTv/docs/VERIFICATION-0.99.17.md
pauljdandClaude Opus 5.5 18acc416ba
pauljd/davidson-ci: Davidson CI / quality (push) Failing after 1m48s
pauljd/davidson-ci: Davidson CI / ai-review (push) Failing after 1m23s
0.99.17 installation record: Beerus in Vortex's pool from 8016753 only, premiere eligible from the installed box's files
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-11-04 16:20:04 +00:00

9.7 KiB

Orbit TV 0.99.17: the Vortex Afterburn premiere of Dragon Ball Super: Beerus (Stage D1)

Paul approved building and verifying this on 4 November 2026 at 15:28. Installing it needs its own approval. The change is to Vortex's scheduling only. Every other channel's bookings are identical, and nothing already committed is rewritten. It includes 0.99.16 (D2, already installed).

What's in it

  • Beerus on Vortex, pinned to Emby 8016753.
    • "Dragon Ball Super: Beerus" is on Vortex's list.
    • The other copy, 8055740, is withdrawn from Vortex. A withdrawn copy is now never read as a stand-in for the chosen one.
    • Beerus is named only in its premiere event, never in an everyday block.
  • The premiere event (VortexDayParts):
    • Saturdays at 21:00 from 21 November 2026, as an on-time appointment with a 10-minute allowance (graceMs).
    • Presentation key vortex.afterburn.premiere, with the reason "premiere: first airing on Orbit".
    • New scheduler rules (DayPart from, premiere, premiereDouble, premiereBuffer, premiereNights, graceMs; weighted channels; only Vortex sets them):
      • Before its start date, the event gives way to the usual block.
      • First airings only: it shows only episodes after the cursor. With none left it gives way, so it never restarts or repeats one as new.
      • Two a night while two or more new episodes are waiting at the start of the night, otherwise one. Each episode is its own booking, with its own episode, cursor step and reason. Nothing is merged.
      • The second episode follows the first straight away, whatever the hour, including across a top-up or a save and reload. It's counted from the bookings of that night.
      • The cursor moves only when an episode is booked, as before.
  • Movie Night on premiere nights: 20:00 to 21:00, one whole Dragon Ball film from Vortex's pool, from a list of 17 Dragon Ball films of about an hour or less. Battle of Gods and Resurrection 'F' are left out.
    • Only a film that ends by the premiere's allowance can start, and nothing is cut.
    • If none fits, Movie Night gives way to the evening block, and the premiere still starts on time.
    • On other Saturdays and every Friday, Movie Night is exactly as before.
  • Presentation keys may now have three parts, so vortex.afterburn.premiere is saved and read back. Older versions ignore an unexpected key, so a rollback just shows the standard ident.
    • The premiere has no ident of its own yet. blockIdentFor finds none for it, so the standard Vortex ident plays.
  • Version: 0.99.17 (versionCode 147).

Checks before install

  • 455 unit tests pass (2 skipped: hand-run replays that need input files). Lint has no errors.
  • Six new tests in BeerusPremiereTest (Vortex's real blocks):
    • The approved plan:
      • no Beerus before 21 November, and 14 November's Movie Night as before;
      • 21 November: episodes 1 and 2; 28 November: episodes 3 and 4;
      • each pair back to back, starting within 21:00 to 21:10, with the key and the first-airing reason;
      • before it, one whole film from the list that ends in time; after it, no film;
      • 5 December: no Beerus, no repeat, normal Movie Night;
      • no gaps.
    • With three episodes: two, then one, then nothing.
    • A top-up split after episode 1, with a save and reload: episode 2 follows straight away with the key, and the cursor had moved only for episode 1.
    • With only long films, no film is cut and the premiere starts on time.
    • Without Beerus, Vortex books exactly what its blocks before D1 booked.
    • Configured on Vortex only: start date, title, time, allowance, pinned copy and the excluded films.
  • Existing tests updated for the new blocks:
    • Vortex's block groups (ChannelSuggestionsTest);
    • the one other withdrawal, Vortex's second Beerus copy (AfterDarkReviewTest);
    • the presentation key list: 21 keys, with the premiere's the only one without an ident, by design (PresentationTest).
  • Fresh box data (box files copied at 15:44 today; docs/replays/beerus-premiere-replay-0.99.17.txt, BeerusPremiereReplayTest):
    • Four weeks of Vortex top-ups every six hours, with the box's own committed plan and avoiding every other channel's committed programmes.
    • Beerus's four episodes are as the box inspected them. The exact seconds weren't in that read, so each is taken as 23:40.
Result
Committed plan (to 11 November 13:22) kept exactly
With Beerus against without identical until Saturday 21 November 19:57
21 November 20:27 Dragon Ball Z: Dead Zone (whole), 21:08 episode 1, 21:32 episode 2, then Afterburn
28 November 20:08 Dragon Ball Z: Wrath of the Dragon, 21:00 episode 3, 21:24 episode 4, then Afterburn
5 December no Beerus; normal Movie Night (Bojack Unbound, The World's Strongest)
When booked 21 November at the top-up of 15 November 15:13, when the plan ended 21 November 09:15. Episode 4 was booked at a later top-up, straight after episode 3. Every slot was uncommitted when booked.
Dragon Ball Super (2015) its Beerus saga ends with S1E14 on 20 November 02:12, and S2E1 follows on 22 November
Gaps, clashes with other channels 0, 0
Save and reload every 18 hours identical
  • Every other channel: the four-week replay of all 30 channels on the fresh files is identical between 0.99.16 and 0.99.17 on every channel, committed and four weeks (docs/replays/replay-fingerprints-0.99.17.txt).
    • Vortex is identical too, because its pool on the box doesn't hold Beerus yet. Beerus joins at Vortex's first pool read after install, and then only Saturdays from 21 November change, as above.

Known limits

  • Install by about 14 November. If it's installed later, the premiere starts on the first Saturday not yet booked. 21 November would keep what's already committed, and nothing is rewritten.
  • Vortex's next refresh: Vortex's list changes, so its pool is read again at its next top-up. That's a normal full Vortex pool read.
  • First airings: these are counted from Vortex's own cursor. If the library gains episode 5 and later, they continue weekly, two at a time while two or more are waiting.
  • Simulated dates: the Dragon Ball Super (2015) dates are from the replay. Exact times can shift slightly as other channels top up.
  • Not covered by the replays: this is tested as scheduling logic. What airs needs checking on the box: the booking appearing around 15 November, then the night itself.

Rollback

Install 0.99.16. Bookings made by 0.99.17 stay as booked, because the never-rewrite rule applies, and their premiere key is ignored by older readers. Beerus would stay booked on those nights, without the key.

Installation record (4 November 2026, 16:11 GMT)

Paul approved this at 16:10 ("install right away"). Orbit was on screen from the earlier playback test.

  • Snapshot and rollback:
    • All 191 schedule-folder files and the settings file were copied off the box, to install-0.99.17-20261104-161040.
    • A rollback copy is on the box in no_backup/schedule-rollback-0.99.16.
    • The 0.99.16 APK is in outputs/revision-0.99.16.
    • The cutover snapshots and every earlier install snapshot are kept.
  • Install: the APK's SHA-256 was checked. The box reports versionCode 147, 0.99.17-beerus-premiere.
  • Vortex pool refresh: Vortex's changed list made it read its pool again at the first top-up (167 requests, 157 s).
    • Shows went from 117 to 118, and episodes from 7,003 to 7,007.
    • The pool file holds Dragon Ball Super: Beerus from Emby 8016753 only, with episodes 1 to 4 in order. Each passed the box's playability check and runs 23.3 minutes.
    • Copy 8055740 isn't read: no two-copy line was logged for Beerus.
  • Committed bookings: all 31 plans compared.
    • Nothing was added, and every plan cursor is identical. Every remaining entry and presentation key is identical, and the only drops are the daily trim.
    • 12 aired places moved, each to the latest programme of its show already started.
    • Besides the plans and progress files, only Vortex's pool file and its backup changed.
  • Top-ups: all 30 channels topped up with added=0 and clashes=0, with no player, decoder or crash errors.
  • Subtitles: the playback test on Beerus episode 1 again chose English automatically (30 subtitle updates, 0 errors), with the setting off. The settings file is byte-identical.
  • Replay on the installed box's files (docs/replays/beerus-premiere-replay-0.99.17-installed.txt), using the pool as the box read it:
Result
Committed plan kept exactly
Premiere eligibility booked at the top-up of Sunday 15 November about 15:50, when the plan ends 21 November 10:01, so the slots are uncommitted
21 November 20:27 Dead Zone (whole), 21:08:34 episode 1, 21:31:52 episode 2, key vortex.afterburn.premiere
28 November 20:00 The World's Strongest (whole), 21:00:18 episode 3, 21:23:36 episode 4
5 December no Beerus, no repeat
Gaps, clashes 0, 0
Save and reload identical
  • Other channels: the four-week replay on the same files is identical to 0.99.16 on all 29 other channels. Vortex's committed fingerprint is identical, and only its four-week fingerprint differs, from the premiere (docs/replays/replay-fingerprints-0.99.17-installed.txt).

On-air verification (pending)

  • When the bookings appear (about 15 November, at the top-up that brings 21 November into the seven-day horizon):

    • check Vortex's plan for Beerus 8016755 and 8055410 from about 21:00 on 21 November;
    • check the key vortex.afterburn.premiere and the "premiere: first airing on Orbit" reasons;
    • check that the film before them is whole.

    Nothing is promoted as confirmed before then.

  • On the night: picture, sound, subtitles and the standard Vortex ident.