---
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

<!-- SECTION:DESCRIPTION:BEGIN -->
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
<!-- SECTION:DESCRIPTION:END -->

## Implementation Notes

<!-- SECTION:NOTES:BEGIN -->
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)
<!-- SECTION:NOTES:END -->
