On a board with per-week frames laid out in columns, the user dragged one frame ("Week 6") so that it overlapped a second frame of the same size ("Week 1") by roughly 80%. After releasing, the two frames could no longer be moved independently: dragging either frame on the canvas moved both, and there was no way in the UI to separate them again.
Cause (from inspecting the geometry via the API): frame membership is geometric — a card is a child of a frame when its centre lies inside the frame's bounding box. When two same-size frames overlap enough, the centre of frame A falls inside frame B AND the centre of frame B falls inside frame A. The canvas drag logic then treats each frame as a child of the other, so a drag of either carries the other with it (and all of both frames' cards). Because they are mutually 'contained', the user can never drag one out — every drag moves both by the same delta, so the overlap is preserved forever.
Workaround used: via the API, moved one frame and its own cards to a free area with PUT /frames/{id} + bulk PUT /elements, after which the two frames drag independently again.
Steps to reproduce
1. Create two frames of the same size (e.g. 3790×1897) on a board, each with a few cards inside.
2. Drag frame A so it overlaps frame B by more than half of its width and height (so each frame's centre point sits inside the other's bounding box).
3. Release, then try to drag frame A (or B) away.
Expected
Frames should never be treated as children of other frames (the API docs say frames can't contain frames and /frames/{id}/add skips frame ids). Dragging one frame should move only that frame and the cards it contains; the second frame should stay put, or the canvas should refuse to let a frame's centre land inside another frame.
Actual
Both frames move together on every drag. The cards inside the overlap region are also claimed by both frames. There is no UI way to un-stick them — only an API/board.json edit fixes it.
Context
Feature area: canvas frames / drag. Board id SMA_11_Daily_Videos (sub-board). Frame ids d5963d9b42ca40a2ab84e543e45de5d9 (Week 1, 37 children reported while overlapping; 21 after separating) and aba7b1d585324ba684f28ffad4e1f940 (Week 6, 32 reported; 16 after). Before the fix: Week 1 at x 6670.8 y 43529.0, Week 6 at x 6903.7 y 43011.4, both 3790×1897 — each frame's centre was inside the other's bbox. Frames endpoint GET /frames/{id}/children returned the overlap cards for BOTH frames. Windows 11, backend at localhost.
Environment
App version: 10.9.0
Platform: Windows 11 (AMD64)
Response