# Direct manipulation correction On 2026-09-24 the user reported that the installed preview moved faster than their finger during an upward swipe, and clarified that momentum belongs after release while a held touch must directly control movement. Source inspection found the compositor normalized drawer travel over 60% of output height while Rust rendered 81% travel, multiplying displacement by 1.35. Shade used 55% against 65%, approximately 1.18 times displacement. `c5cf6146` aligns those denominators with the rendered panel geometry while leaving the separate 72-pixel release decision intact. The per-mille wire representation rounds position; native pixel checks allow two pixels. `python3 tests/test_card_shell_route.py` and `python3 tests/test_card_shell_reveal.py` pass (one test each). These prove existing route/cancel/protocol behavior, not the new geometric result. Native pixel regression, exact target build, installation and physical finger review remain open. The separate app-to-deck entry also used a 72-pixel visual travel and is being corrected independently. No physical acceptance task is closed by this source checkpoint. The combined correction is now built and installed; see `docs/evidence/coherent-shell/direct-drag/installed.md`. Native held-finger pixel checks pass in `docs/evidence/coherent-shell/direct-reveal-drag-qemu/README.md`. Physical finger acceptance remains pending.