Repository navigation
ScreenHarbour 0.2.50 — stop seasonal TV navigation bouncing
Pre-releaseScreenHarbour 0.2.50 — prerelease
Fixes seasonal rows bouncing up and down when moving Left/Right on TV. Jellyfin’s native scroll manager schedules its own focus-centering animation after a card receives focus. That movement competed with ScreenHarbour’s seasonal-row alignment, even when CSS smooth scrolling was temporarily disabled.
Seasonal card scrollers now use Jellyfin’s existing custom-scroll contract on both axes. ScreenHarbour keeps the selected item visible and positions the row without the delayed native animation pulling it away again. Other Jellyfin scrollers keep their existing behavior.
Left/Right movement adjusts only the horizontal position. Entering or leaving a seasonal row gets one bounded final visibility check after any earlier native animation finishes. It does not restart on each horizontal keypress, follow an abandoned selection or survive leaving the page.
The previous release’s checks covered CSS smooth scrolling but missed Jellyfin’s JavaScript scroll animation. This release adds regressions using the Jellyfin 12 scroll manager to exercise that interaction.
All saved settings, row positions, seasonal dates, expansion choices, themed headings, frames, doors, ranks, shuffle choices, local fonts and smaller lazy-loaded TV images are preserved. No configuration changes are needed.
Update
Update ScreenHarbour, restart Jellyfin, then fully reload browsers or close and reopen web-based TV clients. Keep File Transformation enabled.
| Jellyfin server | Plugin version |
|---|---|
| 10.10.7 | 0.2.50.1 |
| 10.11.x | 0.2.50.2 |
| 12.x | 0.2.50.3 |
The existing catalogue remains:
https://raw.githubusercontent.com/jampez77/ScreenHarbour/main/manifest.json
Plugin identity, assembly name, existing API routes, storage keys and settings remain unchanged.
Validation
- Typecheck, 254 unit tests and 801 server checks passed.
- All 263 selected Home, seasonal and provider browser checks passed. Fourteen checks needing optional external Featured/ElegantFin fixtures were skipped.
- Eighteen regressions run Jellyfin 12’s actual, pinned scroll manager. The old build reproduced 54–84px vertical jumps; the corrected build remains stable during horizontal navigation. Coverage includes static/parallax scenes, expansion sizes, document/nested scrolling, missing
preventScrollsupport, rapid entry/exit, subsequent seasonal rows, route cleanup and zero vertical page/ancestor writes on horizontal keys. - The native source is verified by SHA-256 and fetched from its pinned upstream commit when a local audited copy is absent. That download path was also checked.
- All three packages are verified for assembly identity/version, embedded client/assets/fonts, licences and checksums. The catalogue preserves all 150 previous entries unchanged.
- Physical LG webOS behavior still needs confirmation after installation.