Skip to content

Stabilize code graph interactions - #262

Merged
forhappy merged 1 commit into
mainfrom
agent/stabilize-code-graph-interactions
Aug 19, 2026
Merged

Stabilize code graph interactions#262
forhappy merged 1 commit into
mainfrom
agent/stabilize-code-graph-interactions

Conversation

@forhappy

Copy link
Copy Markdown
Contributor

Summary

  • stop vis-network physics synchronously before a stabilized graph becomes interactive
  • automatically pause a running layout when the user hovers a node or starts dragging
  • keep the shared HTML export and VS Code graph behavior aligned
  • regenerate the embedded viewer bundle and add stationary-frame browser coverage

Root cause

The viewer published stabilizationIterationsDone to React before directly stopping vis-network. vis-network can continue its dynamic phase after that event, so the loading layer could disappear while nodes were still drifting. Explicitly resumed layouts also kept moving while the pointer approached a node, making click targets difficult to acquire.

User impact

Code nodes remain stationary once rendered. If a user explicitly runs the automatic layout, beginning a node interaction locks the current positions immediately, preserving reliable hover, focus, click, drag, and source navigation in both self-contained HTML exports and the VS Code extension.

Validation

  • npm run typecheck:js
  • npm run test:js
    • 196 shared viewer tests
    • 120 VS Code tests
    • 83 Chromium UX, accessibility, and performance tests
  • node scripts/check_viewer_assets.mjs
  • git diff --check

@forhappy
forhappy marked this pull request as ready for review August 19, 2026 03:32
@forhappy
forhappy merged commit 89a66cd into main Aug 19, 2026
13 of 14 checks passed
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