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
This commit is contained in:
Ty
2026-09-14 00:02:36 -07:00
parent dd011207a0
commit 7e2a1845cf
11 changed files with 735 additions and 180 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
import { describe, it, expect } from 'vitest';
import * as m from '$lib/core/math.js';
import * as m from '../../src/lib/core/math.js';
// M1 deterministic core — unit tests (RED first, per TDD).
// Ground truth for the math identities is the spec (docs/CAPTURE.md):