Verified in main @ 0c00d25: docs/contracts/API.md:58 "SKU exists in Woo under any status"; UX.md:81,100 same wording. Backend says "SKU already exists". Fixed.
Design proposal — approved by owner 2026-09-24. Wireframe is on branch issue-99-tape-line-overlay.
Artifact: [docs/design/issue-99-tape-line-overlay.html](https://gitea.vps1.afterthedemo.…
Verified in main @ 0c00d25:
✅ Full flow with inference off: 409 on call1 when disabled (inference.py:302-303), frontend hides AI buttons (:690), server_description() deterministic fallback…
Verified in main @ 0c00d25:
✅ User-triggered only, full resend context (inference.py:467-495) ✅ No invented dimensions: "DIMENSION FACT BLOCK (exact, invent no numbers)" (:496) ✅ Audit:…
Verified in main @ 0c00d25:
✅ Photos at 1024px (METADATA-35) + Woo taxonomy + SKU/length/thickness (inference.py:312-329) ✅ Model constrained to cached taxonomy via _taxonomy_lists() (:326,355) …
Superseded: design went to 1 knob (sheet + sensitivity) instead of the spec’s 4 (sheet, sensitivity, edge offset, feather). No localStorage persistence — params reset to defaults on reload. Mask…
Verified in main @ 0c00d25:
✅ Woo username + app password + test-woo (Settings.svelte:10-11,268) ✅ Inference endpoint + test-inference (:12-14,280) ✅ Pricing rules editor: full CRUD per…
Verified in main @ 0c00d25:
✅ Success: woo_product_id shown, photos purged, device draft cleared, onPublished() (Publish.svelte:44,47,89) ✅ Failure: plain message, no status/stack, Retry…
Verified in main @ 0c00d25 — NOT implemented. The unpublishable 422 says "Some fields are missing" (generic not-ready), not the spec’s "This value is no longer valid. Pick from the current list"…