Ty
|
cc5241f7da
|
feat(slabs): S2 CRUD + optimistic concurrency + soft delete + slab list UI
- backend/slabs.py: create (calibrated, client-derived stored as sent), list (excl
soft-deleted, most recent), get, update (single compare-and-set on server_rev,
409 revision_conflict / 409 duplicate_sku / 422 stale_field, status server-derived),
delete (soft, published rejected). Explicit column allowlists, parameterized SQL,
JSON array fields, commits.
- backend/app.py: wire slabs router.
- frontend: src/api/slabs.ts client + create/slabs/SlabList.svelte + dev toggle.
- tests: 9 slabs tests (create/dup/list/get/update/rev-conflict/dup-sku/soft-delete/
published-delete) with full taxonomy seeding.
Verified: pytest 23 passed; check_requirements + check_coverage exit 0; npm build ok.
|
2026-09-19 16:29:06 -07:00 |
|