Ty f00c4a7460 UAT-8a: rotate the rect, not a separate axis vector
reduceAxisState 'rotate' now changes state.rect.angle and re-derives
state.axis via axisFromRect(newRect). The rectangle rotates as a whole;
the axis for Measure is derived from the rotated rect's long side.

2 new regression tests: rect.angle changes on rotate, axis is
re-derived from rotated rect. 109/109 tests green.
2026-09-14 11:23:00 -07:00
2026-09-14 00:32:42 -07:00
2026-09-14 02:14:08 -07:00
2026-08-24 11:00:51 -07:00
2026-09-14 00:32:42 -07:00

SlabUploader

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

Artifact File
PRD docs/PRODUCT.md
Invariants and agent context AGENTS.md
Milestone 1 docs/CAPTURE.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%