--- id: TASK-HIGH.3 title: 'Zoom-aware drag, collision fix, Unicode escape cleanup' status: Done assignee: [] created_date: '2026-02-28 00:52' updated_date: '2026-02-28 00:52' labels: [] dependencies: [] parent_task_id: TASK-HIGH --- ## Description Fix three canvas/rendering issues: (1) Shape drag now accounts for canvas CSS transform scale so elements track cursor at all zoom levels, (2) Collision resolution uses minimum penetration depth instead of movement-direction bias preventing elements from flipping sides, (3) Replaced all surrogate pair escapes with actual Unicode emoji across 64 files ## Implementation Notes Committed 9742bd1, merged to main 1165a7f, deployed. Key changes: lib/folk-shape.ts (#getParentScale method, minimum penetration collision algo), 60+ lib/modules/shared/server files (unicode emoji cleanup)