fix(filter): adaptive magic-pro levels keep faint documents readable v1.101 Comparing our batch results against CamScanner on the same forms, the clearest everyday gap was not detection but the finish: Magic Pro's fixed levels (black 35 / white 205) crushed faint carbon-copy / thermal forms to near-white, while CamScanner kept the light ink readable. - magicPro now derives the black point from the document's actual ink density (5th-percentile luminance + 10, clamped 35..120) and the white point from the background (80th-percentile - 5, at least black+60). Dense documents land near the old black=35 (unchanged), faint ones lift the black point to preserve light strokes instead of clipping them. - Validated in the spike: on a real receipt/form the readable-ink ratio after the filter rose from 2.9% -> 7.7% and 6% -> 10.9% vs the old fixed levels, while normal-contrast docs look unchanged. Constraint: levels span is floored at 40 to avoid divide-by-small; black point clamped to 35..120 so dense docs keep current behavior. Confidence: medium-high (validated on real samples; user's exact faint originals not available) Scope-risk: local (magicPro only) Reversibility: trivial Directive: if a specific faint form still washes out, send its original and tune the percentiles. Tested: assembleDebug + testDebugUnitTest exit=0 (22 tests); spike readable-ink comparison. Not-tested: on-device on the user's faint medical forms. Related: ours-vs-CamScanner comparison; detection model training (SmartDoc) continues separately 🐙 Autopus