Ty
7287a55707
fix(inference): #86 tighten Call 1 prompt and closed lists
...
Ship locked expert Call 1 seed: order cats before edge, species=best
confidence, mill-count edge rules, Wild for cookies/burl, multi figure,
feature_tag_ids only (no free-text bags, no grade). LISTS keys match the
seed; feat- prefix stripped for the model. Gate and review UI apply
feature_tag_ids. Seed auto-activates on deploy when still seed-authored.
2026-09-20 22:54:36 -07:00
Ty
1133201f30
M3 Review→Publish UI ( #77 ): one-column flow, searchable pickers, fig/feat tags, e2e
...
- Review screen: slug-resolved species/wcat groupers, case-insensitive attrs,
fig-*/feat-* tag pickers (METADATA-30/40), AI-assist labels + AI bubbles.
- App orchestrator: single writable flow store, capture→review→publish, Resume boot.
- API client (slabs.ts) mirroring live backend routes; Blob name fix.
- Playwright e2e (7 tests, hermetic mock): canvas PNG seed, client-UUID mock,
SKU blur commit, ready-state reactive fix; expect timeout 4s, 2 workers.
- e2e green 7/7 in 6s; check_requirements + check_coverage PASS.
2026-09-20 14:34:24 -07:00
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