Commit Graph

  • c18ddcc561 Merge pull request 'Pivot: strip storefront → network-service seed (v0.9.0)' (#33) from pivot-strip-storefront into main main ben.stull 2026-06-12 16:32:49 +00:00
  • 84a2bdbd78 chore(reset): drop e2e run artifacts swept in by git add -A ben.stull 2026-06-12 09:31:37 -07:00
  • df92e3f94c chore(reset)!: strip storefront → network-service seed (v0.9.0) ben.stull 2026-06-12 09:30:01 -07:00
  • e2d8b5caae Merge pull request 'SLICE-8: Shopify dialect — detect/map Shopify export at the codec boundary + DOC-2/3 (SD-0002 §7.2)' (#32) from slice-8-shopify-dialect into main v0.8.0 release/2026-06-12T02-41 ben.stull 2026-06-12 09:37:37 +00:00
  • a851d3587c fix(products): conservative dialect detection — canonical-distinctive columns veto Shopify (SLICE-8 review) ben.stull 2026-06-12 02:36:09 -07:00
  • cb6b5996f3 chore(products): SLICE-8 complete — bump v0.8.0; §12 traceability audited (SD-0002) ben.stull 2026-06-12 02:28:18 -07:00
  • 17f3b600fd test(e2e): e2e_import_shopify_dialect — Shopify export imports directly (PUC-6, SLICE-8) ben.stull 2026-06-12 02:26:44 -07:00
  • 6459e34480 docs(products): DOC-4 dialect-adapter notes (SLICE-8) ben.stull 2026-06-12 02:24:44 -07:00
  • 60a06de302 docs(products): DOC-2 column reference served at /api/products/columns.md (SLICE-8) ben.stull 2026-06-12 02:24:05 -07:00
  • 0aeccf7d2c feat(products-ui): Shopify 'mapped' label + format help links to column reference (PUC-6/PUC-11, SLICE-8) ben.stull 2026-06-12 02:22:32 -07:00
  • a00f5baaec test(products): INV-10 holds over a partial Shopify import (SLICE-8) ben.stull 2026-06-12 02:21:34 -07:00
  • f170950aec test(products): exhaustive Shopify->canonical mapping fixture (SD-0002 §6.5.1, SLICE-8) ben.stull 2026-06-12 02:21:05 -07:00
  • 0c7a76a305 feat(products): codec detects + maps Shopify dialect at the boundary (INV-17, SLICE-8) ben.stull 2026-06-12 02:20:21 -07:00
  • daa237dd59 feat(products): Shopify dialect adapter — header detection + canonical mapping (SD-0002 §6.5.1, SLICE-8) ben.stull 2026-06-12 02:19:15 -07:00
  • e16ec7cf94 docs(plan): SLICE-8 Shopify dialect implementation plan (SD-0002 §7.2) ben.stull 2026-06-12 02:17:30 -07:00
  • 8ed9b25771 Merge pull request 'SLICE-7: images pipeline end-to-end — fetch/host/serve + INV-12 over images (SD-0002 §7.2)' (#30) from worktree-slice-7-images into main v0.7.0 release/2026-06-12T01-20 ben.stull 2026-06-12 08:00:00 +00:00
  • c929282e07 fix(products): bomb-safe image processing + per-image error isolation; honest claim/resumability docs (SLICE-7 review) worktree-slice-7-images ben.stull 2026-06-12 00:58:10 -07:00
  • 757412ef2a docs(products): image pipeline ops + seams (DOC-1/DOC-4); overlay bucket config; v0.7.0 ben.stull 2026-06-12 00:48:44 -07:00
  • 0775537d4c test(e2e): e2e_image_outcomes — fixture image host, per-image outcomes + notice band (SD-0002 §6.8) ben.stull 2026-06-12 00:41:39 -07:00
  • d81215be1d feat(products-ui): run-detail images section + progress poll, image-problems notice band, history images column (SD-0002 §5.2/§5.5) ben.stull 2026-06-12 00:37:45 -07:00
  • 7f51f5242f feat(products): app-served image route — storefront-authorized, immutable cache (SD-0002 §6.4, INV-16) ben.stull 2026-06-12 00:34:04 -07:00
  • 5d5341b29b feat(products): confirm → fetching_images + post-commit fetch scheduling + startup recovery (SD-0002 §6.5.3/§6.9) ben.stull 2026-06-12 00:30:08 -07:00
  • 23267c4d4c feat(products): image-fetch phase — SSRF guard, bounds, renditions, resume (SD-0002 §6.5.4, §6.9, INV-18) ben.stull 2026-06-12 00:26:26 -07:00
  • 13e74f4c61 feat(products): image-phase repo helpers + run progress/outcomes/counts (SD-0002 §6.5.4) ben.stull 2026-06-12 00:23:09 -07:00
  • 984dc98dee feat(products): diff resolves hosted image URLs to existing records — INV-12 over images (SD-0002 §6.3) ben.stull 2026-06-12 00:19:23 -07:00
  • 906bc87c96 feat(products): export hosted detail URL for fetched images; snapshot carries status (SD-0002 §6.5.5, INV-16) ben.stull 2026-06-12 00:15:47 -07:00
  • da5177c950 feat(products): hosted-image URL build/parse helpers (SD-0002 §6.3.1) ben.stull 2026-06-12 00:13:27 -07:00
  • 0fc29a34dd feat(platform): objectstore port — local + GCS adapters, config (SD-0002 §6.2) ben.stull 2026-06-12 00:12:24 -07:00
  • f27a24353d feat(platform): images port — decode, resolution bar (Q-3), WebP renditions (SD-0002 §6.2) ben.stull 2026-06-12 00:09:58 -07:00
  • 385df8d728 Merge pull request 'SLICE-6: export & the round-trip lock — canonical serializer + streamed export (SD-0002 §7.2)' (#29) from worktree-slice-6-export-roundtrip into main v0.6.0 release/2026-06-11T22-23 ben.stull 2026-06-12 05:23:23 +00:00
  • af72299a57 fix(products): serialize Variant Position explicitly — INV-12 round-trip bug worktree-slice-6-export-roundtrip ben.stull 2026-06-11 22:22:11 -07:00
  • 6f22c8b146 chore: version 0.6.0 — SLICE-6 export & round-trip ben.stull 2026-06-11 22:14:30 -07:00
  • 767011fbae docs(products): DOC-1 export ops + TEL-3, DOC-4 serializer/round-trip (SLICE-6) ben.stull 2026-06-11 22:14:30 -07:00
  • 8077f2e07b test(e2e): e2e_export_download + e2e_roundtrip_noop (SD-0002 §6.8, PUC-9/10) ben.stull 2026-06-11 22:12:53 -07:00
  • 0a85c4fef8 feat(frontend): Export status-filter menu on the Products page (SD-0002 §5.2, PUC-9) ben.stull 2026-06-11 22:08:34 -07:00
  • 6f213e1f02 feat(frontend): export URL helper + status-filter list (PUC-9) ben.stull 2026-06-11 22:07:36 -07:00
  • 155f9bd147 feat(api): GET /api/products/export — streamed canonical CSV, 409 empty_catalog (§6.4, PUC-9) ben.stull 2026-06-11 22:05:55 -07:00
  • 1c2a6af986 feat(products): streamed export service + TEL-3 + EmptyCatalog (PUC-9, §9.1) ben.stull 2026-06-11 22:03:09 -07:00
  • 5a97b9dc59 feat(products): status-filtered export_catalog snapshot query (PUC-9) ben.stull 2026-06-11 22:01:11 -07:00
  • fce0b5eaed test(products): decimal/int variant fields round-trip clean (INV-12 coverage) ben.stull 2026-06-11 21:59:06 -07:00
  • b40e4d30b5 test(products): INV-12 property test — export round-trips to a no-op (SD-0002 §6.8) ben.stull 2026-06-11 21:58:47 -07:00
  • 7652e92cbe feat(products): serialize multi-variant + interleaved images (§6.5.1 row grammar) ben.stull 2026-06-11 21:58:22 -07:00
  • 627e257d4c feat(products): canonical serializer skeleton — header + single product row (SD-0002 §6.5.5) ben.stull 2026-06-11 21:57:48 -07:00
  • 011f4d5dc1 Merge pull request 'SLICE-5: products import spine — canonical CSV → preview → confirm (SD-0002 §7.2)' (#26) from worktree-slice-5-import-spine into main v0.5.0 release/2026-06-11T20-50 ben.stull 2026-06-12 03:50:20 +00:00
  • 2606fbf826 docs(products): operator guide (DOC-1) + domain notes (DOC-4); version 0.5.0 worktree-slice-5-import-spine ben.stull 2026-06-11 17:00:13 -07:00
  • ad738adbc0 test(e2e): SLICE-5 scenarios — preview/confirm, errors, rejection, cancel (§6.8) ben.stull 2026-06-11 16:53:59 -07:00
  • a58f42cf86 test(e2e): stand up Playwright — fresh-DB server harness + sign-up helper ben.stull 2026-06-11 16:50:59 -07:00
  • d18a84e135 fix(products-ui): review pass — show-more race, keyboard history access, a11y glyphs/aria-live, label consistency ben.stull 2026-06-11 16:46:43 -07:00
  • 87a56a66c4 feat(products-ui): import run detail (§5.5, PUC-4/5/8) ben.stull 2026-06-11 16:35:49 -07:00
  • 4141285b89 feat(products-ui): import preview — tiles, drill-in diffs, confirm/cancel (§5.4) ben.stull 2026-06-11 16:34:33 -07:00
  • 188494272a feat(products-ui): import upload screen (§5.3, PUC-2/5a) ben.stull 2026-06-11 16:30:51 -07:00
  • 26f84cb916 feat(products-ui): admin nav + Products page with import history (§5.2) ben.stull 2026-06-11 16:29:20 -07:00
  • b5dac8886f feat(products-ui): typed products API client + admin hash routing ben.stull 2026-06-11 16:25:37 -07:00
  • 4dacc2dafd feat(products): /api/products/* BFF endpoints + sample.csv (DOC-3) ben.stull 2026-06-11 16:18:34 -07:00
  • a8538d3ecc fix(products): cleared Variant Position resolves to file order, not NULL ben.stull 2026-06-11 16:14:14 -07:00
  • 0c7865e9e1 feat(products): confirm/apply in one transaction, runs, summary — INV-10/11/14 + TEL-2/6 ben.stull 2026-06-11 16:02:27 -07:00
  • fcbf1393f5 feat(products): import_validate → draft, preview records, discard + TEL-1 ben.stull 2026-06-11 15:51:03 -07:00
  • 138126ab17 feat(products): repo — catalog snapshot, draft/run SQL, upsert primitives ben.stull 2026-06-11 15:42:42 -07:00
  • 667a462e0b fix(products): honest position compare for matched variants in diff ben.stull 2026-06-11 15:37:59 -07:00
  • 9bc6e4dbd2 feat(products): diff engine — add/update/unchanged/error + INV-11 fingerprint ben.stull 2026-06-11 15:28:03 -07:00
  • 19ee695c20 feat(products): row validation — §6.5.1 rules + INV-15 sanitization ben.stull 2026-06-11 15:17:01 -07:00
  • f64c3fddf9 feat(products): CSV codec — file-level parse + INV-18 caps (PUC-5a) ben.stull 2026-06-11 14:58:53 -07:00
  • c39bbd4728 feat(products): domain skeleton — errors, column registry, canonical row model ben.stull 2026-06-11 14:55:37 -07:00
  • 0ee948b34d feat(products): SD-0002 §6.3 schema — migration 0002 + nh3/multipart deps (SLICE-5) ben.stull 2026-06-11 14:52:18 -07:00
  • 1267d4f29d docs: SLICE-5 implementation plan (SD-0002 §7.2 import spine) ben.stull 2026-06-11 14:48:47 -07:00
  • 6b405a0f2d Merge pull request 'fix(signin): key the resend cooldown to the address it was set for (#20)' (#22) from fix-20-signin-cooldown-keying into main ben.stull 2026-06-11 08:22:08 +00:00
  • 118e925580 fix(signin): key the resend cooldown to the address it was set for (#20) fix-20-signin-cooldown-keying ben.stull 2026-06-11 01:21:23 -07:00
  • 11acb3a5b1 Merge pull request 'docs: land session 0023 plan doc (stray untracked file)' (#18) from docs-archive-0023-plan into main ben.stull 2026-06-11 07:56:34 +00:00
  • efc9c8edb9 docs: land session 0023's ui-designs-collection plan in-repo (was untracked; content archive already had it) ben.stull 2026-06-11 00:56:31 -07:00
  • f7b76d5370 Merge pull request 'SLICE-4: record the first PPE bootstrap rehearsal (PUC-11) — green' (#17) from slice-4-rehearsal-record into main ben.stull 2026-06-11 07:54:50 +00:00
  • 4bb9763633 docs(slice-4): record the first PPE bootstrap rehearsal (PUC-11, 2026-06-11) — green ben.stull 2026-06-11 00:54:47 -07:00
  • a456d51f17 Merge pull request 'SLICE-4: deployment.toml — the ecomm PPE record' (#11) from slice-4-deployment-record into main ben.stull 2026-06-11 06:45:08 +00:00
  • ac3c4ffe36 feat(slice-4): deployment.toml — the ecomm PPE record (launch-app §5.1; Cloud SQL via secret ref) ben.stull 2026-06-10 23:45:05 -07:00
  • 8a2ec24d86 Merge pull request 'SLICE-4 (part 1): deploy contract — versioned health, backend-served SPA, SmtpMailer + honest 502 (SD-0001 §7.2)' (#10) from slice-4-deploy-contract into main v0.4.0 ben.stull 2026-06-11 06:36:26 +00:00
  • acff7ac588 docs(slice-4): BOOTSTRAP.md PPE runbook, version 0.4.0, README status ben.stull 2026-06-10 23:36:24 -07:00
  • 22d738fc74 feat(slice-4): honest delivery failure — send-before-commit + 502 delivery_failed (INV-9; closes #7) ben.stull 2026-06-10 23:35:01 -07:00
  • 1b8c60fcb5 feat(slice-4): SmtpMailer — real mail over a configured relay, log-hygienic (INV-8, §6.6) ben.stull 2026-06-10 23:33:40 -07:00
  • 9f4295b77e feat(slice-4): backend serves the built SPA — the deployed nginx-proxies-all topology (launch-app §2) ben.stull 2026-06-10 23:32:22 -07:00
  • a1c5544694 feat(slice-4): VERSION file + versioned /healthz — the flotilla verify contract (§8.1) ben.stull 2026-06-10 23:31:20 -07:00
  • 0747181157 Merge pull request 'SLICE-3: storefront — create + INV-4 guard, Create/Admin screens, full entry routing (SD-0001 §7.2)' (#9) from slice-3-storefront into main ben.stull 2026-06-11 05:47:02 +00:00
  • 877be249c7 chore(slice-3): version 0.3, README status, label-input association fix (a11y §6.6) ben.stull 2026-06-10 22:46:12 -07:00
  • 25ac540171 feat(slice-3): Admin shell + complete entry routing (§5.4/§6.5, PUC-6/8/9) ben.stull 2026-06-10 22:41:38 -07:00
  • 10d22938f1 feat(slice-3): Create-storefront screen + API helper (§5.3, PUC-4/5/7) ben.stull 2026-06-10 22:41:04 -07:00
  • ddc949615e feat(slice-3): Sign-in re-skinned — code cells, cooldown countdown, honest §5.2 states ben.stull 2026-06-10 22:40:33 -07:00
  • 0b302ea1e1 feat(slice-3): Landing re-skinned to the Claude Design export (§5.1) ben.stull 2026-06-10 22:39:57 -07:00
  • ef1498ba08 feat(slice-3): design-system foundation — Wiggleverse tokens, fonts, brand marks, UI kit (per ui/designs export) ben.stull 2026-06-10 22:39:30 -07:00
  • cc9d9dda5f test(slice-3): INV-1 whole-flow bootstrap test — empty DB to admin answer (§6.8) ben.stull 2026-06-10 22:37:10 -07:00
  • 306b5c1e5d feat(slice-3): POST /api/storefronts + storefronts-fed entry routing (§6.4/§6.5) ben.stull 2026-06-10 22:36:50 -07:00
  • e11fb032b1 test(slice-3): INV-4 invariants — concurrent-create refusal + many-capable membership schema ben.stull 2026-06-10 22:34:24 -07:00
  • ba8b493a31 feat(slice-3): storefronts domain — create + membership + INV-4 guard (§6.5) ben.stull 2026-06-10 22:33:57 -07:00
  • 1b40bde4a0 Merge pull request 'SLICE-2: identity — email + one-time-code sign-up, sessions, Landing/Sign-in (SD-0001 §7.2)' (#6) from slice-2-identity into main ben.stull 2026-06-10 17:51:18 +00:00
  • 725877c5c6 docs(slice-2): implementation plan for the identity slice slice-2-identity ben.stull 2026-06-10 10:43:09 -07:00
  • bf62f413d7 docs(slice-2): README status — identity slice in place ben.stull 2026-06-10 10:42:49 -07:00
  • cfc28d7002 fix(slice-2): surface ecomm.* INFO logs so the one-time code reaches the dev log ben.stull 2026-06-10 10:42:30 -07:00
  • b3ffb2d4b6 feat(slice-2): Landing + Sign-in screens, entry routing, API client (§5.1/5.2/6.5) ben.stull 2026-06-10 10:38:38 -07:00
  • cfd2b4ecc7 feat(slice-2): BFF /api/auth/* — request-code, verify, me, logout (§6.4) ben.stull 2026-06-10 10:35:01 -07:00
  • d2eceac272 feat(slice-2): deps — mailer + session dependencies; build mailer at startup ben.stull 2026-06-10 10:34:13 -07:00
  • 95680c9960 feat(slice-2): accounts domain — request_code/verify/get_account (INV-2/INV-3/INV-6) ben.stull 2026-06-10 10:31:32 -07:00
  • 2d15f1a2cb feat(slice-2): platform/session — stdlib HMAC signed cookie tokens (§6.2) ben.stull 2026-06-10 10:27:35 -07:00
  • 446c13211a feat(slice-2): platform/mailer port + LogMailer (dev channel, §6.2/PUC-10) ben.stull 2026-06-10 10:26:58 -07:00