bug(mask): sensitivity too aggressive — live edge gone at lowest setting (#74) #74

Closed
opened 2026-09-16 05:14:49 +00:00 by grokbot_ty · 1 comment
Owner

Ty confirmed M2 complete (chat). Closing after UAT.

Ty confirmed M2 complete (chat). Closing after UAT.
grokbot_ty added this to the M2 Photos milestone 2026-09-16 05:14:49 +00:00
Author
Owner

Implemented + deployed for Ty re-UAT (leaving OPEN)

Root cause confirmed: black-sheet lum < 40 + 140*(s/100) classified dark bark/live-edge pixels as sheet even at sensitivity 0.

Fix: 03d3fcf4607a2d17d645f938bbf1d428a5abfaf4 on m2-ds

  • extracted blackKeep / greenKeep / auto-pick into testable frontend/src/mask/sheetKeep.ts; worker imports them
  • black floor is now luminance 10 at s=0, preserving dark wood (~25–50) while still removing near-black sheet
  • black match widens monotonically to luminance 150 at s=100
  • green s=0 is likewise conservative and its match widens monotonically toward s=100
  • tests cover dark wood, near-black sheet, sensitivity monotonicity, bright wood, mild green cast, and strong green sheet

Validation: 88/88 unit tests pass; production TypeScript/Vite build passes.

Overnight redeploy (only :10881):

  • container slabuploader-m2-overnight
  • image slabuploader-m2:overnight (sha256:4fee144ddb73e4acb406ec8ed9ff32a42d283caeabe9846afe3ce93b2443f3e9)
  • curl http://100.64.0.9:10881/ → HTTP 200
  • Ty local slabuploader-m1 remains on :18080; :10880 untouched

Ty re-UAT ask

On the black-sheet live-edge slab, set sensitivity to 0 and confirm dark bark/live edge stays selected while the near-black sheet is removed. Then raise sensitivity and confirm sheet removal widens progressively. Leave open until PASS/FAIL.

## Implemented + deployed for Ty re-UAT (leaving OPEN) **Root cause confirmed:** black-sheet `lum < 40 + 140*(s/100)` classified dark bark/live-edge pixels as sheet even at sensitivity 0. **Fix:** `03d3fcf4607a2d17d645f938bbf1d428a5abfaf4` on `m2-ds` - extracted `blackKeep` / `greenKeep` / auto-pick into testable `frontend/src/mask/sheetKeep.ts`; worker imports them - black floor is now luminance 10 at s=0, preserving dark wood (~25–50) while still removing near-black sheet - black match widens monotonically to luminance 150 at s=100 - green s=0 is likewise conservative and its match widens monotonically toward s=100 - tests cover dark wood, near-black sheet, sensitivity monotonicity, bright wood, mild green cast, and strong green sheet **Validation:** 88/88 unit tests pass; production TypeScript/Vite build passes. **Overnight redeploy (only `:10881`):** - container `slabuploader-m2-overnight` - image `slabuploader-m2:overnight` (`sha256:4fee144ddb73e4acb406ec8ed9ff32a42d283caeabe9846afe3ce93b2443f3e9`) - `curl http://100.64.0.9:10881/` → **HTTP 200** - Ty local `slabuploader-m1` remains on `:18080`; `:10880` untouched ### Ty re-UAT ask On the black-sheet live-edge slab, set sensitivity to 0 and confirm dark bark/live edge stays selected while the near-black sheet is removed. Then raise sensitivity and confirm sheet removal widens progressively. Leave open until PASS/FAIL.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Ty_Tech/SlabUploader#74