Majilite Onboard
Search the build
-
82e03262026-09-10 governance(TK-11370): make live-by-default Shopify writers dry-run by default -
4e9ee412026-08-25 creds-safe fetch guard: resolve relative fetch vs credential-free location (creds-in-URL trap) -
608aba42026-08-23 majilite-onboard: href-to-deeper-data — chips are real drill anchors + URL-synced filters (deep-link/back-button), clears href-drill regression -
1b9bdcd2026-08-20 nav-agent: sync v1.3 (host left-sidebar collapse on load) -
2df6c5b2026-08-19 nav-agent: List data full-width tight columns (grid) — layout fix -
c0506942026-08-19 Refresh nav-agent to v1.2 (adds kv-list compact List view, default-off) -
a9e93ff2026-08-13 nav-agent: universal grid-controls drop-in on internal viewer pages (STRONG-only) -
f5257e62026-08-12 viewer standard: add Grid/List toggle + per-field on/off menu to internal record-grid viewer -
cca86902026-08-11 chore: v-patch (session close — DWCC viewer regen) -
63d840a2026-08-11 majilite build.js: tidy stale DWMJ comment refs to DWCC -
859b81a2026-08-11 majilite viewer: regenerate from live DWCC catalog, drop stale DWMJ/staged (relabel DWMJ->DWCC) -
5836b1f2026-08-10 chore: v1.1.0 (session close) — two-variant reconcile publisher + Name/Color FileMaker fix shipped -
a6319aa2026-08-10 Shopify: recover 5 mistakenly-deleted Majilite products (recreated on clean handles) + dedup final 6 orphans; all 160 single clean DWCC listings, 0 stray DWMJ (TK-10403) -
997dd9d2026-08-10 Shopify: resolve 5 duplicate Majilite listings — deleted dup creates, updated real orphans in place to DWCC on clean handles; all 160 now single clean DWCC listings (TK-10403) -
1faa6a62026-08-10 Shopify: reconcile 160 Majilite Metallic to DWCC + Sample/Per-Yard pricing live; 5 late items created (dup-orphan cleanup pending); prune stale DWMJ keys (TK-10403) -
a6acf502026-08-10 auto-data-snapshot: 2026-08-10T16:09:17 (1 data files) — data/published.json -
abda2a62026-08-10 publish_shopify: reconcile-in-place (DWMJ->DWCC SKU rename + add Per-Yard retail variant on 153 live products), collision-safe create for 7 missing (TK-10403) -
2f00dac2026-08-10 Majilite Metallic Specialties I: rename series DWMJ->DWCC (keep 600001-160), stage Majilite 2026 net-showroom prices (retail=cost/0.65/0.85), rename swatch images to DWCC (TK-10403) -
ee8bbbf2026-08-10 chore: session-close quality gate (lint ✓ 0-fix, refactor ✓ 0-change) + package.json v1.0.0 -
8fafdaf2026-08-10 Draft Constant Contact campaign for Majilite Metallic Specialties I (email HTML + spec) -
8889c9b2026-08-10 Publish all 160 Majilite + collection to ALL 13 sales channels -
4006a512026-08-10 Dual-list Majilite: add Fabric + Wallcovering tags to all 160 (list under both aisles) -
444c2f92026-08-10 Set Majilite collection cover image (Stature Gold swatch) -
2b364412026-08-10 Add smart collection 'Majilite Metallic Specialties I' (160 products, published to Online Store + Google) -
511943c2026-08-10 Majilite go-live COMPLETE: 160/160 $4.25 samples live on Online Store + Google (deduped, verified) -
13651492026-08-10 auto-data-snapshot: 2026-08-10T10:58:17 (1 data files) — data/store_audit.json -
bfc60b42026-08-10 auto-data-snapshot: 2026-08-10T10:27:30 (1 data files) — tasks/SHOPIFY-STATUS.md -
001730f2026-08-10 Publish 153/160 Majilite $4.25 samples to live store (active, unpublished-to-channel); 7 handle-collisions + channel-publish blocked on token read_products/read_publications merchant approval -
63a1a272026-08-10 Renumber to DWMJ-600000 block; onboard all 160 as sellable $4.25 samples -
0cc3cd72026-08-10 Onboard Majilite Metallic Specialties I (160 SKUs, DWMJ series, spec-on-every, live import viewer)
Authors
- Steve26
- auto-commit-fleet3
- steve1
Agents used
Skills used
- /cron1
- /pm21
- /wrapper1
- /claude1
- /code1
- /back-button1
- /off1
- /staged1
- /published1
Creative ideas + design notes
82e0326 · 2026-09-10 · governance(TK-11370): make live-by-default Shopify writers dry-run by default
Flip `DRY = argv.includes('--dry')` -> `DRY = !argv.includes('--apply')` so a
zero-argument run no longer fires customer-facing Shopify writes.
Backward compatible: `--dry` still means dry; `--apply` now required to write.
Only zero-arg invocations change behaviour, and every candidate was checked
against its launchd/cron/pm2/wrapper invocation sites first (4 scripts that a
cadence job runs flagless were EXCLUDED so this cannot silently disable them).
Verified: node --check/py_compile 87/87 with a positive control proving the
checker rejects an injected fault; argv truth-table negative test 5/5.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01L53y4oP2itY3qeJ8WQgMzc
4e9ee41 · 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>
File tree
- .gitignore
- README.md
- campaign/campaign.json
- campaign/majilite_email.html
- data/collection.json
- data/products.json
- data/published.json
- data/source_swatches.json
- data/store_audit.json
- migrations/001_majilite_catalog.sql
- migrations/002_vendor_registry.DRAFT.sql
- package.json
- public/images/DWCC-600001.png
- public/images/DWCC-600002.png
- public/images/DWCC-600003.png
- public/images/DWCC-600004.png
- public/images/DWCC-600005.png
- public/images/DWCC-600006.png
- public/images/DWCC-600007.png
- public/images/DWCC-600008.png
- public/images/DWCC-600009.png
- public/images/DWCC-600010.png
- public/images/DWCC-600011.png
- public/images/DWCC-600012.png
- public/images/DWCC-600013.png
- public/images/DWCC-600014.png
- public/images/DWCC-600015.png
- public/images/DWCC-600016.png
- public/images/DWCC-600017.png
- public/images/DWCC-600018.png
- public/images/DWCC-600019.png
- public/images/DWCC-600020.png
- public/images/DWCC-600021.png
- public/images/DWCC-600022.png
- public/images/DWCC-600023.png
- public/images/DWCC-600024.png
- public/images/DWCC-600025.png
- public/images/DWCC-600026.png
- public/images/DWCC-600027.png
- public/images/DWCC-600028.png
- public/images/DWCC-600029.png
- public/images/DWCC-600030.png
- public/images/DWCC-600031.png
- public/images/DWCC-600032.png
- public/images/DWCC-600033.png
- public/images/DWCC-600034.png
- public/images/DWCC-600035.png
- public/images/DWCC-600036.png
- public/images/DWCC-600037.png
- public/images/DWCC-600038.png
- public/images/DWCC-600039.png
- public/images/DWCC-600040.png
- public/images/DWCC-600041.png
- public/images/DWCC-600042.png
- public/images/DWCC-600043.png
- public/images/DWCC-600044.png
- public/images/DWCC-600045.png
- public/images/DWCC-600046.png
- public/images/DWCC-600047.png
- public/images/DWCC-600048.png
- public/images/DWCC-600049.png
- public/images/DWCC-600050.png
- public/images/DWCC-600051.png
- public/images/DWCC-600052.png
- public/images/DWCC-600053.png
- public/images/DWCC-600054.png
- public/images/DWCC-600055.png
- public/images/DWCC-600056.png
- public/images/DWCC-600057.png
- public/images/DWCC-600058.png
- public/images/DWCC-600059.png
- public/images/DWCC-600060.png
- public/images/DWCC-600061.png
- public/images/DWCC-600062.png
- public/images/DWCC-600063.png
- public/images/DWCC-600064.png
- public/images/DWCC-600065.png
- public/images/DWCC-600066.png
- public/images/DWCC-600067.png
- public/images/DWCC-600068.png
- public/images/DWCC-600069.png
- public/images/DWCC-600070.png
- public/images/DWCC-600071.png
- public/images/DWCC-600072.png
- public/images/DWCC-600073.png
- public/images/DWCC-600074.png
- public/images/DWCC-600075.png
- public/images/DWCC-600076.png
- public/images/DWCC-600077.png
- public/images/DWCC-600078.png
- public/images/DWCC-600079.png
- public/images/DWCC-600080.png
- public/images/DWCC-600081.png
- public/images/DWCC-600082.png
- public/images/DWCC-600083.png
- public/images/DWCC-600084.png
- public/images/DWCC-600085.png
- public/images/DWCC-600086.png
- public/images/DWCC-600087.png
- public/images/DWCC-600088.png
- public/images/DWCC-600089.png
- public/images/DWCC-600090.png
- public/images/DWCC-600091.png
- public/images/DWCC-600092.png
- public/images/DWCC-600093.png
- public/images/DWCC-600094.png
- public/images/DWCC-600095.png
- public/images/DWCC-600096.png
- public/images/DWCC-600097.png
- public/images/DWCC-600098.png
- public/images/DWCC-600099.png
- public/images/DWCC-600100.png
- public/images/DWCC-600101.png
- public/images/DWCC-600102.png
- public/images/DWCC-600103.png
- public/images/DWCC-600104.png
- public/images/DWCC-600105.png
- public/images/DWCC-600106.png
- public/images/DWCC-600107.png
- public/images/DWCC-600108.png
- public/images/DWCC-600109.png
- public/images/DWCC-600110.png
- public/images/DWCC-600111.png
- public/images/DWCC-600112.png
- public/images/DWCC-600113.png
- public/images/DWCC-600114.png
- public/images/DWCC-600115.png
- public/images/DWCC-600116.png
- public/images/DWCC-600117.png
- public/images/DWCC-600118.png
- public/images/DWCC-600119.png
- public/images/DWCC-600120.png
- public/images/DWCC-600121.png
- public/images/DWCC-600122.png
- public/images/DWCC-600123.png
- public/images/DWCC-600124.png
- public/images/DWCC-600125.png
- public/images/DWCC-600126.png
- public/images/DWCC-600127.png
- public/images/DWCC-600128.png
- public/images/DWCC-600129.png
- public/images/DWCC-600130.png
- public/images/DWCC-600131.png
- public/images/DWCC-600132.png
- public/images/DWCC-600133.png
- public/images/DWCC-600134.png
- public/images/DWCC-600135.png
- public/images/DWCC-600136.png
- public/images/DWCC-600137.png
- public/images/DWCC-600138.png
- public/images/DWCC-600139.png
- public/images/DWCC-600140.png
- public/images/DWCC-600141.png
- public/images/DWCC-600142.png
- public/images/DWCC-600143.png
- public/images/DWCC-600144.png
- public/images/DWCC-600145.png
- public/images/DWCC-600146.png
- public/images/DWCC-600147.png
- public/images/DWCC-600148.png
- public/images/DWCC-600149.png
- public/images/DWCC-600150.png
- public/images/DWCC-600151.png
- public/images/DWCC-600152.png
- public/images/DWCC-600153.png
- public/images/DWCC-600154.png
- public/images/DWCC-600155.png
- public/images/DWCC-600156.png
- public/images/DWCC-600157.png
- public/images/DWCC-600158.png
- public/images/DWCC-600159.png
- public/images/DWCC-600160.png
- public/index.html
- public/nav-agent/nav-agent.css
- public/nav-agent/nav-agent.js
- scripts/add_dual_tags.js
- scripts/audit.js
- scripts/build.js
- scripts/cc_probe.js
- scripts/collection.js
- scripts/crop_swatches.py
- scripts/emit_sql.js
- scripts/finish.js
- scripts/probe7.js
- scripts/publish_all_channels.js
- scripts/publish_shopify.js
- scripts/reconcile.js
- scripts/set_collection_image.js
- server.js
- tasks/GOLIVE-pending-approval.md
- tasks/SHOPIFY-STATUS.md
- tasks/viewer-screenshot.png