Ty 23de433bdb fix(fe): attach the session's processed PNGs to the draft photos
onPhotosReady built the draft photos from the raw captured JPEGs and dropped
every PNG the session had already produced, so processedBlob was never set on
the M2 path (only the legacy PhotoImport path set it). photoUpload then omitted
the processed multipart field, slab_photos.processed_blob stayed NULL, and
publish.py - which selects WHERE processed_blob IS NOT NULL - uploaded zero
images to Woo. The verified SLAB-UAT-901 draft had images: 0.

Attach results.inventoryPng to the calibration photo and each successful
batchApply entry to its sibling, and add the dimension-overlay copy as its own
photo adjacent to the calibration one (REVIEW-5).
2026-09-25 20:23:29 -07:00
…

SlabUploader

Lists one-of-a-kind wood slabs on Whidbey Wood Store.

Start at docs/README.md for goals, what already shipped, and Milestone 3.

Artifact File
Docs map docs/README.md
Structure contract docs/STRUCTURE.md
Requirements (normative) docs/REQUIREMENTS.md
Milestones (ID subsets) docs/MILESTONES.md
Product overview docs/PRODUCT.md
Invariants and agent context AGENTS.md
Milestone 1 Capture (shipped) docs/capabilities/CAPTURE.md
Milestone 2 Photos (shipped) docs/capabilities/PHOTOS.md
Milestone 3 Create (paused — requirements reconciliation) docs/capabilities/CREATE.md
UAT practice walk docs/UAT-PRACTICE.md
Hosting deploy/

Owner: Ty. Store: https://www.whidbeywoodstore.com/ Repo: Ty_Tech/SlabUploader

S
Description
SlabUploader — mobile-first live-edge slab capture → WooCommerce publish (design + implementation). Mirrored from local TrueNAS TyTech_Internal/SlabUploader.
Readme MIT 21 MiB
Languages
TypeScript 43.5%
Python 37%
Svelte 18.8%
Shell 0.4%
Dockerfile 0.2%