You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tracking the minor, non-blocking follow-ups for Version Compare (PR #169, beta #167). None of these block the feature — grouping them so they don't get lost.
From the pre-merge review
Wipe stage blanks on stream-load failure — if either side's stream URL fails to load, the wipe view renders an empty black stage (no version badges, divider, or error text). Side-by-side degrades gracefully (badges + "Stream unavailable"); give wipe the same fallback.
setT re-renders the comment panels at rAF rate during playback — the transport's setT runs ~60fps while playing, re-rendering the whole CompareOverlay including both CommentPanels. Memoize the panels (or throttle the t that reaches them) so a long thread doesn't cost reconciliation every frame.
Thin unit-test spots — AnnotationOverlay's prop-vs-store selection has no direct test; the batched comment-tree builder's unit test uses a loose mock (asserts shape + query count, not table/filter identity).
Other polish candidates
Keyboard a11y — the version dropdown, wipe divider, and scrubber markers are mouse-only; add keyboard operation + focus states.
Drag-to-scrub on the compare scrubber (currently click-to-seek only).
Double-click-to-reset zoom/pan in wipe mode (side-by-side already resets on double-click).
Backend: Annotation.frame_number is never populated — the create payload only sends drawing_data, so frame_number is always null; wire it if we want frame-based annotation queries later.
Tracking the minor, non-blocking follow-ups for Version Compare (PR #169, beta #167). None of these block the feature — grouping them so they don't get lost.
From the pre-merge review
setTre-renders the comment panels at rAF rate during playback — the transport'ssetTruns ~60fps while playing, re-rendering the wholeCompareOverlayincluding bothCommentPanels. Memoize the panels (or throttle thetthat reaches them) so a long thread doesn't cost reconciliation every frame.AnnotationOverlay's prop-vs-store selection has no direct test; the batched comment-tree builder's unit test uses a loose mock (asserts shape + query count, not table/filter identity).Other polish candidates
Annotation.frame_numberis never populated — the create payload only sendsdrawing_data, soframe_numberis always null; wire it if we want frame-based annotation queries later.