0.99.17: Vortex Afterburn premiere of Dragon Ball Super: Beerus (Stage D1)
pauljd/davidson-ci: Davidson CI / quality (push) Failing after 2m3s
pauljd/davidson-ci: Davidson CI / ai-review (push) Failing after 1m28s

Saturday 21:00 from 21 November, first airings only, two a night while two are waiting, each episode its own booking,
pinned to Emby 8016753; whole Dragon Ball film before it on premiere nights, never cut. Fresh box-data replay; every
channel's fingerprint identical to 0.99.16.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-11-04 16:07:15 +00:00
co-authored by Claude Opus 5.5
parent ef30493924
commit d5fa2edeab
15 changed files with 487 additions and 63 deletions
+21
View File
@@ -65,3 +65,24 @@ Approved by Paul at 15:35 ("yes install", replying to the D2 release). Another a
- run the playback test on Beerus, where English should be selected with the setting off;
- run it on an English episode, where none should be selected;
- check ordinary channel changes.
## On-box check (4 November 2026, 15:52 to 16:06 GMT)
Paul said the TV was idle at 15:50. Paul's subtitles setting is off. These were run with 0.99.16's playback test, which starts from the setting as a channel does.
| | Beerus episode 1 (Emby 8016755) | Friends episode 1 (Emby 6947925): the English regression |
|---|---|---|
| Picture | video/avc 1920×1080 | video/dolby-vision 3840×2160 |
| Sound | AAC, Japanese ("ja"), 2 channels | E-AC3, English, 6 channels |
| Subtitle tracks | 4 (English, Portuguese, Spanish, external English) | 10 (English ×2, Danish, Finnish, Norwegian, Swedish) |
| Selected | **English, automatically** | **none**, as before |
| Subtitle updates | 34 (first at 15.1 s) | 0 |
| Errors | 0 | 0 |
- **Friends launch:** the first attempt didn't start, because the box's home screen came to the front as the old Orbit process was force-stopped. Orbit was stopped and opened again, and the second attempt ran.
- **Orbit afterwards:** it resumed normally. All 30 channels topped up twice with \`added=0\` and \`clashes=0\`, with no player, decoder or crash errors.
- **Files:**
- The settings file is byte-identical.
- Every plan entry, presentation key and plan cursor is unchanged. The plans only dropped programmes that ended more than 24 hours ago.
- 33 aired places moved, each to the latest programme of its show already started.
- **Paul's view on the TV:** to be confirmed.
+77
View File
@@ -0,0 +1,77 @@
# 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.
@@ -0,0 +1,45 @@
Stage D1 replay: Vortex as built, from the box's files (committed 2026-11-03T15:13:54 to 2026-11-11T13:22:31), four weeks of top-ups every six hours, avoiding other channels' committed programmes.
with and without Beerus, identical until 2026-11-21T19:57:30
premiere episode booked for 2026-11-21T21:08:34 at the top-up of 2026-11-15T15:13:54; the plan then ended 2026-11-21T09:15:21, so the slot was uncommitted: true
premiere episode booked for 2026-11-21T21:32:14 at the top-up of 2026-11-15T15:13:54; the plan then ended 2026-11-21T09:15:21, so the slot was uncommitted: true
premiere episode booked for 2026-11-28T21:00:20 at the top-up of 2026-11-21T21:13:54; the plan then ended 2026-11-27T15:35, so the slot was uncommitted: true
premiere episode booked for 2026-11-28T21:24 at the top-up of 2026-11-23T03:13:54; the plan then ended 2026-11-28T21:24, so the slot was uncommitted: true
Dragon Ball Super (2015) Beerus saga (season 1, 14 episodes): last episode S1E14 at 2026-11-20T02:12:42; first after it S2E1 at 2026-11-22T00:28:35; committed plan holds up to EpisodeMark(season=1, episode=6)
== Saturday 2026-11-14, 19:00 to 23:00
19:05:49-19:30:06 Mobile Suit Zeta Gundam [-] block night
19:30:06-19:54 Mobile Suit Gundam SEED [-] block night
19:54-20:18:27 Nobunaga the Fool [-] block night
20:18:27-21:10:15 Dragon Ball Z: Wrath of the Dragon [vortex.movie] event movie
21:10:15-21:51:29 Dragon Ball Z: Dead Zone [vortex.movie] event movie
21:51:29-22:43:30 Dragon Ball Z: Lord Slug [vortex.movie] event movie
22:43:30-23:05:47 ThunderCats [-] block toonami
== Saturday 2026-11-21, 19:00 to 23:00
19:09:15-19:33:23 Dragon Ball GT [-] block night
19:33:23-19:57:30 Sailor Moon [-] block night
19:57:30-20:27:21 Tenchi Muyo! Ryo-Ohki [-] block night
20:27:21-21:08:34 Dragon Ball Z: Dead Zone [vortex.movie] event 20-21
21:08:34-21:32:14 Dragon Ball Super: Beerus episode 1 [vortex.afterburn.premiere] event 21-22; first airing on Orbit
21:32:14-21:55:54 Dragon Ball Super: Beerus episode 2 [vortex.afterburn.premiere] event 21-22; first airing on Orbit
21:55:54-22:18:02 Yu-Gi-Oh! Duel Monsters [-] block toonami
22:18:02-22:40:20 ThunderCats [-] block toonami
22:40:20-23:10:16 Tenchi Muyo! Ryo-Ohki [-] block toonami
== Saturday 2026-11-28, 19:00 to 23:00
19:15:21-19:39:34 Sailor Moon [-] block night
19:39:34-20:08:32 Tenchi Muyo! Ryo-Ohki [-] block night
20:08:32-21:00:20 Dragon Ball Z: Wrath of the Dragon [vortex.movie] event 20-21
21:00:20-21:24 Dragon Ball Super: Beerus episode 3 [vortex.afterburn.premiere] event 21-22; first airing on Orbit
21:24-21:47:40 Dragon Ball Super: Beerus episode 4 [vortex.afterburn.premiere] event 21-22; first airing on Orbit
21:47:40-22:09:56 ThunderCats [-] block toonami
22:09:56-22:35:08 The Big O [-] block toonami
22:35:08-22:58:09 Pokémon [-] block toonami
22:58:09-23:23:09 Cardcaptor Sakura [-] block toonami
== Saturday 2026-12-05, 19:00 to 23:00
19:01:38-19:25:52 Dragon Ball Z [-] block night
19:25:52-19:47:16 Yu-Gi-Oh! Duel Monsters [-] block night
19:47:16-20:11:16 Mobile Suit Gundam Wing [-] block night
20:11:16-21:01:40 Dragon Ball Z: Bojack Unbound [vortex.movie] event movie
21:01:40-22:01:11 Dragon Ball Z: The World's Strongest [vortex.movie] event movie
22:01:11-22:26:27 The Big O [-] block toonami
22:26:27-22:52:06 Outlaw Star [-] block toonami
22:52:06-23:16:19 Sailor Moon [-] block toonami
Beerus bookings 4: [E1 2026-11-21T21:08:34, E2 2026-11-21T21:32:14, E3 2026-11-28T21:00:20, E4 2026-11-28T21:24]; gaps or overlaps 0; clashes with other channels 0; a save and reload every 18 hours gives the same: true
@@ -0,0 +1,62 @@
--- 0.99.16 (commit 0d2ea65), box files from 4 November 15:44
101 committed=a29a6565a9152757 kept=true fourWeeks=fc2dc64d70b2604d programmes=2161
102 committed=eedfc214aa5f5ba6 kept=true fourWeeks=9d0edd9e8753e876 programmes=1313
103 committed=e807e4e9eaec9e5e kept=true fourWeeks=b1487ed77ae76683 programmes=1808
104 committed=f4ce83ef8be37e51 kept=true fourWeeks=bd73ba4f2a9e7fa2 programmes=1723
105 committed=024393931783c210 kept=true fourWeeks=582048188ae9acd1 programmes=2540
106 committed=7e963ca86fe58ce0 kept=true fourWeeks=d410477fe1fe4178 programmes=1142
107 committed=9a0c61745c574ad4 kept=true fourWeeks=226cf74cfd9b69c4 programmes=1006
201 committed=9b236f40b63be66a kept=true fourWeeks=506952ece7a15e99 programmes=956
202 committed=c74b41f30ee7d2d5 kept=true fourWeeks=e07fafae6bdbf493 programmes=1124
203 committed=eecf43fad5df1742 kept=true fourWeeks=8bb571bf107cd854 programmes=1130
204 committed=dfe36fb6df45b11c kept=true fourWeeks=30eee87fdd9cc87f programmes=1253
301 committed=a60230082d64c730 kept=true fourWeeks=e52b5c61079837aa programmes=359
302 committed=63451c5e20f4ac7d kept=true fourWeeks=c95e938f667359e5 programmes=442
303 committed=a8f13e22455a5da9 kept=true fourWeeks=a4aad9cf93bab051 programmes=416
304 committed=54c130b5c64e8b7e kept=true fourWeeks=15c34fc89631f0b0 programmes=490
305 committed=4078f134215f37bb kept=true fourWeeks=97e4f77b7fc48b9d programmes=500
306 committed=9efe3fbd598311c3 kept=true fourWeeks=49dc6256788603ad programmes=489
307 committed=8adb935ea55ff9a2 kept=true fourWeeks=ff4450b5f41cfd0f programmes=438
308 committed=c032d416971fe6c8 kept=true fourWeeks=dcc5c2e0072a75f3 programmes=514
309 committed=5fd2f41b64189808 kept=true fourWeeks=8e00279866f1956d programmes=498
401 committed=9d7ea89a72686ffb kept=true fourWeeks=8b66b2d9cc8b06df programmes=874
601 committed=78654495e4d87e5d kept=true fourWeeks=853ee8c2ace232c8 programmes=2188
602 committed=012e3694020099bd kept=true fourWeeks=e812832c0285db95 programmes=2321
603 committed=884e044218a1aeb1 kept=true fourWeeks=1673cd14543fcfa3 programmes=2300
604 committed=97b2c8367d71770e kept=true fourWeeks=0f199d8d19bf9b0a programmes=3232
605 committed=505c511e9e7a9b00 kept=true fourWeeks=209ec32891b12e18 programmes=4480
611 committed=25db66cdf1e9517c kept=true fourWeeks=98027cb9d12fa94a programmes=2732
612 committed=8a0db30b6ded8cb0 kept=true fourWeeks=5fff983191812a54 programmes=575
613 committed=e072fd42fa7bec53 kept=true fourWeeks=98e5dea86bb07759 programmes=518
614 committed=62abd42bbc465e20 kept=true fourWeeks=0f8cb8079f37e63b programmes=3822
--- 0.99.17
101 committed=a29a6565a9152757 kept=true fourWeeks=fc2dc64d70b2604d programmes=2161
102 committed=eedfc214aa5f5ba6 kept=true fourWeeks=9d0edd9e8753e876 programmes=1313
103 committed=e807e4e9eaec9e5e kept=true fourWeeks=b1487ed77ae76683 programmes=1808
104 committed=f4ce83ef8be37e51 kept=true fourWeeks=bd73ba4f2a9e7fa2 programmes=1723
105 committed=024393931783c210 kept=true fourWeeks=582048188ae9acd1 programmes=2540
106 committed=7e963ca86fe58ce0 kept=true fourWeeks=d410477fe1fe4178 programmes=1142
107 committed=9a0c61745c574ad4 kept=true fourWeeks=226cf74cfd9b69c4 programmes=1006
201 committed=9b236f40b63be66a kept=true fourWeeks=506952ece7a15e99 programmes=956
202 committed=c74b41f30ee7d2d5 kept=true fourWeeks=e07fafae6bdbf493 programmes=1124
203 committed=eecf43fad5df1742 kept=true fourWeeks=8bb571bf107cd854 programmes=1130
204 committed=dfe36fb6df45b11c kept=true fourWeeks=30eee87fdd9cc87f programmes=1253
301 committed=a60230082d64c730 kept=true fourWeeks=e52b5c61079837aa programmes=359
302 committed=63451c5e20f4ac7d kept=true fourWeeks=c95e938f667359e5 programmes=442
303 committed=a8f13e22455a5da9 kept=true fourWeeks=a4aad9cf93bab051 programmes=416
304 committed=54c130b5c64e8b7e kept=true fourWeeks=15c34fc89631f0b0 programmes=490
305 committed=4078f134215f37bb kept=true fourWeeks=97e4f77b7fc48b9d programmes=500
306 committed=9efe3fbd598311c3 kept=true fourWeeks=49dc6256788603ad programmes=489
307 committed=8adb935ea55ff9a2 kept=true fourWeeks=ff4450b5f41cfd0f programmes=438
308 committed=c032d416971fe6c8 kept=true fourWeeks=dcc5c2e0072a75f3 programmes=514
309 committed=5fd2f41b64189808 kept=true fourWeeks=8e00279866f1956d programmes=498
401 committed=9d7ea89a72686ffb kept=true fourWeeks=8b66b2d9cc8b06df programmes=874
601 committed=78654495e4d87e5d kept=true fourWeeks=853ee8c2ace232c8 programmes=2188
602 committed=012e3694020099bd kept=true fourWeeks=e812832c0285db95 programmes=2321
603 committed=884e044218a1aeb1 kept=true fourWeeks=1673cd14543fcfa3 programmes=2300
604 committed=97b2c8367d71770e kept=true fourWeeks=0f199d8d19bf9b0a programmes=3232
605 committed=505c511e9e7a9b00 kept=true fourWeeks=209ec32891b12e18 programmes=4480
611 committed=25db66cdf1e9517c kept=true fourWeeks=98027cb9d12fa94a programmes=2732
612 committed=8a0db30b6ded8cb0 kept=true fourWeeks=5fff983191812a54 programmes=575
613 committed=e072fd42fa7bec53 kept=true fourWeeks=98e5dea86bb07759 programmes=518
614 committed=62abd42bbc465e20 kept=true fourWeeks=0f8cb8079f37e63b programmes=3822