Files
OrbitTv/VERIFICATION-0.11.0.md
pauljdandClaude Opus 5.5 934f82d805
pauljd/davidson-ci: Davidson CI / quality (push) Failing after 1m48s
pauljd/davidson-ci: Davidson CI / ai-review (push) Successful in 49s
Orbit TV at 0.16.0-tuning-screen
First commit, imported from the working folder: Android TV app, loopback
guide server, design sources and per-release verification notes.

Includes the 0.16 tuning screen, built and tested but not yet confirmed
on the box.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-11-01 17:25:30 +00:00

3.1 KiB
Raw Permalink Blame History

Orbit TV 0.11.0 — playable channel 103

Approved scope: create a repeating clock-based channel from the checked sample of one to three approved series. Flow: sign in → check shortlist → approve versions → check sample episodes → Create playable 103 → Watch channel. Existing channel 101 can also be built in the session; the guide header offers switching between 101 and 103 when both exist. This is a guide switch, not yet channel-up/down remote tuning. Channel 102 and adverts remain future work.

A session retains the latest checked episode metadata (maximum three series × five episodes). The builder interleaves each show's returned sample in ascending season/episode order, e.g. A1,B1,C1,A2,B2,C2, continuing remaining shows when sample lengths differ. Missing season/episode, specials (season zero), duplicate positions or duplicate IDs reject the build rather than inventing order. Only the returned sample is ordered; earlier library pages/episode gaps are not discovered or repaired. The complete sample repeats, returning to each show's first sampled episode on the next cycle. No persisted viewing progression or complete-library episode rotation is claimed.

At most 15 PlaybackInfo metadata probes, IsPlayback=false, no live opening/transcoding. Every sampled episode must offer an eligible direct source and valid runtime; an unsupported episode stops the build rather than skipping ahead. Source runtimes and IDs are locked into the timeline. The existing UTC clock, join-in-progress seek, boundary handover, Now/Next, transition check, manual joining Retry and green number overlay are reused; overlay reads 103 for this channel. Decoder compatibility is still a hardware question.

Playback authorization now additionally accepts canonical episode records from the current checked page or retained built-103 lineup. Arbitrary IDs still fail before any request. These allowlists are bounded (at most 15 checked + 15 built episode records), in memory only, cleared at sign-out. No private catalogue or video was accessed by development tools. Actual watching sends normal Emby playback reports and may update watch history; transition check remains explicitly labelled.

Validation: offline assembleDebug, testDebugUnitTest and lintDebug passed. 66 tests passed, zero failures/errors. New fictional fixtures cover interleaving uneven series, rejecting unknown/special/duplicate order, 15-item schedule cap and clock boundaries, episode allowlisting, IsPlayback=false probes, source runtime preference/locking, and stopping at an unsupported episode. Source reviewed for boundedness, temporary ownership, guide navigation and API scope. Signature verified. Provider eligibility, 103 playback/rollover and 101↔103 navigation still require the Xiaomi remote test after installation.

No dependency/device permission, VPS/firewall/service, full importer or persistent credential changes. Previous Emby playback API references remain applicable: https://dev.emby.media/reference/RestAPI/MediaInfoService/postItemsByIdPlaybackinfo.html https://dev.emby.media/doc/restapi/Playback-Guidelines.html