fix(detect): silhouette-first edge snap + remove 1.5% inset v1.087 User report: auto-scanned documents lose their right edge (text column cut), and auto corners often land inside the paper. Root causes found and fixed: - CornerCandidates applied an unconditional 1.5% centroid inset to every AI detection. On forms whose content reaches the paper edge this cuts glyphs (~16px per side on a 2094px-wide page). Inset removed; the now-unused inset() helper deleted. - EdgeSnapper picked the strongest gradient along each normal scan. A black table border just inside the paper edge out-gradients the paper boundary, so the quad snapped inside the table and cropped content. New rule mimics human judgment of the paper silhouette: take the outermost "brightening inward" transition (background -> paper, directional gradient dot inward normal >= threshold); table borders and outer shadow edges are dark-inward transitions and are rejected. Falls back to the old strongest-magnitude rule when no directional candidate exists. Line fit gains median-residual outlier trimming with one refit. Validated empirically in the python spike (OpenCV) on the reported document across dark/light-gray/noise/shadow backgrounds: max corner error 19-91px (old) -> <=3.4px (new); right-edge intrusion eliminated. White-on-white remains physically undetectable at this layer (handled upstream by contrast-stretch redetect) and is no longer worsened by the inset. Constraint: TL,TR,BR,BL stay clockwise so +normal is always inward; fallback and CLAMP_FRAC paths preserve pre-rewrite behavior when the directional signal is absent. Confidence: high Scope-risk: module Reversibility: trivial Directive: verify on device with the reported insurance form; if a regression appears on glossy/dark documents, the fallback path is the first place to look. Tested: assembleDebug + testDebugUnitTest exit=0 (18 tests, EdgeSnapperTest 6/6 new); python simulation across 8 scenarios; reviewer agent pass (0 issues). Not-tested: on-device end-to-end with real camera captures. Related: docs/ENGINEERING_LOG.md section 1 (detection) 🐙 Autopus