Sample Box

repo: ~/Projects/sample-box · 17 commits · 0 in last 24h, 0 in last 7d ·

Search the build

17 commits indexed

  1. 5a396c6 2026-09-15 security: add rel=noopener noreferrer to target=_blank links (yoloforever cycle 3)
  2. 855017b 2026-08-30 add creds-in-URL fetch guard to gated pages (TK-10984)
  3. f6685d3 2026-08-25 creds-safe fetch guard: resolve relative fetch vs credential-free location (creds-in-URL trap)
  4. f3ccf2e 2026-08-12 viewer standard: add Grid/List toggle + per-field on/off menu (Fields) to product grid
  5. cecac17 2026-07-16 shopify: refresh catalog — keep sample-only as 'by request'
  6. a52379f 2026-07-16 Use price_display for swatch grid; surface sample_only badge; no $null rendering
  7. 69305b2 2026-07-16 shopify: refresh catalog — real roll prices, no $4.25 sample-only leak
  8. d56008b 2026-07-16 auto-save: 2026-07-16T08:12:03 (1 files) — data/shopify-catalog.json
  9. c774227 2026-07-16 security: bind server to 127.0.0.1 so the tunnel/proxy basic-auth gate can't be bypassed on the LAN
  10. dea3d5d 2026-07-16 shopify: numeric sample variant id for working cart permalink
  11. f61682e 2026-07-16 step 5: orders.json — test order from verification run
  12. adc179c 2026-07-16 step 4: admin.html — show Shopify checkout link on order cards
  13. 936c9a8 2026-07-16 step 3: index.html — real Shopify catalog swatch grid + Shopify-hosted checkout
  14. 931b363 2026-07-16 step 2: server.js — add Shopify catalog endpoints, Shopify-hosted order capture
  15. 5e7cf3b 2026-07-16 step 1: copy real Shopify catalog (200 products, checkout_domain, sample_variant_id)
  16. ac3f15d 2026-07-15 sample-box v1: vibe-picker funnel + swatch grid + TEST checkout + admin dashboard
  17. 6cfcf4e 2026-07-15 initial scaffold (sample-box) via web-dev accelerator

Authors

Agents used

  • none detected

Skills used

  • /orders4
  • /shopify-catalog2
  • /shopify-products2
  • /www2
  • /cart2
  • /claude1
  • /code1
  • /off1
  • /proxy1
  • /catalog-meta1
  • /products1

Creative ideas + design notes

Commits with substantial prose (≥120 chars) — the rationale behind each move.

5a396c6 · 2026-09-15 · security: add rel=noopener noreferrer to target=_blank links (yoloforever cycle 3)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UxvvaJ7p6VRZ4RzKDaBXqK
f6685d3 · 2026-08-25 · creds-safe fetch guard: resolve relative fetch vs credential-free location (creds-in-URL trap)
Fleet inoculation — opening this basic-auth app with credentials in the URL
poisoned document.baseURI and made relative fetch('/api/…') throw. Guard resolves
non-absolute request URLs against location instead. Ref: creds-in-url-fetch-guard-fleet-pattern.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
f61682e · 2026-07-16 · step 5: orders.json — test order from verification run
One test order written during temp-server verification (SB-MRNM49RM,
SHOPIFY_HOSTED, permalink confirmed correct).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
adc179c · 2026-07-16 · step 4: admin.html — show Shopify checkout link on order cards
Each order card with a shopify_permalink now shows a 🔗 Shopify checkout
link (opens in new tab). Admin date+time chip (🕓 + full ISO in title=)
and sort+density rules preserved.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
936c9a8 · 2026-07-16 · step 3: index.html — real Shopify catalog swatch grid + Shopify-hosted checkout
- Swatch grid now loads from /api/shopify-products (200 real products:
  title, vendor, image, price) with search box, sort (6 options), and
  density slider (2-6 cols) — all persisted to localStorage.
- "Skip — Browse All" button bypasses vibe picker.
- Stripe payment stub removed entirely; replaced with:
  - TEST-MODE banner explaining Bogus Gateway + PayPal toggle note
  - "Proceed to Secure Shopify Checkout" green CTA button
  - On click: local order captured first (POST /api/orders), then
    window.location → https://www.designerwallcoverings.com/cart/<variant>:<qty>
- Confirmation panel shows local order ID + fallback Shopify link in case
  auto-redirect is blocked.
- House rules preserved: sort+density persist to localStorage, vibe filter
  still works for legacy local products.json vibes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
931b363 · 2026-07-16 · step 2: server.js — add Shopify catalog endpoints, Shopify-hosted order capture
New endpoints (read-only, no token):
- GET /api/catalog-meta  → checkout_domain + sample_variant_id
- GET /api/shopify-products?sort=&q=  → 200 real products from shopify-catalog.json

POST /api/orders now records payment_method=SHOPIFY_HOSTED,
payment_status=pending_shopify, and shopify_permalink=
https://www.designerwallcoverings.com/cart/<sample_variant_id>:<qty>

Stripe TEST_STUB references removed from order flow.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
5e7cf3b · 2026-07-16 · step 1: copy real Shopify catalog (200 products, checkout_domain, sample_variant_id)
data/shopify-catalog.json pulled read-only from the live DW store.
No token stored in the app — static file only.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ac3f15d · 2026-07-15 · sample-box v1: vibe-picker funnel + swatch grid + TEST checkout + admin dashboard
- 6-vibe picker (Modern/Traditional/Floral/Grasscloth/Bold Color/Geometric)
- /api/products filtered by vibe with server-side sort + density slider (localStorage-persisted)
- /api/orders: POST places test order to data/orders.json with credit note
- Stripe STUBBED (TEST_STUB, payment_stub:true) — wire with STRIPE_SECRET_KEY + checkout.sessions.create()
- Admin /admin: order cards with HARD RULE created date+time (toLocaleString), sort+density, stats bar
- BASIC_AUTH gates /admin + /api/admin/* only; public funnel stays open
- 20 real DW products from dw_unified (ACTIVE, tagged by style vibe) + 2 seeds
- $15 box price, credited to first roll order (ref: SB-<id>)

File tree

9 files tracked. Click any to browse the source at HEAD.

Other build journals

← Saloonwallpaper  ·  all 4 projects  ·  Sample Followup Sweep →

Export

commits.csv · feed.atom · project.json · commits.json

rendered in 1ms