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>
This commit is contained in:
@@ -9,8 +9,9 @@ import java.io.File
|
||||
|
||||
/**
|
||||
* Stage D1's check: Vortex as built, with the Afterburn premiere of Dragon Ball Super: Beerus, from copies of the box's files.
|
||||
* Beerus's four episodes, as the box's inspection read them (Emby 8016753, 23 minutes each; their exact seconds aren't in that
|
||||
* read, so each is taken as 23:40), join Vortex's pool from the first top-up, as the release's first pool read would add them.
|
||||
* Beerus's four episodes come from Vortex's pool when the box has read them (0.99.17 onwards). Before that they're taken
|
||||
* from the box's inspection (Emby 8016753, 23 minutes each, taken as 23:40), joining from the first top-up as the release's
|
||||
* first pool read would add them.
|
||||
* Four weeks of top-ups every six hours with Beerus and without it, avoiding every other channel's committed programmes.
|
||||
* Run by hand:
|
||||
* ORBIT_REPLAY_DIR=<copies of the box's files> ./gradlew :app:testDebugUnitTest --tests '*BeerusPremiereReplayTest*'
|
||||
@@ -70,11 +71,13 @@ class BeerusPremiereReplayTest {
|
||||
@Test fun premiere() {
|
||||
assumeTrue(dir != null && File(dir, "schedule-601.json").exists())
|
||||
val vortex = SmartChannels.first { it.number == VORTEX_NUMBER }
|
||||
val committed = plan(File(dir, "schedule-601.json")); val series = withoutWithdrawn(pool(File(dir, "episodes-601.json")), vortex.withdrawn)
|
||||
val committed = plan(File(dir, "schedule-601.json")); val read = withoutWithdrawn(pool(File(dir, "episodes-601.json")), vortex.withdrawn)
|
||||
// Once the box has read Beerus into Vortex's pool, its own copy and runtimes are used; before that, the inspected episodes.
|
||||
val series = read.filter { it.id != "8016753" }
|
||||
fun at(date: String, h: Int, m: Int = 0) = java.time.LocalDate.parse(date).atTime(h, m).atZone(zone).toInstant().toEpochMilli()
|
||||
fun t(ms: Long) = java.time.Instant.ofEpochMilli(ms).atZone(zone).toLocalDateTime().withNano(0)
|
||||
val minute = 60_000L
|
||||
val beerus = PoolSeries("8016753", BEERUS, listOf("8016755", "8055410", "8062564", "8070600").mapIndexed { i, id ->
|
||||
val beerus = read.firstOrNull { it.id == "8016753" } ?: PoolSeries("8016753", BEERUS, listOf("8016755", "8055410", "8062564", "8070600").mapIndexed { i, id ->
|
||||
PoolEpisode(id, "mediasource_$id", EpisodeMark(1, i + 1), "Episode ${i + 1}", 23 * minute + 40_000L) })
|
||||
val others = clashesWith(SmartChannels.filter { it.number != VORTEX_NUMBER && File(dir, "schedule-${it.number}.json").exists() }.map { plan(File(dir, "schedule-${it.number}.json")) })
|
||||
val (without, _) = replay(committed, series, vortex, others)
|
||||
|
||||
@@ -75,3 +75,47 @@ Paul approved building and verifying this on 4 November 2026 at 15:28. Installin
|
||||
## 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.
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
Stage D1 replay: Vortex as built, from the box's files (committed 2026-11-03T15:50:19 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:50:19; the plan then ended 2026-11-21T10:01:54, so the slot was uncommitted: true
|
||||
premiere episode booked for 2026-11-21T21:31:52 at the top-up of 2026-11-15T15:50:19; the plan then ended 2026-11-21T10:01:54, so the slot was uncommitted: true
|
||||
premiere episode booked for 2026-11-28T21:00:18 at the top-up of 2026-11-21T21:50:19; the plan then ended 2026-11-27T16:02:12, so the slot was uncommitted: true
|
||||
premiere episode booked for 2026-11-28T21:23:36 at the top-up of 2026-11-21T21:50:19; the plan then ended 2026-11-27T16:02:12, 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:27:51; 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:31:52 Dragon Ball Super: Beerus episode 1 [vortex.afterburn.premiere] event 21-22; first airing on Orbit
|
||||
21:31:52-21:55:10 Dragon Ball Super: Beerus episode 2 [vortex.afterburn.premiere] event 21-22; first airing on Orbit
|
||||
21:55:10-22:17:17 Yu-Gi-Oh! Duel Monsters [-] block toonami
|
||||
22:17:17-22:39:35 ThunderCats [-] block toonami
|
||||
22:39:35-23:09:32 Tenchi Muyo! Ryo-Ohki [-] block toonami
|
||||
== Saturday 2026-11-28, 19:00 to 23:00
|
||||
19:12:22-19:36:34 Dragon Ball [-] block night
|
||||
19:36:34-20:00:47 Dragon Ball Z [-] block night
|
||||
20:00:47-21:00:18 Dragon Ball Z: The World's Strongest [vortex.movie] event 20-21
|
||||
21:00:18-21:23:36 Dragon Ball Super: Beerus episode 3 [vortex.afterburn.premiere] event 21-22; first airing on Orbit
|
||||
21:23:36-21:46:53 Dragon Ball Super: Beerus episode 4 [vortex.afterburn.premiere] event 21-22; first airing on Orbit
|
||||
21:46:53-22:11:06 Dragon Ball [-] block toonami
|
||||
22:11:06-22:35:18 Dragon Ball Z [-] block toonami
|
||||
22:35:18-22:59:27 Dragon Ball GT [-] block toonami
|
||||
22:59:27-23:21:42 ThunderCats [-] block toonami
|
||||
== Saturday 2026-12-05, 19:00 to 23:00
|
||||
19:11:13-19:35:12 Mobile Suit Gundam Wing [-] block night
|
||||
19:35:12-19:59:28 My Hero Academia [-] block night
|
||||
19:59:28-20:20:52 Yu-Gi-Oh! Duel Monsters [-] block night
|
||||
20:20:52-21:11:16 Dragon Ball Z: Bojack Unbound [vortex.movie] event movie
|
||||
21:11:16-22:10:48 Dragon Ball Z: The World's Strongest [vortex.movie] event movie
|
||||
22:10:48-22:32:12 Yu-Gi-Oh! Duel Monsters [-] block toonami
|
||||
22:32:12-22:57:29 The Big O [-] block toonami
|
||||
22:57:29-23:23:07 Outlaw Star [-] block toonami
|
||||
Beerus bookings 4: [E1 2026-11-21T21:08:34, E2 2026-11-21T21:31:52, E3 2026-11-28T21:00:18, E4 2026-11-28T21:23:36]; 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 after the 0.99.17 install (Vortex pool with Beerus)
|
||||
101 committed=f9a03287d77de1c7 kept=true fourWeeks=6439795399eaa5b6 programmes=2161
|
||||
102 committed=9a7f37fa19ff90d1 kept=true fourWeeks=2035a37c1e7d720b programmes=1312
|
||||
103 committed=cf104365eacc2205 kept=true fourWeeks=a8d8dafd254273f1 programmes=1809
|
||||
104 committed=9ca16bec10a81354 kept=true fourWeeks=48a16c9741454bf0 programmes=1723
|
||||
105 committed=94a2c1a343d88915 kept=true fourWeeks=38f0b51d273ec26b programmes=2540
|
||||
106 committed=4925d4e0c8380835 kept=true fourWeeks=a780407103052ca9 programmes=1143
|
||||
107 committed=a291aa5b6dcb2d51 kept=true fourWeeks=317b39d184075dd4 programmes=1006
|
||||
201 committed=8eac36151d3db5c7 kept=true fourWeeks=c1dac10fa4ccc575 programmes=956
|
||||
202 committed=d83fecad57ca4c72 kept=true fourWeeks=df5c405ea065836a programmes=1124
|
||||
203 committed=e49176fcc4de75cd kept=true fourWeeks=765e2c520af309bc programmes=1130
|
||||
204 committed=30802ae42f0b84e6 kept=true fourWeeks=2557236f6e8c3920 programmes=1254
|
||||
301 committed=a60230082d64c730 kept=true fourWeeks=e52b5c61079837aa programmes=359
|
||||
302 committed=25292ff5bc2e143e kept=true fourWeeks=018d08db70e2de5f programmes=439
|
||||
303 committed=a8f13e22455a5da9 kept=true fourWeeks=a4aad9cf93bab051 programmes=416
|
||||
304 committed=a935177668a9e2c6 kept=true fourWeeks=44c8d10e2f3f104b programmes=490
|
||||
305 committed=4078f134215f37bb kept=true fourWeeks=97e4f77b7fc48b9d programmes=500
|
||||
306 committed=efaae3caa156fdbe kept=true fourWeeks=2967c19d6183c578 programmes=489
|
||||
307 committed=8adb935ea55ff9a2 kept=true fourWeeks=ff4450b5f41cfd0f programmes=438
|
||||
308 committed=107aceee3dc5262a kept=true fourWeeks=7ebe266852de6ff9 programmes=510
|
||||
309 committed=85d3ae0fd77478d1 kept=true fourWeeks=89f9801411746431 programmes=494
|
||||
401 committed=4f0314b7876321e0 kept=true fourWeeks=58cda58c4e8d9983 programmes=874
|
||||
601 committed=3fe28f317fbd918b kept=true fourWeeks=4dea9b94a7422ca1 programmes=2187
|
||||
602 committed=8b3a94c47708943f kept=true fourWeeks=8422fc9677bb8ffa programmes=2320
|
||||
603 committed=f96f78f248fbf8fe kept=true fourWeeks=0f9df57be0242ec7 programmes=2300
|
||||
604 committed=5d4a52d179d1f30a kept=true fourWeeks=c9789aad3a8843e3 programmes=3232
|
||||
605 committed=5e645c0f9cf87f6e kept=true fourWeeks=3c105829d206d116 programmes=4479
|
||||
611 committed=549e3c1d1a8cf02f kept=true fourWeeks=f719006122c5bf61 programmes=2731
|
||||
612 committed=cbf2dd848f845343 kept=true fourWeeks=845ca5b5602ea2a1 programmes=575
|
||||
613 committed=e072fd42fa7bec53 kept=true fourWeeks=98e5dea86bb07759 programmes=518
|
||||
614 committed=38a6a3b64a4c8f3c kept=true fourWeeks=f68607419ee1ca91 programmes=3822
|
||||
--- 0.99.17
|
||||
101 committed=f9a03287d77de1c7 kept=true fourWeeks=6439795399eaa5b6 programmes=2161
|
||||
102 committed=9a7f37fa19ff90d1 kept=true fourWeeks=2035a37c1e7d720b programmes=1312
|
||||
103 committed=cf104365eacc2205 kept=true fourWeeks=a8d8dafd254273f1 programmes=1809
|
||||
104 committed=9ca16bec10a81354 kept=true fourWeeks=48a16c9741454bf0 programmes=1723
|
||||
105 committed=94a2c1a343d88915 kept=true fourWeeks=38f0b51d273ec26b programmes=2540
|
||||
106 committed=4925d4e0c8380835 kept=true fourWeeks=a780407103052ca9 programmes=1143
|
||||
107 committed=a291aa5b6dcb2d51 kept=true fourWeeks=317b39d184075dd4 programmes=1006
|
||||
201 committed=8eac36151d3db5c7 kept=true fourWeeks=c1dac10fa4ccc575 programmes=956
|
||||
202 committed=d83fecad57ca4c72 kept=true fourWeeks=df5c405ea065836a programmes=1124
|
||||
203 committed=e49176fcc4de75cd kept=true fourWeeks=765e2c520af309bc programmes=1130
|
||||
204 committed=30802ae42f0b84e6 kept=true fourWeeks=2557236f6e8c3920 programmes=1254
|
||||
301 committed=a60230082d64c730 kept=true fourWeeks=e52b5c61079837aa programmes=359
|
||||
302 committed=25292ff5bc2e143e kept=true fourWeeks=018d08db70e2de5f programmes=439
|
||||
303 committed=a8f13e22455a5da9 kept=true fourWeeks=a4aad9cf93bab051 programmes=416
|
||||
304 committed=a935177668a9e2c6 kept=true fourWeeks=44c8d10e2f3f104b programmes=490
|
||||
305 committed=4078f134215f37bb kept=true fourWeeks=97e4f77b7fc48b9d programmes=500
|
||||
306 committed=efaae3caa156fdbe kept=true fourWeeks=2967c19d6183c578 programmes=489
|
||||
307 committed=8adb935ea55ff9a2 kept=true fourWeeks=ff4450b5f41cfd0f programmes=438
|
||||
308 committed=107aceee3dc5262a kept=true fourWeeks=7ebe266852de6ff9 programmes=510
|
||||
309 committed=85d3ae0fd77478d1 kept=true fourWeeks=89f9801411746431 programmes=494
|
||||
401 committed=4f0314b7876321e0 kept=true fourWeeks=58cda58c4e8d9983 programmes=874
|
||||
601 committed=3fe28f317fbd918b kept=true fourWeeks=666be19c335bc81d programmes=2190
|
||||
602 committed=8b3a94c47708943f kept=true fourWeeks=8422fc9677bb8ffa programmes=2320
|
||||
603 committed=f96f78f248fbf8fe kept=true fourWeeks=0f9df57be0242ec7 programmes=2300
|
||||
604 committed=5d4a52d179d1f30a kept=true fourWeeks=c9789aad3a8843e3 programmes=3232
|
||||
605 committed=5e645c0f9cf87f6e kept=true fourWeeks=3c105829d206d116 programmes=4479
|
||||
611 committed=549e3c1d1a8cf02f kept=true fourWeeks=f719006122c5bf61 programmes=2731
|
||||
612 committed=cbf2dd848f845343 kept=true fourWeeks=845ca5b5602ea2a1 programmes=575
|
||||
613 committed=e072fd42fa7bec53 kept=true fourWeeks=98e5dea86bb07759 programmes=518
|
||||
614 committed=38a6a3b64a4c8f3c kept=true fourWeeks=f68607419ee1ca91 programmes=3822
|
||||
Reference in New Issue
Block a user