Skip to content

2026.7.29

Pre-release
Pre-release

Choose a tag to compare

@thatcube thatcube released this 29 Jul 09:29

TestFlight build 19 — 2026-07-29

What to Test:
Series detail: the hero-to-episodes transition has been rebuilt.

Please try, on a show with several seasons:
• Press Down from Play into the episodes, and Up again from a season chip.
Both directions should be one fluid motion, with the hero, logo, season bar
and episode row all moving together.
• Move up and down quickly and repeatedly. The page should never end up in a
half-finished state, and the season chips, Cast and Related should never
become invisible.
• Move left and right along the episode row, then up to the seasons. The page
itself should stay put.
• Open a show directly on an episode (from Continue Watching or search) — it
should arrive already showing the episode row.
• Check Cast and Related below the episodes, including on a show that has
neither.

Also fixed: the first season chip and the focused Play button are no longer
clipped on their left edge, and the episode rail's loading label is now
translated.

Changes:

  • l10n: translate the episode-rail loading label
  • tvOS: finish the series hero/episode-browser transition
  • tvOS: rebuild the series hero/episode-browser transition on a fixed stage
  • Align iOS episode rail with the Play target
  • Resolve episode entry and show rail skeletons
  • Open iOS series rails on the tapped episode
  • Render localized hero credit labels correctly
  • Keep iPad hero pull updates out of Home rows
  • Share pre-arrival source selection with iOS
  • Constrain Related skeleton to the rail viewport
  • Match Related skeleton and loaded rail geometry
  • Stabilize huge series rails and focus transitions
  • Choose the series source before opening detail
  • Window very large episode rails around focus
  • Keep Home hero recede smooth under heavy rows
  • Stop movie details shifting on cold open
  • l10n: record the new scan-label key in the source snapshot
  • l10n: mark the retired scan-phase strings stale
  • Stop a detail page re-laying itself out while you arrive on it
  • Build a detail page's view model once per page, not once per render
  • Give the card indicators the four fields they draw, not all 56
  • Stop the whole app re-rendering for one screen's data
  • Stop rebuilding the Home tab thousands of times a minute
  • build: localize features before main
  • fix: complete localization for settings UI
  • Say "Updating library" instead of naming a phase that hides the other
  • Load Related on movies, and size its skeleton to the real card
  • Mark a continuation on iPhone and iPad too
  • Mark a continuation on iPhone and iPad too
  • fix: restore continuation cues on Related cards
  • l10n: add reviewed Bulgarian, Finnish, Norwegian, and Simplified Chinese
  • l10n: add reviewed Hebrew, Slovenian, and Thai
  • l10n: format settings values in the app's selected locale
  • Keep the merged card and its server picker agreeing
  • l10n: preserve fragment spaces and multiline structure on import
  • docs: add structured translation correction issue form
  • l10n: add reviewed Catalan and Romanian
  • l10n: add reviewed Indonesian and Turkish
  • l10n: propagate RTL into the UIKit hero renderer
  • l10n: add reviewed Croatian, Malay, Slovak, and Ukrainian
  • l10n: mirror explicit Arabic and Hebrew app overrides
  • docs: add full and delta translation export commands
  • l10n: make full and delta translation packets reproducible
  • l10n: add reviewed Czech, German, Italian, and Swedish
  • build: prune locales removed from incremental app products
  • test: align language-picker coverage with release parity
  • l10n: add reviewed Danish, French, and Russian
  • l10n: make releaseReady equal the languages the OS actually ships
  • l10n: report corrections against the language actually on screen
  • l10n: add reviewed Dutch, Polish, and Brazilian Portuguese
  • l10n: put translation corrections one tap or scan away
  • l10n: reject translations that alter protected brands
  • l10n: report availability separately from native review
  • docs: make reviewed model translation the production system
  • ci: keep the translation importer attacks closed
  • l10n: make directional UI mirror in right-to-left languages
  • l10n: gate parallel translations through one deterministic importer
  • l10n: separate library names Plozz invents from ones the server supplies
  • l10n: audit the leaf modules, and stop showing users protocol diagnostics
  • l10n: extend the Spanish layout seed to the player and setup screens
  • l10n: seed Spanish for layout testing, and write down the trap
  • l10n: let DEBUG builds pick a language that isn't finished yet
  • l10n: fix a layout that broke on the first real translation
  • docs: how Plozz gets translated, and the gate before a language ships
  • l10n: split six English words that meant two different things
  • l10n: give translators the context they'd otherwise have to guess
  • tools: add a pseudolocalization pass to the tvOS deploy
  • l10n: make Top Shelf and the track menus follow the in-app language
  • l10n: finish CoreModels, and split copy out of the String pipelines
  • l10n: delete the dead ratchet, widen the eager rule, wire CI
  • l10n: migrate the copy the guard could not see in CoreModels
  • Fix CKSyncEngine delegate re-entrancy crash (SIGTRAP)
  • l10n: localize the permission prompts
  • l10n: clear the catalog of everything a translator can't act on
  • l10n: move plural selection out of Swift and into the catalog
  • l10n: migrate the prose the guard's new return-type rule found
  • fix(l10n): architecture review — guard blind spot, profile scoping, locale bugs
  • fix: the episode rail's opening scroll never ran at all
  • feat(l10n): finish the engineering pass — guard clean across all UI modules
  • fix: episode rail opens un-aligned, and season pages opening on "Mark as Watched"
  • feat(l10n): localize avatar categories; format skip intervals instead
  • feat: make Dynamic Type actually take effect, and extend it to the tvOS chip
  • feat(l10n): localize iOS shell and Music copy
  • feat(l10n): localize Home row headings and shared row components
  • style: +2pt on the resume chip bar, -2pt on the full-width card bar
  • style: back to the film glyph for "Go to Movie"
  • style: make the three navigation actions read as one family
  • feat(l10n): localize AppShell, Profiles, Auth and Discovery copy
  • feat(l10n): localize the in-player controls
  • style: use a stacked-play glyph for "Go to Show"
  • fix: label the episode navigation action "Go to Show"
  • fix(l10n): don't rebuild the whole view tree on a language change
  • fix: deepen the bottom card scrim so chrome reads consistently
  • feat(l10n): add the in-app language picker
  • style: translucent progress track again, dimmer resting foreground
  • fix: opaque tones for the shared media chrome, brighter at rest
  • feat(l10n): localize Settings option labels (the displayName category)
  • feat: settle the shared media chrome's white at rest on tvOS
  • feat(l10n): localize error messages, media actions, and CoreUI components
  • feat(l10n): migrate the Settings component layer (+102 strings)
  • feat(l10n): add the localization guard, and fix the bugs it found
  • fix: one shared scrim behind all bottom card chrome
  • style: shorten the resume chip's progress bar
  • style: 14pt progress bar, evenly spaced against the download badge
  • fix: pin the download badge, and stop the progress bar short of it
  • refactor: one full-width white progress bar on every browsing card
  • feat: show the white resume bar + time remaining on browsing posters
  • fix: pin the accent to a monochrome per-theme tone instead of the OS default
  • fix: scan progress bar rendered white on tvOS and blue on iPadOS
  • feat: make the scan progress panels focusable on tvOS
  • feat: real progress for share scans, and align the banner to the poster wall
  • refactor: move share scan progress from library tiles to the library page
  • feat: move share scan progress off Home into Settings + per-library progress bars