Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
42 lines
3.7 KiB
Markdown
42 lines
3.7 KiB
Markdown
# Orbit TV 0.99.7: faster top-ups and pool diagnostics
|
|
|
|
This release prepares for the final audit (4 November 2026). It changes no scheduling decision; the same programmes are booked. It includes 0.99.6.
|
|
|
|
## What's in it
|
|
|
|
- **Clash avoidance reads less.**
|
|
- **Before:** each time a channel tops up, it parsed every other channel's whole plan file to avoid clashes, about 30 files and several megabytes on the box. A full scheduling pass did that once per growing channel.
|
|
- **Now:** the scheduler keeps just what clash avoidance needs from each plan (title key, start and end, as `Airing` and `clashesWithAirings`). It keeps them together with the plan file's modified time and size, and reads a file again only when it has changed.
|
|
- The log line gains `othersMs=` when it builds this index, so its cost on the box can be seen.
|
|
- **Weighted planning looks each show's next episode up once.** `extendWeighted` worked out every eligible show's next episode several times per pick, by searching its episode list. It now keeps the answer until that show plays.
|
|
- **Pool diagnostics, counts only, never titles.** When a listed series isn't added to a pool, the log names its position in the list and the reason:
|
|
- `listed=N unmatched candidates=C exact=E`: the server's search found no exact title.
|
|
- `listed=N matched copies=C playableEpisodes=0`: it was found, but none of its episodes can play on the box.
|
|
|
|
This is how Vortex's Tenchi Muyo! Tenchi Universe will be traced at its next refresh. The library holds it (1995, TV-PG); the pool reader drops it, for a reason not yet known.
|
|
|
|
## Checks before install
|
|
|
|
- **415 unit tests pass**, including the hand-run replays. Lint has no errors.
|
|
- **The same programmes are booked:** a four-week replay of all 30 channels on box copies taken at 09:40 gives exactly the same fingerprint as 0.99.6 on every channel (docs/replays/replay-fingerprints-0.99.7.txt).
|
|
- **Where the time went, measured on box copies on this machine:**
|
|
- A weighted top-up of Orbit X takes about 0.2 seconds of planning.
|
|
- Reading the 30 other plans takes about 0.07 seconds.
|
|
- The box took 41 seconds, so most of that time is most likely its slower JSON parsing and the pools refreshing alongside. That isn't proven. `othersMs=` will show the split on the box.
|
|
|
|
## Rollback
|
|
|
|
Install 0.99.6. No saved data changes.
|
|
|
|
## Installation record (4 November 2026, about 10:04 GMT)
|
|
|
|
Paul approved this release at 09:43; the box was on, but nothing was being watched. The first install attempt hit the box's adb connection dropping and didn't install, though it did open Orbit. I then took a snapshot of all 96 schedule files and installed over 0.99.6. The box reports 0.99.7-planning-speed. Orbit relaunched, and when the checks were done I returned the TV to its home screen with a launcher intent. There was no crash in the log. The rollback APK is in outputs/revision-0.99.6.
|
|
|
|
- **Plans:** every plan kept every remaining entry. No cursor was reset.
|
|
- **New bookings:** After Dark topped up on its own, adding 15 programmes from 10 November 09:54, in its day and late blocks, with clashes=0. These are its first bookings without the withdrawn films.
|
|
- **Speed, measured on the box:**
|
|
- After Dark's top-up took 10.6 seconds, of which 9.4 seconds (`othersMs`) was reading the other 30 plans the first time.
|
|
- Every later channel in the pass planned in 64 to 560 ms, reusing the kept airings.
|
|
- So the slow top-ups were reading the other plans, not the weighted rule. Under 0.99.6, Orbit X took 41 seconds and Vortex 17. That cost is now paid once per pass, not once per growing channel.
|
|
- **Pool diagnostics:** no channel re-read its pool this pass, because none was due. Vortex's next refresh, about 11 November, will log the Tenchi Universe reason.
|