Skip to content

Reliable dashboard drag routing (v1.3.5)#84

Merged
Krippler merged 2 commits into
mainfrom
claude/dashboard-drag-path-fix
Jul 17, 2026
Merged

Reliable dashboard drag routing (v1.3.5)#84
Krippler merged 2 commits into
mainfrom
claude/dashboard-drag-path-fix

Conversation

@Krippler

Copy link
Copy Markdown
Owner

Bug

In a two-column layout on a 3-column-capable screen, a card from the right column often couldn't be dragged into the far-right "+" rail to create a third column (or into an adjacent column). The per-column dragover handler required landing the cursor precisely inside a thin column/rail, and the flex gaps between columns were dead zones.

Fix

Replaced the per-column handler with a single dashboard-level X-band router: the visible columns tile the full dashboard width (a column owns everything up to its right edge; the rightmost — often the empty + rail while dragging — owns everything beyond). The card is then positioned within the target column by Y. No dead gaps, and robust to the layout reflowing mid-drag.

Verification

Headless browser at 1940px with realistic multi-step drag paths (dragstart on the handle → stream of dragover along the path → dragend), using real elementFromPoint hit-testing:

  • Right-column card → new 3rd column (the reported bug)
  • ✅ Left-column card → new column
  • ✅ Right-column card → shorter left column (low Y)
  • ✅ 122 tests green

Note: updating the existing 1.3.4/latest in place isn't possible from CI here (the sandbox proxy blocks git tag force-push — verified 403 — and I can't push Docker images), so this ships as 1.3.5. On merge the auto-release publishes 1.3.5 / 1.3 / 1 / latest.

🤖 Generated with Claude Code


Generated by Claude Code

claude added 2 commits July 17, 2026 14:16
The per-column dragover handler made dropping into an adjacent column or
the far-right new-column rail unreliable: you had to land the cursor
precisely inside a thin column/rail, and the flex gaps between columns
were dead zones. Dragging a card from the column adjacent to the rail
(e.g. the right column when creating a third) frequently wouldn't take.

Replace it with a single dragover/drop router on the #dashboard element
that routes by X-band: the columns tile the full width (a column owns up
to its right edge; the rightmost owns everything further right), then the
card is positioned within the target column by Y. No dead gaps, robust to
mid-drag reflow.

Verified in a headless browser at 1940px via realistic multi-step drag
paths: right-column card -> new 3rd column (the reported bug), left-column
card -> new column, and right-column card -> shorter left column all work.
Flip CHANGELOG + bump banners for the dashboard drag-routing fix (the
per-column dragover made dropping into an adjacent column or the
new-column rail unreliable; replaced with a dashboard-level X-band
router). Banner/pins 1.3.4 -> 1.3.5.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013ffp2b19PUmzEU1fxpnURA
@Krippler
Krippler merged commit c76ef04 into main Jul 17, 2026
2 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.

2 participants