Skip to content

VIEW-3: re-fit camera on significant viewport resize (stale-size saved camera)#108

Merged
mvalancy merged 1 commit into
devfrom
fix/camera-resize-refit
Jun 18, 2026
Merged

VIEW-3: re-fit camera on significant viewport resize (stale-size saved camera)#108
mvalancy merged 1 commit into
devfrom
fix/camera-resize-refit

Conversation

@mvalancy

Copy link
Copy Markdown
Member

The per-graph saved camera was restored even after the window was resized/rotated → graph mis-framed for the new size (audit exposed it across resolutions).

  • Saved camera is now stamped with viewport size; on restore a >20% size mismatch is treated as stale → fresh fit.
  • A ResizeObserver on the graph container re-frames on a >20% size change (debounced), covering resize/rotate/panel-toggle. (The window resize event didn't fire in headless tests; the observer is reliable and also catches layout-driven size changes.)

Test: camera.spec "re-frames after a significant viewport resize" — pan off-screen → shrink window → re-framed. 5/5 camera tests pass. Typecheck clean.

🤖 Generated with Claude Code

…ze saved camera

The per-graph saved camera was restored even after the window was resized/rotated,
leaving the graph mis-framed for the new size. Now:
- the saved camera is stamped with the viewport size (w/h); on restore, a >20%
  size mismatch is treated as stale → fresh fit instead of the old transform.
- a ResizeObserver on the graph container re-frames on a >20% size change
  (debounced 250ms), covering window resize / rotate / panel toggle. (Window
  'resize' alone didn't fire in headless tests; the observer is reliable and also
  catches layout-driven size changes.)

Test: camera.spec "re-frames the graph after a significant viewport resize"
(pan off-screen → shrink window → graph re-framed). 5/5 camera tests pass.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

🧪 Comprehensive Test Suite

  • Unit suites (Node 18.x & 20.x) — core, web, server, mcp-server: ✅ passed
  • Installer & deploy config: ✅ passed

Full-stack smoke gate runs in the CI workflow.

@mvalancy mvalancy merged commit d57128c into dev Jun 18, 2026
16 checks passed
@mvalancy mvalancy deleted the fix/camera-resize-refit branch June 18, 2026 07:25
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