Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
25 KiB
Living Network: initial proposal (read-only)
4 November 2026, after the coordinated cutover. Nothing here is implemented. Each stage below would be its own release, with its own replays, checks and install approval. Committed bookings are never rewritten.
The frame is "The Living Network architecture" in docs/roadmap.md. This proposal adds Paul's three end-to-end test scenarios: story-aware episode grouping and the Dragon Ball Super: Beerus discovery test (13:27 today), and intelligent Drive-In curation (13:38 today).
Approved so far (13:38):
- Stage A moves into implementation, subject to its own tests, replay and install approval.
- The read-only Beerus inspection may run when the TV is idle.
- Media and committed bookings stay untouched.
Figures come from the cutover snapshot (cutover-20261104-131251: Paradox's pool and its committed plan after the cutover) and the read-only catalogue copy (132,545 items, imported 1 November).
How the parts fit together
Five separate components share one thing: a verified programme identity (series id, season, episode, file id and, for stories, a verified story id). None of them reaches into another's job.
| Component | Job | Never does |
|---|---|---|
| Story grouping | Says which episodes form one story, with the evidence. | Book anything. |
| New-media detection | Says what's new to the library, newly released, a new episode, or first on Orbit. | Book or promote anything. |
| Channel assignment | Matches a title to the channels whose identity it fits, with reasons, for approval. | Change a channel without approval. |
| Scheduling (the Living Network) | Proposes, then books, future uncommitted slots, using the existing scheduler's rules. | Rewrite a committed booking. |
| Promotion (What's On) | Presents confirmed bookings only. | Announce anything not yet booked. |
The existing scheduler keeps playback order, timing, cursors, rest, clash avoidance and continuity. The Living Network decides what goes into future slots; it doesn't replace how they're filled.
Test scenario 1: story-aware episode grouping (Paradox and Doctor Who first)
What's happening today
Paradox's daytime block (06:00 to 18:00) plays Doctor Who, The X-Files, Star Trek: The Next Generation and others shuffled, as standalone adventures. Multi-part stories aren't recognised, so their parts air on their own.
In Paradox's committed plan after the cutover (3 to 11 November), Doctor Who airs 34 times. Thirteen of those are parts of multi-part stories, and every one airs without the rest of its story. For example:
- The Empty Child (1), Wed 4 Nov 14:15, followed by Star Trek. The Doctor Dances (2) airs on Sun 8 Nov, four days later, on its own.
- Once, Upon Time (3), Sun 8 Nov 13:51: part 3 of the six-part Flux, with no other part anywhere in the week.
- Doomsday (2), The Big Bang (2) and The Timeless Children (2) each air as a finale without their first half.
The X-Files has the same problem (Deadalive (2), Thu 5 Nov 08:54). These bookings are committed, so they stand. The change would apply only to future slots.
What the library's data shows
Doctor Who's titles carry part markers, and they're consistent:
| Series | Episodes | Marked part episodes | Stories found |
|---|---|---|---|
| Doctor Who (2005) | 153 | 55 | 23 two-parters, 1 three-parter (Utopia, The Sound of Drums, Last of the Time Lords), 1 six-parter (Flux) |
| Doctor Who (2023) | 16 | 4 | 2 two-parters |
Every marked run starts at (1), counts up with no gaps, and sits in consecutive episode numbers in one season. No marker was orphaned. Spyfall (1) and Spyfall (2) share a title; the others have different titles with the marker.
Part markers are common across the network: "(N)" or "Part N" titles appear in more than 150 series. So the detector needs to be general, and it needs to be careful:
- Some markers aren't multi-part stories. Twin Peaks' "Part N" are the chapters of one serial. Yu-Gi-Oh! Duel Monsters has "N of M" titles. Silent Witness marks every one of its 268 episodes, which is right, because every story there is a two-parter.
- Some real stories have no markers. Face the Raven, Heaven Sent and Hell Bent; the Monks trilogy (Extremis, The Pyramid at the End of the World, The Lie of the Land); A Good Man Goes to War into Let's Kill Hitler. Nothing in the titles links them.
Proposed rule
- Candidate: a title ending "(n)", "Part n", "Part One/Two/Three" or similar.
- Verified only if all of these hold:
- the parts are in the same series and season;
- their episode numbers are consecutive;
- the run starts at 1 and counts up with no gaps;
- it has 2 to 6 parts. Longer runs are serials, which are left alone.
- Hand-verified arcs: a short reviewed list for stories with no markers, such as the Doctor Who arcs above. Nothing goes on it without your approval.
- Anything uncertain stays as it is today. No blind pairing by neighbouring episode numbers or similar titles.
Proposed scheduling behaviour
- Shuffled shows: a verified story counts as one card in the deck. When it's drawn, all its parts are booked back to back in consecutive slots.
- In-order shows under weighted rotation: when part 1 is booked, the remaining parts follow it in the next slots, rather than waiting for the show's next turn.
- Fit: the whole story must fit inside the block, and finish before the next appointment, using the existing
fitBeforeAppointmentlogic. If it doesn't fit, the scheduler picks a standalone episode or a story that does fit. If nothing complete fits, the slot is filled from other shows in the block. An isolated later part is never booked just to fill a slot (Paul, 13:38). - Never strand mid-story: a part 2 or later is booked only straight after its earlier parts.
- Unchanged: runtimes, blocks, cursors and progression, rest rules, clash avoidance (checked for every part), and committed bookings.
Acceptance tests (scenario 1)
- Doctor Who's 25 and 2 stories are detected exactly. The detector finds no false stories in Doctor Who, and none in Twin Peaks or Yu-Gi-Oh! Duel Monsters.
- Over a four-week Paradox replay from the committed plan:
- every new booking of a part is in a complete story, in order, in consecutive slots;
- Flux airs as six consecutive episodes or not at all, inside the block or with Paradox's block-edge rules;
- no story crosses into prime time (18:00) or past an appointment;
- Doctor Who's share of airtime stays within a point of today's.
- Committed bookings come through exactly, including today's stranded parts.
- No episode with an uncertain link is grouped. Its booking is the same as without grouping.
- A save and reload mid-story carries on with the next part.
- Every channel except those opted in has an identical replay fingerprint.
Test scenario 2: Dragon Ball Super: Beerus discovery
Identity (verified)
- Title: Dragon Ball Super: Beerus (ドラゴンボール超 ビルス), Toei Animation, Fuji TV.
- IDs: TMDB 312359, TVDB 473154, IMDb tt39395275.
- What it is: an "enhanced edition" remake of the 2015 Dragon Ball Super anime, made for Toei's 70th anniversary. It retells the God of Destruction Beerus, Golden Frieza and Universe 6 sagas with new and redrawn animation.
- Release: it premiered on Fuji TV on 11 October 2026 (the catalogue shows 10 October, UTC), weekly, with Crunchyroll simulcasts.
- Runtime: about 23 minutes an episode.
Sources: Anime News Network, Dragon Ball official site and Wikipedia.
In the library
- Two library copies: Emby ids 8016753 (rated BR-10) and 8055740 (TV-14, with a TVmaze id). They have the same TMDB, TVDB and IMDb ids, so this is the same series twice, like Dragon Ball Z's two copies earlier. Which one to use (audio, subtitles, completeness) is part of the check below.
- Both new to the library: they sit at positions 131,600 and 131,938 of 132,545 in the catalogue. The catalogue reads oldest first by date added, so both were among the last 1% of items added before 1 November.
- Both newly released: premiered 11 October 2026, with new episodes still coming weekly.
- Not on Orbit: it isn't in Vortex's pool or on its lists, so nothing has aired.
So it's the test case for all three labels at once:
- New to library: it was added recently.
- Newly released: it's a 2026 series that's still airing weekly.
- First on Orbit: it hasn't aired here.
The detector must keep these as separate facts: an old film added last week is new to library but not newly released.
Not yet known
These need one read on the box:
- the episode count for each copy;
- which episodes are playable on this device (BoxDecoders);
- the audio languages for each copy.
The catalogue copy holds series rows only.
The read: the app's existing orbit_inspect_series hook logs the episode list on the next top-up: season and episode, runtime, containers, sources and names, as counts and titles in the log only. It doesn't change any file. It needs Orbit to be launched with the extra, so it needs the TV idle and your OK. Playability would then be checked against BoxDecoders from the logged containers and codecs. Remember Tenchi Universe: matched, but nothing playable on this device.
Relationship to existing Dragon Ball programming
Vortex already carries:
| Show | Episodes | Where it airs |
|---|---|---|
| Dragon Ball | 153 | mornings and Toonami |
| Dragon Ball Z | 291 | afternoon, Toonami and late |
| Dragon Ball GT | 64 | Toonami |
| Dragon Ball Super (2015) | 131 | afternoon, 12:00 to 16:00 |
| Dragon Ball Kai | 159 | evening |
| Dragon Ball Z Abridged | 67 | late |
Vortex also has about 24 Dragon Ball films, including Battle of Gods and Resurrection 'F'. These films and the opening sagas of Dragon Ball Super (2015) tell the same story Beerus retells.
The library also has Dragon Ball DAIMA (2024, three copies) and Super Dragon Ball Heroes. Neither is on Vortex. They're separate candidates and not part of this test.
Progression: Beerus is its own series with its own cursor, starting at episode 1 and played in order. It doesn't move Dragon Ball Super (2015)'s place. Because it retells the same arcs, the proposal is a soft rule: avoid booking Dragon Ball Super (2015)'s matching saga, or Battle of Gods or Resurrection 'F', on Vortex within a few days of the same part of Beerus. The exact episode mapping would need checking before that rule is used, and it would be a proposal, not automatic.
Proposed airtime
- Vortex Prime, 16:00 to 18:00 (recommended). This is Toonami's after-school hour, which is energetic and colourful. Beerus is a mainstream, comedic Dragon Ball series, which suits it.
- A weekly appointment, such as Saturday 17:00, gives one new-to-Orbit episode a week. It plays in order from episode 1, with new episodes joining as the library gains them.
- Not Afterburn, 21:00 to 23:00. Afterburn is the darker, more intense evening variation. Beerus's tone doesn't fit it, though a later saga, such as Universe 6, could be considered for one special Afterburn night.
- Also possible: a "First on Orbit" double bill on a Saturday, in the Vortex Movie Night area (20:00 to 22:00), to launch it with episodes 1 and 2. That would be an event booking under the normal event rules.
All of this is booked only in future uncommitted slots, after:
- you approve the series and which copy;
- playability is confirmed.
Presentation and What's On (later)
- First on Orbit: a "New on Vortex" tag on each episode's first Orbit airing, read by promotion.
- What's On, once booked: "New on Vortex tonight: Dragon Ball Super: Beerus, 17:00", and "Coming Saturday" for a booked premiere.
- No premiere announcement, tag or teaser until a playable episode is booked. If the booking is lost (unplayable, or a refresh drops it), the promotion disappears with it.
Acceptance tests (scenario 2)
- The detector reports Beerus as new to library, newly released and first on Orbit, with the evidence for each. For comparison, it reports an older film added recently as new to library only.
- The two copies are recognised as one series by their shared provider ids, not as two shows.
- Nothing is proposed for a copy with no playable episodes.
- The Vortex Prime proposal fits the block and its appointments, plays from episode 1 in order, and doesn't move any other show's cursor.
- No What's On item or tag exists before a booking exists. A booking produces one, and removing the booking removes it.
- Committed bookings are unchanged, and every other channel's replay fingerprint is identical.
Test scenario 3: Drive-In intelligent curation (Stage F)
The Drive-In (number 300) was named OrbitOffice before 2 November. The aim is for Orbit to curate its own cinema calendar from the playable film library, with no screening needing to be scheduled by hand.
What exists today (first look; the full audit is Stage F's first release)
- Calendar:
planDriveIn(DriveIn.kt) books each evening once, a week ahead, so a bill never changes after it's shown. It's already automatic, but the choice is narrow:- Sunday to Thursday: an Orbit Marquee film at 20:00 from four film channels' pools.
- Friday: a double bill at 20:00.
- Saturday: a triple bill at 19:00.
- Late Show: from 23:00 after any bill except a triple.
- Double and triple bills: taken from fixed hand-written lists (16 doubles and 11 triples), in a weekly turn. A bill is skipped if any of its films is missing.
- Rest: 14 days between screenings of a film. Linear channels avoid the Drive-In's films while they're on.
- Tickets: saved in tickets-0.json, keyed by start time. Reminders come 5 minutes before and at the start.
- Presentation: the marquee boards, scenes and Emby artwork on the big screen. Event identities exist only as the four kinds: Orbit Marquee, Orbit Double Bill, Orbit Triple Bill and The Late Show.
The full audit will also cover the live calendar file on the box, the tickets held, the rules in force and how each screen reads them.
The scenario
-
Read-only audit of the current calendar, tickets, screening rules, event identities and presentation.
-
Event discovery: find opportunities in the playable film catalogue, such as:
- an Arnie Triple Bill;
- a Hammer Horror Double Bill;
- a Universal Monsters Takeover;
- J-Horror After Midnight;
- director and actor spotlights;
- franchise marathons;
- seasonal cinema;
- 1980s and 1990s nostalgia nights.
-
Each suggestion is checked for:
- exact film identity, by provider ids, not title alone;
- playability on the box;
- runtimes, and whether they fit the evening;
- thematic fit;
- free dates;
- conflicts with linear channels (the existing clash index);
- film rest.
-
Each proposal gives:
- a coherent screening order;
- an event title;
- a date and start time;
- a presentation identity, using approved artwork where it exists.
Nothing is invented as confirmed, and no unapproved takeover is activated.
-
A proposed replacement calendar for review. The current future calendar is retired only by a separate Drive-In cutover that you approve explicitly, with snapshots and rollback, like the 31-channel cutover.
- Tickets, screenings already underway and confirmed events are kept. Nothing is discarded silently.
Shared with the Living Network
The Drive-In uses the same verified identities, event proposals and confirmed-booking record as the channels. Once an event is approved and booked:
- the Drive-In shows the confirmed programme;
- the event gets its presentation identity;
- tickets and screening details reflect the actual booking;
- What's On can promote it automatically;
- linear channels avoid clashing with its films.
The Drive-In stays bookable on its own and keeps everything it does today.
Acceptance tests (scenario 3)
- The audit report:
- lists every future Drive-In booking and every live ticket;
- has no title in logs, only counts.
- Each recommended event:
- has only playable films whose identity is verified;
- fits its evening;
- clashes with no linear booking;
- keeps film rest.
- A dry-run calendar replacement:
- keeps every ticketed screening and every screening underway exactly;
- has 0 gaps and 0 clashes;
- rolls back to byte-identical files.
- What's On and the Drive-In read the same booking. A proposal that isn't booked appears in neither.
- Linear channels' fingerprints are unchanged, except where a newly booked event's film is now avoided.
Stage F ships in small releases, starting with read-only event recommendations.
Suggested stages
Paul's development order (13:38):
| Stage | Contents | Status |
|---|---|---|
| A | Doctor Who story grouping on Paradox, behind a per-channel switch. Multi-part stories are booked as complete groups, never as isolated later parts to fill a slot. | Approved for implementation; install needs its own approval |
| B | Beerus inspection on the box (inspect hook) | Approved, when the TV is idle |
| C | New-media detection: report only, no booking | Installed 4 Nov (0.101.0) |
| D | Channel assignment and booking proposals, starting with Beerus on Vortex | Proposal |
| E | Story grouping on other approved channels, one at a time | Installed 4 Nov: Heroes, Orbit X, Vortex, Orbit 1, Evidence (0.103.0 to 0.107.0) |
| F | Drive-In intelligent curation, starting with read-only recommendations, then a separately approved calendar replacement | Proposal |
| F1 | Curated Drive-In events: ten approved concepts as fixed, verified bookings | Built as 0.108.0, not installed (needs Paul's approval) |
| Advent on Orbit | 1 to 25 December, one confirmed Christmas film a day with a numbered door ident; Door 25 special. Design in docs/advent-on-orbit-proposal.md |
Read-only proposal; not implemented or scheduled |
| After Dark: The Naughty List | December weeknights at 23:00, adult Christmas horror with its own ident; returns each year. Proposal in docs/after-dark-naughty-list-proposal.md |
Read-only proposal |
| Anthology awareness | A reusable rule: anthologies shuffle, while stories and linked episodes stay protected; evidence-based, proposed for approval. Investigation in docs/anthology-awareness-investigation.md |
Roadmap, read only |
| What's On | Confirmed broadcasts and cinema events together | After D and F |
Then the Vortex Prime and Afterburn ident package, as agreed.
Stage D design principles (Paul, 4 November 2026)
Stage D must place things by confidence and evidence, not genre matching.
- Obvious fits: an ocean ecosystems documentary is an obvious Terra candidate.
- Fits beyond genre: the evidence can point past the genre. The X-Files can fit Paradox, and a true-crime documentary about an unexplained disappearance may belong on Dark Files rather than Evidence.
Explain and flag:
- Every suggestion names its channel and says why, from the evidence: what it resembles in the channel's list, its themes and tone, its runtime and its rating.
- Each suggestion has a confidence.
- Ambiguous material is flagged as ambiguous, with its two or three possible channels. It is never confidently placed somewhere inappropriate.
A lifecycle for each discovery: Detected → Verified → Proposed → Approved → Booked → Aired.
- The state is kept per work, with the date of each step.
- A rejected or parked work isn't suggested again unless its evidence changes, for example new episodes arrive.
- This keeps the roughly 160 additions trackable.
Three separate signals: these never merge into one "new" label.
- New to Emby: first seen in the library.
- Newly released: its premiere date is recent.
- New to Orbit: it hasn't aired on the network yet.
Stage C already keeps these three apart (New to the library, Newly released, Not yet shown on Orbit). Stage D will build on its booked-0.json and an aired record.
Stories the numbering hides (Paul, 4 November 2026): some stories in the library aren't numbered as next to each other, so Stage A's rule rightly leaves them apart.
- Batman: The Animated Series lists The Cat and the Claw as E1 and E8, and Robin's Reckoning as E51 and E53.
- A part whose partner is missing from the library is the same case, for example Spider-Man's Six Forgotten Warriors (1).
The intelligence layer should notice these from matching titles, then propose them as possible stories with the evidence, for approval. It must never pair them on its own.
Serial slots (Paul, 4 November 2026): today a story is booked whole and back to back, or not started when it doesn't fit.
The intelligence layer should also know a show's regular slots. Suppose Doctor Who has two slots on Paradox and part 1 airs in the first one. Part 2 could then go in the second slot, or in the show's next slot, like a serial. That suits stories too long for one block, and channels that run a show at a fixed time.
The setting would be chosen per channel or per show, by Paul. The guarantees stay the same:
- parts in order;
- no gaps of more than a day or so;
- never a later part without the earlier one.
The director arranges events for the viewer (Paul, 4 November 2026): the same discovery that found the ten Drive-In events can later arrange them for the person watching. It would weigh:
- the tickets they buy;
- which events they actually watch;
- the themes they skip.
It would then propose, and later book, more of what they enjoy. It follows the programming director's existing rules: local only, explainable, settings of Familiar, Balanced or Surprise Me, and learning that can be turned off or reset.
Paul's refined vision for Stage D (4 November 2026, 23:01): the intelligence layer exists to reduce choice paralysis and editorial workload. It must not swap scrolling through Emby for scrolling through a giant Suggestions screen.
-
Better evidence (approved).
- What: descriptions, tags, keywords, leading cast, directors, and verified franchise relationships where provider data supports them.
- How: read-only, resumable, and efficient for large libraries.
- Missing isn't negative: missing metadata is kept apart from negative evidence. An absent genre, description or cast never disqualifies on its own.
-
Better channel understanding (approved, read-only scoring). Profiles follow each channel's editorial brief, not its most common pool genres:
- Paradox: supernatural, speculative, sci-fi, unusual scripted mysteries; not generic drama.
- Evidence: fictional police, forensic and investigative procedurals.
- Dark Files: factual crime, disappearances, the unexplained, paranormal documentaries.
- Terra: wildlife, oceans, ecosystems, natural history.
- Odyssey: science, history, exploration, travel.
- Orbit Wild: wilderness, survival, adventure.
- Vortex: action anime and its approved blocks.
- After Dark: cult, obscure, international and unconventional horror cinema.
Scoring uses descriptions, themes, format, identity, era and ratings. Nostalgia eras are kept, but Premiere, Action, Sci-Fi and Horror welcome current releases.
-
Reduce human workload (design only for now). Confidence tiers:
- routine, clearly suitable additions;
- interesting editorial opportunities, worth presenting;
- ambiguous or unsuitable, needing more evidence or no action.
Paul must never review hundreds of routine titles. Later, optional automatic approval for routine high-confidence additions within explicit channel policies, with logging, reversibility and a global off switch. Not authorised to run automatically yet. Premieres, new identities and unusual events keep their approval rules.
-
The Director's Desk, not a Suggestions screen. A compact summary with:
- new discoveries;
- strong matches;
- a few worthwhile premieres and specials;
- ambiguous titles needing attention;
- recent decisions.
Familiar, Balanced and Surprise Me stay, with Balanced the default. It learns from decisions without a preference bubble.
Safety:
- never rewrite committed bookings;
- never confuse newly added, newly released, newly playable and first-on-Orbit;
- never assume something plays from its file extension;
- local, explainable, no mandatory cloud AI.
Later: within each channel's rules, approved kinds of suggestion may be booked without asking each time. Every booking still carries its explanation.
What stays as it is
- Committed bookings, including the stranded Doctor Who parts already booked this week.
- No automatic changes: every stage is proposed, replayed and approved before it's built, and installed only with your OK.
- Snapshots: the cutover snapshots stay until you approve their removal.