Build ErsatzTV Image / Build & test (.NET) (pull_request) Successful in 7m30s
Build ErsatzTV Image / Docs update reminder (pull_request) Successful in 11s
Build ErsatzTV Image / EF migration integrity (SQLite + MySql) (pull_request) Successful in 9m53s
Build ErsatzTV Image / Build & push image (amd64) (pull_request) Has been skipped
Adversarial review of #220 found in-grid episode card clicks never scrolled/highlighted: navigateToPath() (routing.ts) does pushState + a synthetic popstate, not a real hash change, so the anchor effect's hashchange-only listener never fired for same-pathname navigation. Now listens to both hashchange and popstate. Also: track the last anchor value actually scrolled to so a refetch/pagination that recreates the items array (anchor unchanged) doesn't hijack scroll position; document the known CHILD_PAGE_SIZE deep-link limitation (parity with the Blazor fragment link); and fix the MediaPosterCard/shell.css comments that described the highlight ring as "temporary" when only its glow pulse fades, not the ring itself. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>