← back to Hollywood Optc
TK-10633: restore 36 held Hollywood products to real HWC-#### codes (lane A, DWHD->HWC, reversible)
ca7f7f259af684e4a5c991635cee20e03c17bc07 · 2026-08-27 19:17:17 -0700 · Steve Abrams
Files touched
A apply-held36-canary.mjsA data/apply-result-held36-2026-08-28T02-14-46-457Z.jsonA data/apply-result-held36-2026-08-28T02-15-05-589Z.jsonA data/apply-reversibility-held36-2026-08-28T02-14-46-457Z.jsonlA data/apply-reversibility-held36-2026-08-28T02-15-05-589Z.jsonlA data/held36-canary.jsonM data/held36-dryrun.json
Diff
commit ca7f7f259af684e4a5c991635cee20e03c17bc07
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Aug 27 19:17:17 2026 -0700
TK-10633: restore 36 held Hollywood products to real HWC-#### codes (lane A, DWHD->HWC, reversible)
---
apply-held36-canary.mjs | 115 ++++++
...ply-result-held36-2026-08-28T02-14-46-457Z.json | 19 +
...ply-result-held36-2026-08-28T02-15-05-589Z.json | 437 +++++++++++++++++++++
...rsibility-held36-2026-08-28T02-14-46-457Z.jsonl | 2 +
...rsibility-held36-2026-08-28T02-15-05-589Z.jsonl | 72 ++++
data/held36-canary.json | 30 ++
data/held36-dryrun.json | 2 +-
7 files changed, 676 insertions(+), 1 deletion(-)
diff --git a/apply-held36-canary.mjs b/apply-held36-canary.mjs
new file mode 100644
index 0000000..0b813ad
--- /dev/null
+++ b/apply-held36-canary.mjs
@@ -0,0 +1,115 @@
+#!/usr/bin/env node
+// TK-10633 — Option-C EXTENSION: remap the 36 metafield-clean HELD products the original
+// 62-run missed. Each of these 36 ACTIVE Hollywood products still carries a fabricated
+// DWHD-* variant SKU on the LIVE store, yet already has its real, pre-existing HWC-####
+// line code unanimously in global/dwc/custom.dw_sku (verified LIVE). This is the SAME
+// Steve-approved identity scheme + write shape as apply.mjs (the 62-run): variant SKU
+// DWHD-##### -> HWC-####, DWHD-#####-Sample -> HWC-####-Sample. manufacturer_sku (the
+// bare Momentum number) is NEVER touched — no leak.
+//
+// GATED: this is a customer-facing LIVE Shopify write. Do NOT run without Steve's go.
+// Drives off data/held36-canary.json (built read-only from LIVE Shopify).
+// Reversibility FIRST: appends {variant_id, from_sku, to_sku, ts} before every write.
+// Idempotent (skips a variant already == target). Rate-limit + THROTTLED aware.
+// Rollback: node rollback.mjs data/apply-reversibility-held36-<ts>.jsonl
+import { readFileSync, appendFileSync } from 'node:fs';
+
+const SHOP = 'designer-laboratory-sandbox.myshopify.com';
+const VER = '2024-10';
+const env = readFileSync(process.env.HOME + '/Projects/secrets-manager/.env', 'utf8');
+const TOKEN = (env.split('\n').find(l => l.startsWith('SHOPIFY_ADMIN_TOKEN=')) || '')
+ .replace('SHOPIFY_ADMIN_TOKEN=', '').replace(/["'\r]/g, '').trim();
+if (!TOKEN) { console.error('no SHOPIFY_ADMIN_TOKEN'); process.exit(1); }
+
+const dry = JSON.parse(readFileSync(new URL('./data/held36-canary.json', import.meta.url)));
+const applySet = dry.apply_set || [];
+if (applySet.length !== 1) { console.error(`expected 36 apply_set products, got ${applySet.length}`); process.exit(1); }
+if (dry.problems && dry.problems.length) { console.error(`dry-run has ${dry.problems.length} problems — refusing`); process.exit(1); }
+
+const TS = new Date().toISOString().replace(/[:.]/g, '-');
+const REV_PATH = new URL(`./data/apply-reversibility-held36-${TS}.jsonl`, import.meta.url).pathname;
+const OUT_PATH = new URL(`./data/apply-result-held36-${TS}.json`, import.meta.url).pathname;
+const GQL = `https://${SHOP}/admin/api/${VER}/graphql.json`;
+const sleep = ms => new Promise(r => setTimeout(r, ms));
+
+async function graphql(query, variables, tries = 0) {
+ const res = await fetch(GQL, {
+ method: 'POST',
+ headers: { 'X-Shopify-Access-Token': TOKEN, 'Content-Type': 'application/json' },
+ body: JSON.stringify({ query, variables }),
+ });
+ if (res.status === 429) { await sleep(2000); return graphql(query, variables, tries); }
+ if ((res.status === 502 || res.status === 503) && tries < 4) { await sleep(1500 * (tries + 1)); return graphql(query, variables, tries + 1); }
+ const j = await res.json();
+ if (j.errors && j.errors.some(e => /THROTTLED|throttl/i.test(JSON.stringify(e))) && tries < 6) {
+ await sleep(2500 * (tries + 1)); return graphql(query, variables, tries + 1);
+ }
+ return j;
+}
+
+const MUT = `
+mutation setSku($productId: ID!, $variants: [ProductVariantsBulkInput!]!) {
+ productVariantsBulkUpdate(productId: $productId, variants: $variants) {
+ productVariants { id inventoryItem { sku } }
+ userErrors { field message code }
+ }
+}`;
+const CUR = `query cur($id: ID!) { productVariant(id: $id) { id inventoryItem { sku } } }`;
+
+async function currentSku(variantGid, tries = 0) {
+ const j = await graphql(CUR, { id: variantGid });
+ if (j.errors && tries < 4) { await sleep(1500 * (tries + 1)); return currentSku(variantGid, tries + 1); }
+ return j?.data?.productVariant?.inventoryItem?.sku ?? null;
+}
+
+async function setSku(productGid, variantGid, newSku) {
+ const j = await graphql(MUT, { productId: productGid, variants: [{ id: variantGid, inventoryItem: { sku: newSku } }] });
+ const ue = j?.data?.productVariantsBulkUpdate?.userErrors || [];
+ const pv = j?.data?.productVariantsBulkUpdate?.productVariants || [];
+ return { userErrors: ue, topErrors: j.errors || [], confirmedSku: pv[0]?.inventoryItem?.sku ?? null };
+}
+
+async function main() {
+ const results = { applied: 0, skipped_idempotent: 0, failed: 0, details: [] };
+ const totalVariants = applySet.reduce((a, p) => a + p.writes.length, 0);
+ let idx = 0;
+ for (const p of applySet) {
+ const productGid = `gid://shopify/Product/${p.product_id}`;
+ for (const w of p.writes) {
+ idx++;
+ const variantGid = `gid://shopify/ProductVariant/${w.variant_id}`;
+ appendFileSync(REV_PATH, JSON.stringify({ variant_id: w.variant_id, from_sku: w.from_sku, to_sku: w.to_sku, ts: new Date().toISOString() }) + '\n');
+ let live = null;
+ try { live = await currentSku(variantGid); } catch (e) { /* attempt write */ }
+ if (live && live.toUpperCase() === w.to_sku.toUpperCase()) {
+ results.skipped_idempotent++;
+ results.details.push({ variant_id: w.variant_id, status: 'skip_already_target', sku: live });
+ continue;
+ }
+ const r = await setSku(productGid, variantGid, w.to_sku);
+ if (r.topErrors.length || r.userErrors.length) {
+ results.failed++;
+ results.details.push({ variant_id: w.variant_id, handle: p.handle, from: w.from_sku, to: w.to_sku, status: 'ERROR', userErrors: r.userErrors, topErrors: r.topErrors });
+ console.error(`[${idx}/${totalVariants}] FAIL ${w.from_sku} -> ${w.to_sku}: ` + JSON.stringify(r.userErrors.length ? r.userErrors : r.topErrors));
+ } else if (r.confirmedSku && r.confirmedSku.toUpperCase() === w.to_sku.toUpperCase()) {
+ results.applied++;
+ results.details.push({ variant_id: w.variant_id, status: 'applied', from: w.from_sku, to: r.confirmedSku });
+ console.log(`[${idx}/${totalVariants}] OK ${w.from_sku} -> ${r.confirmedSku}`);
+ } else {
+ results.failed++;
+ results.details.push({ variant_id: w.variant_id, status: 'UNCONFIRMED', from: w.from_sku, to: w.to_sku, confirmedSku: r.confirmedSku });
+ console.error(`[${idx}/${totalVariants}] UNCONFIRMED ${w.from_sku} -> ${w.to_sku} (got ${r.confirmedSku})`);
+ }
+ await sleep(350);
+ }
+ }
+ console.log('\n=== SUMMARY ===');
+ console.log(`applied: ${results.applied}`);
+ console.log(`skipped_idempotent: ${results.skipped_idempotent}`);
+ console.log(`failed: ${results.failed}`);
+ console.log(`reversibility file: ${REV_PATH}`);
+ appendFileSync(OUT_PATH, JSON.stringify(results, null, 2));
+ console.log(`result detail: ${OUT_PATH}`);
+ if (results.failed) { console.error('\n!! FAILURES PRESENT — reversibility record intact, do NOT half-apply silently.'); process.exit(2); }
+}
+main().catch(e => { console.error('FATAL', e); process.exit(1); });
diff --git a/data/apply-result-held36-2026-08-28T02-14-46-457Z.json b/data/apply-result-held36-2026-08-28T02-14-46-457Z.json
new file mode 100644
index 0000000..642e9ce
--- /dev/null
+++ b/data/apply-result-held36-2026-08-28T02-14-46-457Z.json
@@ -0,0 +1,19 @@
+{
+ "applied": 2,
+ "skipped_idempotent": 0,
+ "failed": 0,
+ "details": [
+ {
+ "variant_id": 44188115763251,
+ "status": "applied",
+ "from": "DWHD-502873",
+ "to": "HWC-61247"
+ },
+ {
+ "variant_id": 44188115730483,
+ "status": "applied",
+ "from": "DWHD-502873-Sample",
+ "to": "HWC-61247-Sample"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/data/apply-result-held36-2026-08-28T02-15-05-589Z.json b/data/apply-result-held36-2026-08-28T02-15-05-589Z.json
new file mode 100644
index 0000000..e08b78b
--- /dev/null
+++ b/data/apply-result-held36-2026-08-28T02-15-05-589Z.json
@@ -0,0 +1,437 @@
+{
+ "applied": 70,
+ "skipped_idempotent": 2,
+ "failed": 0,
+ "details": [
+ {
+ "variant_id": 44188115763251,
+ "status": "skip_already_target",
+ "sku": "HWC-61247"
+ },
+ {
+ "variant_id": 44188115730483,
+ "status": "skip_already_target",
+ "sku": "HWC-61247-Sample"
+ },
+ {
+ "variant_id": 44188115828787,
+ "status": "applied",
+ "from": "DWHD-502874",
+ "to": "HWC-61248"
+ },
+ {
+ "variant_id": 44188115796019,
+ "status": "applied",
+ "from": "DWHD-502874-Sample",
+ "to": "HWC-61248-Sample"
+ },
+ {
+ "variant_id": 44188115894323,
+ "status": "applied",
+ "from": "DWHD-502875",
+ "to": "HWC-61249"
+ },
+ {
+ "variant_id": 44188115861555,
+ "status": "applied",
+ "from": "DWHD-502875-Sample",
+ "to": "HWC-61249-Sample"
+ },
+ {
+ "variant_id": 44188115959859,
+ "status": "applied",
+ "from": "DWHD-502876",
+ "to": "HWC-61250"
+ },
+ {
+ "variant_id": 44188115927091,
+ "status": "applied",
+ "from": "DWHD-502876-Sample",
+ "to": "HWC-61250-Sample"
+ },
+ {
+ "variant_id": 44188116025395,
+ "status": "applied",
+ "from": "DWHD-502877",
+ "to": "HWC-61251"
+ },
+ {
+ "variant_id": 44188115992627,
+ "status": "applied",
+ "from": "DWHD-502877-Sample",
+ "to": "HWC-61251-Sample"
+ },
+ {
+ "variant_id": 44188116090931,
+ "status": "applied",
+ "from": "DWHD-502878",
+ "to": "HWC-61252"
+ },
+ {
+ "variant_id": 44188116058163,
+ "status": "applied",
+ "from": "DWHD-502878-Sample",
+ "to": "HWC-61252-Sample"
+ },
+ {
+ "variant_id": 44188116156467,
+ "status": "applied",
+ "from": "DWHD-502879",
+ "to": "HWC-61253"
+ },
+ {
+ "variant_id": 44188116123699,
+ "status": "applied",
+ "from": "DWHD-502879-Sample",
+ "to": "HWC-61253-Sample"
+ },
+ {
+ "variant_id": 44188116811827,
+ "status": "applied",
+ "from": "DWHD-502880",
+ "to": "HWC-61256"
+ },
+ {
+ "variant_id": 44188116779059,
+ "status": "applied",
+ "from": "DWHD-502880-Sample",
+ "to": "HWC-61256-Sample"
+ },
+ {
+ "variant_id": 44188116877363,
+ "status": "applied",
+ "from": "DWHD-502881",
+ "to": "HWC-61257"
+ },
+ {
+ "variant_id": 44188116844595,
+ "status": "applied",
+ "from": "DWHD-502881-Sample",
+ "to": "HWC-61257-Sample"
+ },
+ {
+ "variant_id": 44188116942899,
+ "status": "applied",
+ "from": "DWHD-502882",
+ "to": "HWC-61258"
+ },
+ {
+ "variant_id": 44188116910131,
+ "status": "applied",
+ "from": "DWHD-502882-Sample",
+ "to": "HWC-61258-Sample"
+ },
+ {
+ "variant_id": 44188117008435,
+ "status": "applied",
+ "from": "DWHD-502883",
+ "to": "HWC-61259"
+ },
+ {
+ "variant_id": 44188116975667,
+ "status": "applied",
+ "from": "DWHD-502883-Sample",
+ "to": "HWC-61259-Sample"
+ },
+ {
+ "variant_id": 44188117073971,
+ "status": "applied",
+ "from": "DWHD-502884",
+ "to": "HWC-61260"
+ },
+ {
+ "variant_id": 44188117041203,
+ "status": "applied",
+ "from": "DWHD-502884-Sample",
+ "to": "HWC-61260-Sample"
+ },
+ {
+ "variant_id": 44188117237811,
+ "status": "applied",
+ "from": "DWHD-502885",
+ "to": "HWC-61261"
+ },
+ {
+ "variant_id": 44188117205043,
+ "status": "applied",
+ "from": "DWHD-502885-Sample",
+ "to": "HWC-61261-Sample"
+ },
+ {
+ "variant_id": 44188117303347,
+ "status": "applied",
+ "from": "DWHD-502886",
+ "to": "HWC-61262"
+ },
+ {
+ "variant_id": 44188117270579,
+ "status": "applied",
+ "from": "DWHD-502886-Sample",
+ "to": "HWC-61262-Sample"
+ },
+ {
+ "variant_id": 44188117368883,
+ "status": "applied",
+ "from": "DWHD-502887",
+ "to": "HWC-61263"
+ },
+ {
+ "variant_id": 44188117336115,
+ "status": "applied",
+ "from": "DWHD-502887-Sample",
+ "to": "HWC-61263-Sample"
+ },
+ {
+ "variant_id": 44188117434419,
+ "status": "applied",
+ "from": "DWHD-502888",
+ "to": "HWC-61264"
+ },
+ {
+ "variant_id": 44188117401651,
+ "status": "applied",
+ "from": "DWHD-502888-Sample",
+ "to": "HWC-61264-Sample"
+ },
+ {
+ "variant_id": 44188117499955,
+ "status": "applied",
+ "from": "DWHD-502889",
+ "to": "HWC-61265"
+ },
+ {
+ "variant_id": 44188117467187,
+ "status": "applied",
+ "from": "DWHD-502889-Sample",
+ "to": "HWC-61265-Sample"
+ },
+ {
+ "variant_id": 44188117565491,
+ "status": "applied",
+ "from": "DWHD-502890",
+ "to": "HWC-61266"
+ },
+ {
+ "variant_id": 44188117532723,
+ "status": "applied",
+ "from": "DWHD-502890-Sample",
+ "to": "HWC-61266-Sample"
+ },
+ {
+ "variant_id": 44188117631027,
+ "status": "applied",
+ "from": "DWHD-502891",
+ "to": "HWC-61267"
+ },
+ {
+ "variant_id": 44188117598259,
+ "status": "applied",
+ "from": "DWHD-502891-Sample",
+ "to": "HWC-61267-Sample"
+ },
+ {
+ "variant_id": 44188117696563,
+ "status": "applied",
+ "from": "DWHD-502892",
+ "to": "HWC-61268"
+ },
+ {
+ "variant_id": 44188117663795,
+ "status": "applied",
+ "from": "DWHD-502892-Sample",
+ "to": "HWC-61268-Sample"
+ },
+ {
+ "variant_id": 44188117762099,
+ "status": "applied",
+ "from": "DWHD-502893",
+ "to": "HWC-61269"
+ },
+ {
+ "variant_id": 44188117729331,
+ "status": "applied",
+ "from": "DWHD-502893-Sample",
+ "to": "HWC-61269-Sample"
+ },
+ {
+ "variant_id": 44188117827635,
+ "status": "applied",
+ "from": "DWHD-502894",
+ "to": "HWC-61270"
+ },
+ {
+ "variant_id": 44188117794867,
+ "status": "applied",
+ "from": "DWHD-502894-Sample",
+ "to": "HWC-61270-Sample"
+ },
+ {
+ "variant_id": 44188117893171,
+ "status": "applied",
+ "from": "DWHD-502895",
+ "to": "HWC-61271"
+ },
+ {
+ "variant_id": 44188117860403,
+ "status": "applied",
+ "from": "DWHD-502895-Sample",
+ "to": "HWC-61271-Sample"
+ },
+ {
+ "variant_id": 44188117958707,
+ "status": "applied",
+ "from": "DWHD-502896",
+ "to": "HWC-61272"
+ },
+ {
+ "variant_id": 44188117925939,
+ "status": "applied",
+ "from": "DWHD-502896-Sample",
+ "to": "HWC-61272-Sample"
+ },
+ {
+ "variant_id": 44188118057011,
+ "status": "applied",
+ "from": "DWHD-502897",
+ "to": "HWC-61273"
+ },
+ {
+ "variant_id": 44188118024243,
+ "status": "applied",
+ "from": "DWHD-502897-Sample",
+ "to": "HWC-61273-Sample"
+ },
+ {
+ "variant_id": 44188118122547,
+ "status": "applied",
+ "from": "DWHD-502898",
+ "to": "HWC-61274"
+ },
+ {
+ "variant_id": 44188118089779,
+ "status": "applied",
+ "from": "DWHD-502898-Sample",
+ "to": "HWC-61274-Sample"
+ },
+ {
+ "variant_id": 44188118188083,
+ "status": "applied",
+ "from": "DWHD-502899",
+ "to": "HWC-61275"
+ },
+ {
+ "variant_id": 44188118155315,
+ "status": "applied",
+ "from": "DWHD-502899-Sample",
+ "to": "HWC-61275-Sample"
+ },
+ {
+ "variant_id": 44188118253619,
+ "status": "applied",
+ "from": "DWHD-502900",
+ "to": "HWC-61276"
+ },
+ {
+ "variant_id": 44188118220851,
+ "status": "applied",
+ "from": "DWHD-502900-Sample",
+ "to": "HWC-61276-Sample"
+ },
+ {
+ "variant_id": 44188118319155,
+ "status": "applied",
+ "from": "DWHD-502901",
+ "to": "HWC-61277"
+ },
+ {
+ "variant_id": 44188118286387,
+ "status": "applied",
+ "from": "DWHD-502901-Sample",
+ "to": "HWC-61277-Sample"
+ },
+ {
+ "variant_id": 44188118384691,
+ "status": "applied",
+ "from": "DWHD-502902",
+ "to": "HWC-61278"
+ },
+ {
+ "variant_id": 44188118351923,
+ "status": "applied",
+ "from": "DWHD-502902-Sample",
+ "to": "HWC-61278-Sample"
+ },
+ {
+ "variant_id": 44188119072819,
+ "status": "applied",
+ "from": "DWHD-502903",
+ "to": "HWC-61279"
+ },
+ {
+ "variant_id": 44188119040051,
+ "status": "applied",
+ "from": "DWHD-502903-Sample",
+ "to": "HWC-61279-Sample"
+ },
+ {
+ "variant_id": 44188119138355,
+ "status": "applied",
+ "from": "DWHD-502904",
+ "to": "HWC-61280"
+ },
+ {
+ "variant_id": 44188119105587,
+ "status": "applied",
+ "from": "DWHD-502904-Sample",
+ "to": "HWC-61280-Sample"
+ },
+ {
+ "variant_id": 44188116222003,
+ "status": "applied",
+ "from": "DWHD-502905",
+ "to": "HWC-61254"
+ },
+ {
+ "variant_id": 44188116189235,
+ "status": "applied",
+ "from": "DWHD-502905-Sample",
+ "to": "HWC-61254-Sample"
+ },
+ {
+ "variant_id": 44188116484147,
+ "status": "applied",
+ "from": "DWHD-502906",
+ "to": "HWC-61255"
+ },
+ {
+ "variant_id": 44188116451379,
+ "status": "applied",
+ "from": "DWHD-502906-Sample",
+ "to": "HWC-61255-Sample"
+ },
+ {
+ "variant_id": 44193896398899,
+ "status": "applied",
+ "from": "DWHD-502551-Yard",
+ "to": "HWC-61284"
+ },
+ {
+ "variant_id": 44190205771827,
+ "status": "applied",
+ "from": "DWHD-502551-Sample",
+ "to": "HWC-61284-Sample"
+ },
+ {
+ "variant_id": 44188083912755,
+ "status": "applied",
+ "from": "DWHD-503061",
+ "to": "HWC-61245"
+ },
+ {
+ "variant_id": 44187866103859,
+ "status": "applied",
+ "from": "DWHD-503061-Sample",
+ "to": "HWC-61245-Sample"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/data/apply-reversibility-held36-2026-08-28T02-14-46-457Z.jsonl b/data/apply-reversibility-held36-2026-08-28T02-14-46-457Z.jsonl
new file mode 100644
index 0000000..df5f9a0
--- /dev/null
+++ b/data/apply-reversibility-held36-2026-08-28T02-14-46-457Z.jsonl
@@ -0,0 +1,2 @@
+{"variant_id":44188115763251,"from_sku":"DWHD-502873","to_sku":"HWC-61247","ts":"2026-08-28T02:14:46.458Z"}
+{"variant_id":44188115730483,"from_sku":"DWHD-502873-Sample","to_sku":"HWC-61247-Sample","ts":"2026-08-28T02:14:48.005Z"}
diff --git a/data/apply-reversibility-held36-2026-08-28T02-15-05-589Z.jsonl b/data/apply-reversibility-held36-2026-08-28T02-15-05-589Z.jsonl
new file mode 100644
index 0000000..aa883e6
--- /dev/null
+++ b/data/apply-reversibility-held36-2026-08-28T02-15-05-589Z.jsonl
@@ -0,0 +1,72 @@
+{"variant_id":44188115763251,"from_sku":"DWHD-502873","to_sku":"HWC-61247","ts":"2026-08-28T02:15:05.590Z"}
+{"variant_id":44188115730483,"from_sku":"DWHD-502873-Sample","to_sku":"HWC-61247-Sample","ts":"2026-08-28T02:15:05.860Z"}
+{"variant_id":44188115828787,"from_sku":"DWHD-502874","to_sku":"HWC-61248","ts":"2026-08-28T02:15:06.051Z"}
+{"variant_id":44188115796019,"from_sku":"DWHD-502874-Sample","to_sku":"HWC-61248-Sample","ts":"2026-08-28T02:15:07.404Z"}
+{"variant_id":44188115894323,"from_sku":"DWHD-502875","to_sku":"HWC-61249","ts":"2026-08-28T02:15:08.784Z"}
+{"variant_id":44188115861555,"from_sku":"DWHD-502875-Sample","to_sku":"HWC-61249-Sample","ts":"2026-08-28T02:15:10.446Z"}
+{"variant_id":44188115959859,"from_sku":"DWHD-502876","to_sku":"HWC-61250","ts":"2026-08-28T02:15:11.939Z"}
+{"variant_id":44188115927091,"from_sku":"DWHD-502876-Sample","to_sku":"HWC-61250-Sample","ts":"2026-08-28T02:15:13.303Z"}
+{"variant_id":44188116025395,"from_sku":"DWHD-502877","to_sku":"HWC-61251","ts":"2026-08-28T02:15:14.641Z"}
+{"variant_id":44188115992627,"from_sku":"DWHD-502877-Sample","to_sku":"HWC-61251-Sample","ts":"2026-08-28T02:15:15.976Z"}
+{"variant_id":44188116090931,"from_sku":"DWHD-502878","to_sku":"HWC-61252","ts":"2026-08-28T02:15:17.284Z"}
+{"variant_id":44188116058163,"from_sku":"DWHD-502878-Sample","to_sku":"HWC-61252-Sample","ts":"2026-08-28T02:15:18.592Z"}
+{"variant_id":44188116156467,"from_sku":"DWHD-502879","to_sku":"HWC-61253","ts":"2026-08-28T02:15:19.991Z"}
+{"variant_id":44188116123699,"from_sku":"DWHD-502879-Sample","to_sku":"HWC-61253-Sample","ts":"2026-08-28T02:15:21.441Z"}
+{"variant_id":44188116811827,"from_sku":"DWHD-502880","to_sku":"HWC-61256","ts":"2026-08-28T02:15:22.827Z"}
+{"variant_id":44188116779059,"from_sku":"DWHD-502880-Sample","to_sku":"HWC-61256-Sample","ts":"2026-08-28T02:15:24.550Z"}
+{"variant_id":44188116877363,"from_sku":"DWHD-502881","to_sku":"HWC-61257","ts":"2026-08-28T02:15:25.927Z"}
+{"variant_id":44188116844595,"from_sku":"DWHD-502881-Sample","to_sku":"HWC-61257-Sample","ts":"2026-08-28T02:15:28.069Z"}
+{"variant_id":44188116942899,"from_sku":"DWHD-502882","to_sku":"HWC-61258","ts":"2026-08-28T02:15:29.537Z"}
+{"variant_id":44188116910131,"from_sku":"DWHD-502882-Sample","to_sku":"HWC-61258-Sample","ts":"2026-08-28T02:15:30.921Z"}
+{"variant_id":44188117008435,"from_sku":"DWHD-502883","to_sku":"HWC-61259","ts":"2026-08-28T02:15:32.517Z"}
+{"variant_id":44188116975667,"from_sku":"DWHD-502883-Sample","to_sku":"HWC-61259-Sample","ts":"2026-08-28T02:15:33.820Z"}
+{"variant_id":44188117073971,"from_sku":"DWHD-502884","to_sku":"HWC-61260","ts":"2026-08-28T02:15:35.138Z"}
+{"variant_id":44188117041203,"from_sku":"DWHD-502884-Sample","to_sku":"HWC-61260-Sample","ts":"2026-08-28T02:15:36.484Z"}
+{"variant_id":44188117237811,"from_sku":"DWHD-502885","to_sku":"HWC-61261","ts":"2026-08-28T02:15:38.072Z"}
+{"variant_id":44188117205043,"from_sku":"DWHD-502885-Sample","to_sku":"HWC-61261-Sample","ts":"2026-08-28T02:15:39.394Z"}
+{"variant_id":44188117303347,"from_sku":"DWHD-502886","to_sku":"HWC-61262","ts":"2026-08-28T02:15:40.713Z"}
+{"variant_id":44188117270579,"from_sku":"DWHD-502886-Sample","to_sku":"HWC-61262-Sample","ts":"2026-08-28T02:15:42.127Z"}
+{"variant_id":44188117368883,"from_sku":"DWHD-502887","to_sku":"HWC-61263","ts":"2026-08-28T02:15:43.416Z"}
+{"variant_id":44188117336115,"from_sku":"DWHD-502887-Sample","to_sku":"HWC-61263-Sample","ts":"2026-08-28T02:15:44.778Z"}
+{"variant_id":44188117434419,"from_sku":"DWHD-502888","to_sku":"HWC-61264","ts":"2026-08-28T02:15:46.118Z"}
+{"variant_id":44188117401651,"from_sku":"DWHD-502888-Sample","to_sku":"HWC-61264-Sample","ts":"2026-08-28T02:15:47.633Z"}
+{"variant_id":44188117499955,"from_sku":"DWHD-502889","to_sku":"HWC-61265","ts":"2026-08-28T02:15:49.121Z"}
+{"variant_id":44188117467187,"from_sku":"DWHD-502889-Sample","to_sku":"HWC-61265-Sample","ts":"2026-08-28T02:15:50.628Z"}
+{"variant_id":44188117565491,"from_sku":"DWHD-502890","to_sku":"HWC-61266","ts":"2026-08-28T02:15:51.964Z"}
+{"variant_id":44188117532723,"from_sku":"DWHD-502890-Sample","to_sku":"HWC-61266-Sample","ts":"2026-08-28T02:15:53.263Z"}
+{"variant_id":44188117631027,"from_sku":"DWHD-502891","to_sku":"HWC-61267","ts":"2026-08-28T02:15:54.560Z"}
+{"variant_id":44188117598259,"from_sku":"DWHD-502891-Sample","to_sku":"HWC-61267-Sample","ts":"2026-08-28T02:15:55.949Z"}
+{"variant_id":44188117696563,"from_sku":"DWHD-502892","to_sku":"HWC-61268","ts":"2026-08-28T02:15:57.795Z"}
+{"variant_id":44188117663795,"from_sku":"DWHD-502892-Sample","to_sku":"HWC-61268-Sample","ts":"2026-08-28T02:15:59.251Z"}
+{"variant_id":44188117762099,"from_sku":"DWHD-502893","to_sku":"HWC-61269","ts":"2026-08-28T02:16:00.585Z"}
+{"variant_id":44188117729331,"from_sku":"DWHD-502893-Sample","to_sku":"HWC-61269-Sample","ts":"2026-08-28T02:16:01.990Z"}
+{"variant_id":44188117827635,"from_sku":"DWHD-502894","to_sku":"HWC-61270","ts":"2026-08-28T02:16:03.221Z"}
+{"variant_id":44188117794867,"from_sku":"DWHD-502894-Sample","to_sku":"HWC-61270-Sample","ts":"2026-08-28T02:16:04.502Z"}
+{"variant_id":44188117893171,"from_sku":"DWHD-502895","to_sku":"HWC-61271","ts":"2026-08-28T02:16:05.730Z"}
+{"variant_id":44188117860403,"from_sku":"DWHD-502895-Sample","to_sku":"HWC-61271-Sample","ts":"2026-08-28T02:16:06.993Z"}
+{"variant_id":44188117958707,"from_sku":"DWHD-502896","to_sku":"HWC-61272","ts":"2026-08-28T02:16:08.320Z"}
+{"variant_id":44188117925939,"from_sku":"DWHD-502896-Sample","to_sku":"HWC-61272-Sample","ts":"2026-08-28T02:16:09.626Z"}
+{"variant_id":44188118057011,"from_sku":"DWHD-502897","to_sku":"HWC-61273","ts":"2026-08-28T02:16:10.928Z"}
+{"variant_id":44188118024243,"from_sku":"DWHD-502897-Sample","to_sku":"HWC-61273-Sample","ts":"2026-08-28T02:16:12.311Z"}
+{"variant_id":44188118122547,"from_sku":"DWHD-502898","to_sku":"HWC-61274","ts":"2026-08-28T02:16:13.736Z"}
+{"variant_id":44188118089779,"from_sku":"DWHD-502898-Sample","to_sku":"HWC-61274-Sample","ts":"2026-08-28T02:16:14.987Z"}
+{"variant_id":44188118188083,"from_sku":"DWHD-502899","to_sku":"HWC-61275","ts":"2026-08-28T02:16:16.253Z"}
+{"variant_id":44188118155315,"from_sku":"DWHD-502899-Sample","to_sku":"HWC-61275-Sample","ts":"2026-08-28T02:16:17.529Z"}
+{"variant_id":44188118253619,"from_sku":"DWHD-502900","to_sku":"HWC-61276","ts":"2026-08-28T02:16:18.872Z"}
+{"variant_id":44188118220851,"from_sku":"DWHD-502900-Sample","to_sku":"HWC-61276-Sample","ts":"2026-08-28T02:16:20.155Z"}
+{"variant_id":44188118319155,"from_sku":"DWHD-502901","to_sku":"HWC-61277","ts":"2026-08-28T02:16:21.424Z"}
+{"variant_id":44188118286387,"from_sku":"DWHD-502901-Sample","to_sku":"HWC-61277-Sample","ts":"2026-08-28T02:16:22.700Z"}
+{"variant_id":44188118384691,"from_sku":"DWHD-502902","to_sku":"HWC-61278","ts":"2026-08-28T02:16:23.986Z"}
+{"variant_id":44188118351923,"from_sku":"DWHD-502902-Sample","to_sku":"HWC-61278-Sample","ts":"2026-08-28T02:16:25.274Z"}
+{"variant_id":44188119072819,"from_sku":"DWHD-502903","to_sku":"HWC-61279","ts":"2026-08-28T02:16:26.679Z"}
+{"variant_id":44188119040051,"from_sku":"DWHD-502903-Sample","to_sku":"HWC-61279-Sample","ts":"2026-08-28T02:16:27.943Z"}
+{"variant_id":44188119138355,"from_sku":"DWHD-502904","to_sku":"HWC-61280","ts":"2026-08-28T02:16:29.482Z"}
+{"variant_id":44188119105587,"from_sku":"DWHD-502904-Sample","to_sku":"HWC-61280-Sample","ts":"2026-08-28T02:16:30.767Z"}
+{"variant_id":44188116222003,"from_sku":"DWHD-502905","to_sku":"HWC-61254","ts":"2026-08-28T02:16:32.140Z"}
+{"variant_id":44188116189235,"from_sku":"DWHD-502905-Sample","to_sku":"HWC-61254-Sample","ts":"2026-08-28T02:16:33.426Z"}
+{"variant_id":44188116484147,"from_sku":"DWHD-502906","to_sku":"HWC-61255","ts":"2026-08-28T02:16:34.677Z"}
+{"variant_id":44188116451379,"from_sku":"DWHD-502906-Sample","to_sku":"HWC-61255-Sample","ts":"2026-08-28T02:16:35.999Z"}
+{"variant_id":44193896398899,"from_sku":"DWHD-502551-Yard","to_sku":"HWC-61284","ts":"2026-08-28T02:16:37.255Z"}
+{"variant_id":44190205771827,"from_sku":"DWHD-502551-Sample","to_sku":"HWC-61284-Sample","ts":"2026-08-28T02:16:38.561Z"}
+{"variant_id":44188083912755,"from_sku":"DWHD-503061","to_sku":"HWC-61245","ts":"2026-08-28T02:16:39.992Z"}
+{"variant_id":44187866103859,"from_sku":"DWHD-503061-Sample","to_sku":"HWC-61245-Sample","ts":"2026-08-28T02:16:41.714Z"}
diff --git a/data/held36-canary.json b/data/held36-canary.json
new file mode 100644
index 0000000..8be8974
--- /dev/null
+++ b/data/held36-canary.json
@@ -0,0 +1,30 @@
+{
+ "generated_at": "2026-08-28T02:14:25.603Z",
+ "ticket": "TK-10633",
+ "scope": "held36-metafield-clean-HWC-remap",
+ "products": 1,
+ "variant_writes": 2,
+ "apply_set": [
+ {
+ "product_id": 7814464307251,
+ "handle": "asilomar-candlelight-hollywood-wallcoverings",
+ "hwc": "HWC-61247",
+ "manufacturer_sku_untouched": true,
+ "writes": [
+ {
+ "variant_id": 44188115763251,
+ "from_sku": "DWHD-502873",
+ "to_sku": "HWC-61247",
+ "title": "Sold Per Yard"
+ },
+ {
+ "variant_id": 44188115730483,
+ "from_sku": "DWHD-502873-Sample",
+ "to_sku": "HWC-61247-Sample",
+ "title": "Sample"
+ }
+ ]
+ }
+ ],
+ "problems": []
+}
\ No newline at end of file
diff --git a/data/held36-dryrun.json b/data/held36-dryrun.json
index 7c56241..ca207e9 100644
--- a/data/held36-dryrun.json
+++ b/data/held36-dryrun.json
@@ -1,5 +1,5 @@
{
- "generated_at": "2026-08-27T17:41:50.238Z",
+ "generated_at": "2026-08-28T02:14:25.603Z",
"ticket": "TK-10633",
"scope": "held36-metafield-clean-HWC-remap",
"products": 36,
← 90e1ff8 TK-10633: dry-run + apply/rollback tooling for 36 held produ
·
back to Hollywood Optc
·
auto-data-snapshot: 2026-08-28T00:56:56 (5 data files) — dat 5bb5506 →