{"slug":"dw-checkout-guard","total":7,"limit":100,"offset":0,"since":null,"commits":[{"hash":"fb043ce","date":"2026-09-12 06:37:33 -0700","author":"Steve Abrams","subject":"chore: v1.0.1 (session close)","body":"Version bump alongside 667cf8e, which replaced the stale Shopify scaffold\nfixtures with five real behaviour tests run against the compiled\nfunction.wasm. Lint + review pass this session found nothing further to fix\nin the fixtures (all parse, all internally consistent with their filenames).\n\nThe function is now installed and Active on the live store\n(designer-laboratory-sandbox, checkout rule 82837555, fail-open).\n\nCo-Authored-By: Claude Opus 5 <noreply@anthropic.com>"},{"hash":"667cf8e","date":"2026-09-11 12:04:41 -0700","author":"Steve Abrams","subject":"checkout-guard: replace stale scaffold fixtures with real DW behaviour tests","body":"The repo shipped Shopify's default cart-validation scaffold fixtures\n(quantity-is-one / quantity-exceeds-one). They carry only a quantity\nfield, so they do not satisfy this function's input query (which reads\ncost.amountPerQuantity and merchandise.product.isDiscontinued) and\nvalidateTestAssets failed 2/2 — i.e. the guard shipped with a test suite\nthat had never once exercised the guard.\n\nReplaced with five fixtures run against the real compiled function.wasm:\n\n  dw-zero-price-BLOCKS              $0.00 Per Yard      -> blocked\n  dw-sample-only-ALLOWS             $4.25 Sample        -> ALLOWED\n  dw-mixed-zero-plus-sample-BLOCKS  $0 + $4.25          -> blocked\n  dw-discontinued-BLOCKS            discontinued tag    -> blocked\n  dw-zero-plus-discontinued-MIXED   both                -> mixed message\n\nThe allow case is the load-bearing one: this cohort must keep its $4.25\nsample flow working, so a guard that blocked everything would be worse\nthan no guard. 5/5 pass.\n\nTK-11301. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>\nClaude-Session: https://claude.ai/code/session_01XA7ZPurwcdipst1gsgwwXq"},{"hash":"20e4143","date":"2026-09-04 13:05:08 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-09-04T12:55:58 (1 data files) — RESTORE-RUNBOOK-TK-10860.md","body":""},{"hash":"e149166","date":"2026-08-25 08:27:01 -0700","author":"Steve Abrams","subject":"checkout-guard: complete JS->wasm build + deploy (blocks $0/quote-only/discontinued at checkout)","body":"Rebuilt the function extension from the current CLI's cart_checkout_validation scaffold\n(the original was old-style: missing src/index.js entry -> JS undetected, camelCase TOML\nexport, no codegen package.json). Overlaid the hardened $0/discontinued logic + input query,\nregenerated types, built with javy, VERIFIED locally ($0 line -> validationAdd error; $50 line\n-> operations:[]), and released version dw-checkout-guard-2 to the linked DW Partner app.\n\nCo-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>"},{"hash":"bd7e501","date":"2026-08-25 08:25:14 -0700","author":"auto-commit-fleet","subject":"auto-data-snapshot: 2026-08-25T08:16:28 (9 data files) — extensions/dw-checkout-guard/.gitignore extensions/dw-checkout-guard/locales/en.default.json extensions/dw-checkout-guard/package.json extensions/dw-checkout-guard/schema.graphql extensions/dw-checkout-guard/shopify.extension.toml","body":""},{"hash":"7b5d844","date":"2026-07-30 08:48:24 -0700","author":"steve-office","subject":"harden checkout-guard per contrarian: $.cart target, fail-open on unreadable price, mandatory activate+typegen steps, mixed-cart regression + headless caveat","body":""},{"hash":"1ba0a3e","date":"2026-07-30 08:42:26 -0700","author":"steve-office","subject":"scaffold DW Checkout Guard validation function (rejects $0 or discontinued line items)","body":""}]}