Skip to content

2026.7.6

Pre-release
Pre-release

Choose a tag to compare

@thatcube thatcube released this 18 Jul 19:55

TestFlight build 10 — 2026-07-06

What to Test:

  • Hero on home - try customizing it and make sure all functionality works- Seerr integration - request media from the hero or search - the button should update status of downloads- Reorganized settings - still needs work, but making improvements- Choose to merge or not to merge your home page- Select which rows appear on home

Changes (162):

  • polish(music): genre tiles — no truncation, position-based colours, more icons
  • Remove stale mpv references from source, tests, and the compliance notice
  • fix(music): rewrite genre cards — colourful tiles, no render-server freeze
  • Refine discovery discriminator so owned featured titles keep Play/Watchlist
  • fix(music): stop genre grid freezing (live glass at rest) + bare white surface
  • refactor(ui): genre cards use the poster cards' focus treatment
  • refactor(ui): round genre cards via the shared scale
  • refactor(ui): rounder shared radius scale, applied across chrome
  • Refresh a discovery title's Seerr status when its detail page (re)opens
  • refactor(ui): shared corner-radius scale + concentric preview cards
  • Add "Not in Your Library" Seerr results to Search + request-focused discovery detail page
  • refactor(settings): placeholder spoiler tiles show generic series art, not a number
  • refactor(settings): render spoiler-mode preview as a 3-episode rail
  • feat(settings): live preview cards for the Spoilers "Mode"
  • fix(settings): show Hero Featured unchecked while disabled (no Seerr)
  • feat(settings): gate Hero "Featured" on Seerr; pin it last in Sources
  • refactor(settings): merge Hero "Items" into a "Rotation" section
  • refactor(settings): drop the Auto-Advance description
  • refactor(settings): distinguish section descriptions from headers; cut redundant ones
  • refactor(settings): uppercase section headers + 80pt section spacing
  • refactor(settings): define a type hierarchy + simplify Hero Sources to checkmarks
  • refactor(settings): one master row per feature — Hero & Spoilers get full-pane forms
  • refactor(settings): consolidate profile settings from 7 rows to 5
  • refine(playback): fine-grained rewind ladder (1s to 10, 5s to 30, 15s to 60)
  • refine(playback): rename to "Rewind on resume", add 60s, live helper text
  • feat(playback): add per-profile "resume rewind" setting
  • Address remaining review nits: ThemePalette.init access + seed-after-discovery
  • Address code-review findings: seeding, cached snapshot, unmerged mutations
  • Music Player settings: land on style cards on entry via focus-gated toggle
  • Music Player settings: focus the style cards first on right-press
  • Preview cards: drop the selection checkmark
  • Music swatch: brighter Dark, colorful OLED, larger album-matched blobs
  • Music swatch: artwork-tinted background like the real player
  • Music swatch: add a shadow to the scrub bar for visibility
  • Music swatch: white seek bar, album shadow; keep card titles one line
  • Add music-player style preview cards; merge into one Music Player row
  • Theme swatches: taller windows, two tall tiles, no faux text lines; reorder
  • Make settings/nav row focus instant (no easing)
  • Theme swatches: two wider poster tiles, shorter previews
  • Add compact theme picker to Settings; share card component via CoreUI
  • Theme picker: let focus reach Continue from the edge cards
  • Fix System theme via downward colorScheme env instead of preferredColorScheme
  • Fix System theme staying stuck when switching from Light/Dark
  • Theme picker: System swatch is one UI split down the middle
  • Theme picker: tint the active card so selection is obvious
  • Theme picker: neutral factual copy, profile-aware title, no sub-header
  • Theme picker: theme-independent preview swatches, no icons, fun 2-line copy
  • Theme cards: use About-panel focus outline via custom ButtonStyle
  • Theme picker: fix live background, whole-card focus outline, "Choose theme" title
  • Show theme picker after creating a profile in-app
  • Default to Dark theme + add first-run theme picker
  • Fix Home row focus jumping to the opposite side on vertical navigation
  • Hero Info: resolve to the real library copy before navigating
  • Hero series Play now plays next-up episode directly (Info still opens detail)
  • Hero series Play: navigate to the real library copy, not the Discover stub
  • Hero: route a series Play to detail (next-up); remove play diagnostics
  • Fix hero Watchlist play, cache-proof: strip un-playable Discover source at play time
  • Fix 'Can't play' on owned hero Watchlist items: drop un-playable Discover self-source
  • Subtitles: add 40pt above the per-type override section
  • Settings: stop labels wrapping; add space under Circadian mode description
  • Settings: right-align dropdown menu buttons in labeled rows
  • Settings: hide Background Trailers until supported; merge audio rows into one 'Audio defaults'
  • Unmerge Home: seed all per-library rows on the first time merging is turned off
  • Settings detail: reduce description-to-content gap from 80pt to 40pt
  • Settings: wrap every checkmark list in the shared bordered container
  • Settings detail: 80pt gap under the description; add Seerr to Trackers subtext
  • Settings split pages: one page header atop the nav list, drop section subheaders
  • Settings split pages: flush-right detail panel with generous content insets
  • Settings split pages: detail panel fill reaches the page top/bottom
  • Settings split pages: chevron-free nav + full-height detail panel with a single left divider
  • Settings split pages: narrower master, larger detail pane
  • Customize Home: rename 'Featured Hero' to 'Hero' and tidy its hierarchy
  • Your Libraries: title -> 'Show or hide libraries and change who you watch as'
  • Your Libraries: say 'each library' not 'each server' in the info panel
  • Your Libraries: shorten the info panel copy
  • Plex 'Watching as' page: use the shared settings content width
  • Your Libraries: one info panel instead of a caption under every toggle
  • ProviderBrandMark: render the Plex logo ~8pt larger without resizing its frame
  • Settings provider marks: drop the circle, use larger bare logos
  • Provider marks: circular backgrounds in Home-rows cards + more logo padding
  • Customize Home + Your Libraries: one-line source headers, larger provider logos
  • Customize Home: group all row toggles into one grouped, bordered view
  • Fix Watchlist ghost gaps: merge same-title copies by global Plex guid
  • Fix empty Plex watchlist: use Discover host + tolerate string media ids
  • Add watchlist counts to Home boot telemetry
  • Fix: global Recently Added row missing on unmerged Home
  • Rework unmerged Home: Customize Home screen + lean, opt-in library rows
  • Keep music libraries off Home (they live in the Music tab)
  • Exclude Plex auto-generated person hubs from library sections
  • Add "Merge Continue Watching" toggle; fix duplicate per-library CW rows
  • Polish hero layout/dissolve and harden the Home content cache
  • Drop sparse Plex discovery hubs (require >=3 items)
  • Add per-profile "Merge libraries on Home" toggle with unmerged per-library sections
  • Cap hero paging dots at 8 with a scrolling windowed indicator
  • Pin hero content block so paging no longer shifts the dots/buttons
  • Fix hero paging-dots vertical jitter on page transitions
  • Stop hero paging dots from shimmering during the backdrop wipe
  • Paint Home hero + Continue Watching instantly on launch
  • Revise beta installation instructions in README
  • Revise README to reflect current state of the app
  • Fix Settings focus-flip crash by narrowing library-state observation
  • Add env-gated PLOZZ_FORCE_CRASH_REPORTING for on-device crash capture
  • Revert "Stop animating hero pills on focus change (fixes focus-flip UAF crash)"
  • Stop animating hero pills on focus change (fixes focus-flip UAF crash)
  • Smooth out A-Z rail scrolling and prefetch jump targets
  • Fix hero focus-transition crash: stop needless item-id churn
  • Keep hero paused across an item-set swap while receded
  • Drive hero auto-advance pause off recede (down-only), not focus-nil
  • Address code-review findings on the featured-hero CTA
  • Simplify hero action row; add focus-away auto-advance pause + test flag
  • Address code-review: autoclosure emit + accurate reassert comment
  • Featured hero: live in-place refresh of Seerr status/progress
  • Reassert hero focus after a page to fix intermittent focus loss
  • Featured hero: only show "Downloading" when actually downloading
  • Hide tvOS fast-scroll index bar behind the A-Z rail
  • Pin hero action-row width so a page can't move the focus target
  • Fix featured hero CTA: untracked → Request, gate on configured
  • Fix intermittent hero focus loss on button-count-changing pages
  • Featured hero: Play / Request / live download progress via Seerr
  • Fix scroll-indicator hider being lazy-culled; also push indicator off-screen
  • Add PLZHFOCUS on-device instrumentation for hero carousel focus loss
  • Hide tvOS scroll bar every frame via display link; drop rounded rail font
  • Share the resume progress indicator between the hero and item detail
  • Reliably hide tvOS scroll indicator (KVO), enlarge rail letters, reveal on scroll
  • Make Home hero Play/Resume label watch-progress aware
  • Hide native scroll indicator via UIScrollView probe; shift rail into gutter
  • Fully suppress native scrollbar under alphabet rail
  • Home hero: plain-glass Play pill + icon-only More Info
  • Home hero: scroll-driven recede + smooth, jank-free transition
  • Show every loading message once via persistent shuffle bag
  • Tidy alphabet rail: hide native scrollbar, sit in gutter
  • Expand playful loading messages to 387 curated entries
  • Add Infuse-style alphabet fast-scroll rail to library browse
  • Home hero: parallax-wipe tuning, glass progress dots, pause-on-input
  • Home hero: make the parallax wipe a true reveal (Apple TV feel)
  • Home hero: replace backdrop crossfade with Apple TV parallax wipe
  • Clarify "sync across all my servers" description
  • Rename Seerr settings row from "Overseerr / Jellyseerr" to "Seerr"
  • Add LAN auto-discovery for Seerr servers
  • Hero: rebuild backdrop transition as one continuous strip position
  • Hero: drive backdrop crossfade in UIKit (Core Animation), not SwiftUI
  • Hero: commit filmstrip window shift up front, drop the settle completion handler
  • Fix Seerr connect defaulting a bare host to https, breaking LAN servers
  • Hero: replace two-layer wipe with a single-offset filmstrip
  • Hero: force the incoming backdrop to draw on top (fix wrong-order wipe)
  • Hero: auto-advance while focused, not only when unfocused
  • Hero: stage incoming backdrop art a frame before the push
  • fastlane: auto-select a release Xcode so TestFlight uploads never hit beta-SDK rejection
  • Add SMB share support with SMB3 and clearer connection errors
  • Persist watch outbox, identity index & anime id map to Caches on tvOS
  • Share watch state: persist to Caches on tvOS + render progress bar
  • Home: silently re-aggregate when a brand-new resume matches no loaded card
  • Add keyless overview/description enrichment for share items
  • Share watch status: guarantee resume persists + diagnostics + episode order
  • Share: reconnect a dead SMB session instead of failing every listing
  • Tests: update ProviderKind allCases for second-class mediaShare kind
  • Add Seerr (Overseerr/Jellyseerr) discovery integration (Phase 1)
  • Share: thread capturedAt through played writes for correct last-writer ordering
  • Add local watch status for SMB shares
  • Fix SMB share review round 2: IPv6 parse-back, filename parsing, teardown
  • Add metadata for SMB share video files
  • Fix SMB share review round 1: focus trap, IPv6, actor serialization