Skip to content

perf(episode): render before the seasons list resolves - #347

Merged
glpecile merged 1 commit into
mainfrom
perf/episode-first-render
Oct 28, 2026
Merged

glpecile merged 1 commit into
mainfrom
perf/episode-first-render

Conversation

@glpecile

Copy link
Copy Markdown
Owner

Episode details waited for the complete seasons catalogue even after the opened episode was ready. Render that episode first, defer its neighbors, and track the settled episode by identity as the catalogue arrives.

On Android, remount the pager when the catalogue becomes available so Fabric applies the expanded content and selected offset together. iOS keeps the page mounted. The existing Android solution documents the layout constraint.

Validation: delegated correctness and complexity reviews, UI review, 1,557 passing tests, lint, type checking, whitespace checks, and all 12 external URL probes. Live iPhone simulator checks exercised a single-page-to-816-episode expansion at S10E4, Next to E5, and a swipe back to E4, with no captured console warnings.

Android runtime QA could not complete because the emulator runtime stopped answering CDP; restart recovery was aborted. Android's one-time pager remount can reset vertical reading position, expanded content, and accessibility focus when seasons arrive; preserving those transient states is deferred. Web and release-device QA and latency measurements were not run. Source-only changes hot reload and require no native rebuild.

@glpecile

Copy link
Copy Markdown
Owner Author

Review findings from GPT-6, posted on behalf of Gian.

  • Correctness review found an Android Fabric offset race when the seasons list expands. Fixed by remounting the horizontal pager with its final content and initial offset on Android. The reviewer approved the final diff.
  • Complexity review found no issues.
  • UI review identified the transient reading-state reset caused by remounting. Restricted the remount to Android so iOS retains its state. The remaining Android reset is documented and deferred because avoiding the native offset race takes priority; preserving local state would need wider state ownership changes. UI review accepted this scoped tradeoff with no remaining blockers.

@glpecile
glpecile merged commit c568036 into main Oct 28, 2026
3 checks passed
@glpecile
glpecile deleted the perf/episode-first-render branch October 28, 2026 02:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant