Ty
88b9c47200
UAT-4: remove non-spec controls (edge offset, feather) from Mask UI
...
Spec CAPTURE.md §Mask lists exactly two controls: Sheet and Sensitivity. Edge offset and feather nudge buttons were extra. Removed from the UI; core params (edgeOffset, feather) remain in maskState.js, still unit-tested.
2026-09-14 07:24:42 -07:00
Ty
7e2a1845cf
M1-3: Capture + Mask state (TDD)
...
- Add maskState.js: sheet Auto/Green/Black, sensitivity, edge offset, feather
- Overlay = slab photo + checkerboard on removed px
- Debounced recompute 2.0s after last sensitivity change
- Approve blocked when maskStats empty
- HEIC shows retake notice
- Refactored mask.test.js + extended e2e mask.spec.js
- 43/43 unit tests green
2026-09-14 00:02:36 -07:00
Ty
dd011207a0
feat(m1-2,m1-3): deterministic core + mask keying (TDD, green)
...
Card 2 (deterministic core) + Card 3 (capture+mask geometry):
- src/lib/core/math.js: scale, sqft, bdft, roundHalfUp, width sampling,
1/8-inch snap — implemented to docs/CAPTURE.md identities.
- src/lib/core/mask.js: keySheet green/black/auto chroma keys + maskStats.
- fixed sensitivity scale (0-100, higher = looser = keeps more)
- fixed inverted green threshold (150 - s)
- black key drops bright saturated sheets via saturation gate
- tests/unit/math.test.js: corrected 3 wrong expected values to match the
spec (sqft 21x12in = 1.75 not 17.5; bdft 3.06; sample avg 11.25).
- tests/e2e/mask.spec.js: skeleton, skipped pending M1-5 live UI.
Full unit suite green: 24/24. E2e collects clean.
2026-09-13 23:17:36 -07:00