Release gate for the next release (first one to ship #1158). #1158 virtualizes Guided Review file cards: only cards near the viewport keep a mounted diff (max 8), everything else renders as a placeholder and mounts on approach. The evict/remount band is exactly where regressions would live, and automated coverage exercises it through a fake IntersectionObserver, not a real browser. Before cutting the release, run a Guided Review on a large changeset (40+ files, ideally a real branch diff) and manually verify: - [ ] smooth scroll through the whole guide, no jumpiness or blank cards that never mount - [ ] open an annotation composer, type, scroll far away and back: draft and toolbar survive (pinning) - [ ] collapse and mark-viewed on several cards: no visible remount flash, state survives scrolling away and back - [ ] reviewed-state progress counts stay correct after heavy scrolling - [ ] reopen a saved guide mid-progress: scroll position and reviewed state restore - [ ] search (Cmd+F in-app) for text in an offscreen file: card mounts, match highlights, page reveals it - [ ] AI markers render in guide diffs and clicking one opens the history - [ ] memory/CPU sanity vs pre-virtualization on the same guide (should be clearly better, not worse) Known accepted trade-off, do not report: browser-native find-in-page cannot see unmounted cards. Follow-ups already logged in #1158 review comments (search-reveal focus steal, cosmetic nits) are not part of this gate.