Skip to content

[codex] Add minimap double-click canvas navigation#222

Merged
DeadWaveWave merged 3 commits intoDeadWaveWave:mainfrom
eatchip:feat/doublecheck-minimap
May 2, 2026
Merged

[codex] Add minimap double-click canvas navigation#222
DeadWaveWave merged 3 commits intoDeadWaveWave:mainfrom
eatchip:feat/doublecheck-minimap

Conversation

@eatchip
Copy link
Copy Markdown
Contributor

@eatchip eatchip commented May 2, 2026

💡 Change Scope

  • Small Change: Fast feedback, localized UI/logic, low-risk.
  • Large Change: New feature, cross-boundary logic, runtime-risk (persistence, IPC, lifecycle, recovery).

📝 What Does This PR Do?

Adds a faster minimap navigation gesture for the infinite canvas: users can now double-click a region in the bottom-right minimap to center the main viewport on that area without changing the current zoom level.

This keeps the existing node-focus behavior intact while introducing a separate viewport navigation semantic for region jumps. The implementation also adds web-canvas regression coverage for the new interaction.


🏗️ Large Change Spec (Required if "Large Change" is checked)

1. Context & Business Logic

The workspace canvas already supports minimap pan and zoom, but it lacked a fast way to jump to a distant area. This PR adds a minimap double-click interaction that re-centers the viewport on the clicked flow position while preserving the current zoom ratio.

2. State Ownership & Invariants

  • Viewport state remains owned by React Flow plus the existing renderer-side viewportRef / onViewportChange synchronization path.
  • Double-click minimap navigation must only change viewport translation; it must not normalize or override the current zoom.
  • Existing minimap single-click, pan, and zoom interactions must remain intact.

3. Verification Plan & Regression Layer

The behavior is locked down at the E2E layer with a web-canvas Playwright regression that zooms the canvas, double-clicks a distant minimap region, and asserts that the viewport center moves while the zoom value stays unchanged.


✅ Delivery & Compliance Checklist

  • My code passes the ultimate gatekeeper: pnpm pre-commit is completely green.
  • I have signed the CLA if required (see CLA.md).
  • I have included new tests to lock down the behavior (or explicitly stated why it's untestable).
  • I have strictly adhered to the DEVELOPMENT.md architectural boundaries.
  • I have attached a screenshot or screen recording (if this touches the UI).
  • I have updated the documentation accordingly (if adding a feature or changing a contract).

📸 Screenshots / Visual Evidence

UI interaction change. Screenshot or recording will be attached in the GitHub PR UI.

Screen.Recording.2026-05-02.at.6.48.02.PM.mp4

@CLAassistant
Copy link
Copy Markdown

CLAassistant commented May 2, 2026

CLA assistant check
All committers have signed the CLA.

@DeadWaveWave DeadWaveWave marked this pull request as ready for review May 2, 2026 10:50
@DeadWaveWave DeadWaveWave merged commit c2acdfd into DeadWaveWave:main May 2, 2026
7 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.

3 participants