ben.stull
af72299a57
fix(products): serialize Variant Position explicitly — INV-12 round-trip bug
...
ci / check (push) Has been cancelled
ci / check (pull_request) Has been cancelled
A stored variant position is a CatalogVariant attribute, not a fields{} entry,
so the serializer emitted an empty Variant Position cell — which re-imports as
'reset to file order'. A non-sequential stored position (a merchant can import
explicit positions) then round-tripped to a spurious update, violating INV-12.
Emit str(variant.position) explicitly (like _write_image). The property-test
generator now assigns non-sequential positions to lock the regression, plus a
targeted test. Also wires isExportEnabled into ProductsPage (was dead code).
Both caught by the final code review.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-11 22:22:11 -07:00
ben.stull
6f22c8b146
chore: version 0.6.0 — SLICE-6 export & round-trip
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-11 22:14:30 -07:00
ben.stull
767011fbae
docs(products): DOC-1 export ops + TEL-3, DOC-4 serializer/round-trip (SLICE-6)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-11 22:14:30 -07:00
ben.stull
8077f2e07b
test(e2e): e2e_export_download + e2e_roundtrip_noop (SD-0002 §6.8, PUC-9/10)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-11 22:12:53 -07:00
ben.stull
0a85c4fef8
feat(frontend): Export status-filter menu on the Products page (SD-0002 §5.2, PUC-9)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-11 22:08:34 -07:00
ben.stull
6f213e1f02
feat(frontend): export URL helper + status-filter list (PUC-9)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-11 22:07:36 -07:00
ben.stull
155f9bd147
feat(api): GET /api/products/export — streamed canonical CSV, 409 empty_catalog (§6.4, PUC-9)
...
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-06-11 22:05:55 -07:00
ben.stull
1c2a6af986
feat(products): streamed export service + TEL-3 + EmptyCatalog (PUC-9, §9.1)
2026-06-11 22:03:09 -07:00
ben.stull
5a97b9dc59
feat(products): status-filtered export_catalog snapshot query (PUC-9)
2026-06-11 22:01:11 -07:00
ben.stull
fce0b5eaed
test(products): decimal/int variant fields round-trip clean (INV-12 coverage)
2026-06-11 21:59:06 -07:00
ben.stull
b40e4d30b5
test(products): INV-12 property test — export round-trips to a no-op (SD-0002 §6.8)
2026-06-11 21:58:47 -07:00
ben.stull
7652e92cbe
feat(products): serialize multi-variant + interleaved images (§6.5.1 row grammar)
2026-06-11 21:58:22 -07:00
ben.stull
627e257d4c
feat(products): canonical serializer skeleton — header + single product row (SD-0002 §6.5.5)
2026-06-11 21:57:48 -07:00