← back to Reid Witlin Onboarding
Add guarded Reid Witlin recovery executor
039d074d6b77f9d5565f4af1e8b4b1ba3d41d0cb · 2026-09-02 23:31:20 -0700 · Steve Abrams
Files touched
M .gitignoreA recover_tk10066.pyA verification/tk10066-recovery-results.jsonl
Diff
commit 039d074d6b77f9d5565f4af1e8b4b1ba3d41d0cb
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Wed Sep 2 23:31:20 2026 -0700
Add guarded Reid Witlin recovery executor
---
.gitignore | 1 +
recover_tk10066.py | 266 ++++++++++++++++++++++++++++
verification/tk10066-recovery-results.jsonl | 93 ++++++++++
3 files changed, 360 insertions(+)
diff --git a/.gitignore b/.gitignore
index 87910ab..d7de62b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@ dist/
build/
.next/
__pycache__/
+verification/*.lock
diff --git a/recover_tk10066.py b/recover_tk10066.py
new file mode 100644
index 0000000..6a030b1
--- /dev/null
+++ b/recover_tk10066.py
@@ -0,0 +1,266 @@
+#!/usr/bin/env python3
+"""Execute Steve-approved TK-10066 recovery from an immutable manifest.
+
+Dry-run is the default. Live mode archives exact duplicate DRAFTs, moves the
+Pool-B side of each cross-identity collision to a fresh SKU, and repairs two
+canonical links. Every operation is CAS-guarded, read back, and JSONL-ledgered.
+"""
+import argparse
+import datetime as dt
+import fcntl
+import json
+import os
+import subprocess
+import time
+
+import create2
+
+HERE = os.path.dirname(os.path.abspath(__file__))
+LOCK = os.path.join(HERE, "verification", "tk10066-recovery.lock")
+LEDGER = os.path.join(HERE, "verification", "tk10066-recovery-results.jsonl")
+
+PRODUCT = """query($id:ID!){product(id:$id){id handle title status vendor variants(first:10){nodes{id sku price}}}}"""
+SKU_LOOKUP = """query($query:String!){productVariants(first:20,query:$query){nodes{id sku product{id handle status}}}}"""
+ARCHIVE = """mutation($input:ProductInput!){productUpdate(input:$input){product{id handle status}userErrors{field message}}}"""
+RESKU = """mutation($pid:ID!,$variants:[ProductVariantsBulkInput!]!){productVariantsBulkUpdate(productId:$pid,variants:$variants){productVariants{id sku}userErrors{field message}}}"""
+
+
+def now():
+ return dt.datetime.now(dt.timezone.utc).isoformat()
+
+
+def q(value):
+ return "'" + str(value).replace("'", "''") + "'"
+
+
+def gql_data(query, variables):
+ response = create2.gql(query, variables)
+ if response.get("errors"):
+ raise RuntimeError(response["errors"])
+ return response.get("data") or {}
+
+
+def product(pid):
+ return gql_data(PRODUCT, {"id": pid}).get("product")
+
+
+def sku_matches(sku):
+ connection = gql_data(SKU_LOOKUP, {"query": f"sku:{sku}"}).get("productVariants") or {}
+ return [node for node in connection.get("nodes") or [] if node.get("sku") == sku]
+
+
+def psql(sql, tuples=False):
+ command = ["psql", "host=/tmp dbname=dw_unified", "-X", "-v", "ON_ERROR_STOP=1"]
+ if tuples:
+ command += ["-qAt", "-F", "\t"]
+ command += ["-c", sql]
+ result = subprocess.run(command, capture_output=True, text=True)
+ if result.returncode:
+ raise RuntimeError(result.stderr.strip() or result.stdout.strip())
+ return result.stdout.strip()
+
+
+def record(kind, state, payload):
+ entry = {"ts": now(), "ticket": "TK-10066", "kind": kind, "state": state, **payload}
+ with open(LEDGER, "a") as fh:
+ fh.write(json.dumps(entry, sort_keys=True) + "\n")
+ fh.flush()
+ os.fsync(fh.fileno())
+
+
+def archive_one(item, live):
+ archive_ids = item["archive_product_ids"]
+ if len(archive_ids) != 1:
+ raise RuntimeError(f"Expected one archive target for {item['sku']}")
+ pid = archive_ids[0]
+ expected = next(p for p in item["shopify_products"] if p["product_id"] == pid)
+ before = product(pid)
+ if not before or before["handle"] != expected["handle"] or before["vendor"] != "Architectural Fabrics":
+ raise RuntimeError(f"Archive identity drift for {pid}: {before}")
+ if before["status"] == "ARCHIVED":
+ record("archive", "already_applied", {"sku": item["sku"], "product_id": pid})
+ return
+ variants = before.get("variants", {}).get("nodes", [])
+ if before["status"] != "DRAFT" or item["sku"] not in {v.get("sku") for v in variants}:
+ raise RuntimeError(f"Archive CAS failed for {pid}: {before}")
+ if not live:
+ record("archive", "dry_run", {"sku": item["sku"], "product_id": pid, "before": before})
+ return
+ result = gql_data(ARCHIVE, {"input": {"id": pid, "status": "ARCHIVED"}})["productUpdate"]
+ if result.get("userErrors"):
+ raise RuntimeError(result["userErrors"])
+ after = product(pid)
+ if not after or after["status"] != "ARCHIVED":
+ raise RuntimeError(f"Archive read-back failed for {pid}: {after}")
+ record("archive", "applied", {"sku": item["sku"], "product_id": pid,
+ "before": before, "after": after})
+
+
+def db_resku(item):
+ old, new = item["old_sku"], item["new_sku"]
+ mover, retain = item["move_identity"], item["retain_identity"]
+ pid, handle = mover["product_id"], item["move_product"]["handle"]
+ sql = f"""
+BEGIN;
+DO $$
+BEGIN
+ IF NOT EXISTS (SELECT 1 FROM rwltd_catalog WHERE id={int(mover['row_id'])}
+ AND mfr_sku={q(mover['mfr_sku'])} AND dw_sku IN ({q(old)},{q(new)})) THEN
+ RAISE EXCEPTION 'mover catalog CAS failed';
+ END IF;
+ IF NOT EXISTS (SELECT 1 FROM rwltd_catalog WHERE id={int(retain['row_id'])}
+ AND mfr_sku={q(retain['mfr_sku'])} AND dw_sku={q(old)}) THEN
+ RAISE EXCEPTION 'retain catalog CAS failed';
+ END IF;
+END $$;
+UPDATE rwltd_catalog SET dw_sku={q(new)}, shopify_product_id={q(pid)},
+ shopify_handle={q(handle)}, on_shopify=true, agent_updated_at=now()
+WHERE id={int(mover['row_id'])} AND mfr_sku={q(mover['mfr_sku'])};
+INSERT INTO dw_sku_registry
+ (dw_sku,vendor_prefix,vendor_name,mfr_sku,shopify_product_id,shopify_handle,status,updated_at)
+VALUES ({q(old)},'DWKR','Architectural Fabrics',{q(retain['mfr_sku'])},
+ {q(retain['product_id'])},{q(retain['handle'])},'draft',now())
+ON CONFLICT (vendor_prefix,mfr_sku) DO UPDATE SET dw_sku=EXCLUDED.dw_sku,
+ shopify_product_id=EXCLUDED.shopify_product_id,shopify_handle=EXCLUDED.shopify_handle,
+ status='draft',updated_at=now();
+INSERT INTO dw_sku_registry
+ (dw_sku,vendor_prefix,vendor_name,mfr_sku,shopify_product_id,shopify_handle,status,updated_at)
+VALUES ({q(new)},'DWKR','Architectural Fabrics',{q(mover['mfr_sku'])},{q(pid)},{q(handle)},'draft',now())
+ON CONFLICT (vendor_prefix,mfr_sku) DO UPDATE SET dw_sku=EXCLUDED.dw_sku,
+ shopify_product_id=EXCLUDED.shopify_product_id,shopify_handle=EXCLUDED.shopify_handle,
+ status='draft',updated_at=now();
+COMMIT;
+"""
+ psql(sql)
+
+
+def verify_db_resku(item):
+ mover = item["move_identity"]
+ output = psql(
+ f"SELECT dw_sku,COALESCE(shopify_product_id,''),COALESCE(shopify_handle,'') "
+ f"FROM rwltd_catalog WHERE id={int(mover['row_id'])};", tuples=True)
+ if output != "\t".join([item["new_sku"], mover["product_id"], item["move_product"]["handle"]]):
+ raise RuntimeError(f"Catalog resku read-back failed: {output}")
+ registry = psql(
+ f"SELECT dw_sku,COALESCE(shopify_product_id,'') FROM dw_sku_registry "
+ f"WHERE vendor_prefix='DWKR' AND mfr_sku={q(mover['mfr_sku'])};", tuples=True)
+ if registry != "\t".join([item["new_sku"], mover["product_id"]]):
+ raise RuntimeError(f"Registry resku read-back failed: {registry}")
+
+
+def resku_one(item, live):
+ old_variant_sku, new_variant_sku = item["old_sku"] + "-Sample", item["new_sku"] + "-Sample"
+ expected = item["move_product"]
+ before = product(expected["product_id"])
+ if not before or before["handle"] != expected["handle"] or before["status"] != "DRAFT":
+ raise RuntimeError(f"Re-SKU identity/status drift: {before}")
+ variant = next((v for v in before["variants"]["nodes"] if v["id"] == expected["variant_id"]), None)
+ if not variant or variant["sku"] not in (old_variant_sku, new_variant_sku):
+ raise RuntimeError(f"Re-SKU variant CAS failed: {variant}")
+ conflicts = [v for v in sku_matches(new_variant_sku)
+ if v["product"]["id"] != expected["product_id"]]
+ if conflicts:
+ raise RuntimeError(f"Fresh SKU collision {new_variant_sku}: {conflicts}")
+ if not live:
+ record("resku", "dry_run", {"old_sku": item["old_sku"], "new_sku": item["new_sku"],
+ "product_id": expected["product_id"], "before": before})
+ return
+ changed_shopify = variant["sku"] == old_variant_sku
+ if changed_shopify:
+ result = gql_data(RESKU, {"pid": expected["product_id"], "variants": [{
+ "id": expected["variant_id"], "inventoryItem": {"sku": new_variant_sku}}]})["productVariantsBulkUpdate"]
+ if result.get("userErrors"):
+ raise RuntimeError(result["userErrors"])
+ after_shopify = product(expected["product_id"])
+ after_variant = next(v for v in after_shopify["variants"]["nodes"] if v["id"] == expected["variant_id"])
+ if after_variant["sku"] != new_variant_sku:
+ raise RuntimeError(f"Shopify re-SKU read-back failed: {after_variant}")
+ try:
+ db_resku(item)
+ verify_db_resku(item)
+ except Exception:
+ if changed_shopify:
+ rollback = gql_data(RESKU, {"pid": expected["product_id"], "variants": [{
+ "id": expected["variant_id"], "inventoryItem": {"sku": old_variant_sku}}]})["productVariantsBulkUpdate"]
+ record("resku", "db_failed_shopify_rollback", {"old_sku": item["old_sku"],
+ "new_sku": item["new_sku"], "product_id": expected["product_id"], "rollback": rollback})
+ raise
+ record("resku", "applied" if changed_shopify else "already_applied", {
+ "old_sku": item["old_sku"], "new_sku": item["new_sku"],
+ "product_id": expected["product_id"], "before": before, "after": after_shopify})
+
+
+def link_one(item, live):
+ target, shopify = item["target"], item["shopify_product"]
+ if not target or not shopify or shopify["status"] != "DRAFT":
+ raise RuntimeError(f"Link identity/status invalid: {item}")
+ expected_variant = target["sku"] + "-Sample"
+ if expected_variant not in {v["sku"] for v in shopify["variants"]["nodes"]}:
+ raise RuntimeError(f"Link SKU mismatch for {item['handle']}")
+ if not live:
+ record("link", "dry_run", {"mfr_sku": target["mfr_sku"], "sku": target["sku"],
+ "product_id": shopify["id"]})
+ return
+ sql = f"""
+BEGIN;
+UPDATE rwltd_catalog SET shopify_product_id={q(shopify['id'])},shopify_handle={q(item['handle'])},
+ dw_sku={q(target['sku'])},on_shopify=true,agent_updated_at=now()
+WHERE mfr_sku={q(target['mfr_sku'])} AND dw_sku={q(target['sku'])};
+INSERT INTO dw_sku_registry
+ (dw_sku,vendor_prefix,vendor_name,mfr_sku,shopify_product_id,shopify_handle,status,updated_at)
+VALUES ({q(target['sku'])},'DWKR','Architectural Fabrics',{q(target['mfr_sku'])},
+ {q(shopify['id'])},{q(item['handle'])},'draft',now())
+ON CONFLICT (vendor_prefix,mfr_sku) DO UPDATE SET
+ shopify_product_id=EXCLUDED.shopify_product_id,shopify_handle=EXCLUDED.shopify_handle,
+ status='draft',updated_at=now();
+COMMIT;
+"""
+ psql(sql)
+ check = psql(f"SELECT COALESCE(shopify_product_id,''),COALESCE(shopify_handle,'') "
+ f"FROM rwltd_catalog WHERE mfr_sku={q(target['mfr_sku'])} AND dw_sku={q(target['sku'])};",
+ tuples=True)
+ if check != "\t".join([shopify["id"], item["handle"]]):
+ raise RuntimeError(f"Link read-back failed: {check}")
+ record("link", "applied", {"mfr_sku": target["mfr_sku"], "sku": target["sku"],
+ "product_id": shopify["id"]})
+
+
+def main():
+ parser = argparse.ArgumentParser()
+ parser.add_argument("manifest")
+ parser.add_argument("--apply", action="store_true")
+ parser.add_argument("--limit-archive", type=int, default=0)
+ parser.add_argument("--limit-resku", type=int, default=0)
+ parser.add_argument("--limit-links", type=int, default=0)
+ args = parser.parse_args()
+ manifest_path = os.path.realpath(args.manifest)
+ if "/verification/recovery-manifests/" not in manifest_path:
+ raise SystemExit("Refusing mutable/non-verification manifest")
+ manifest = json.load(open(manifest_path))
+ if manifest.get("schema") != "tk-10066-recovery-manifest/v1" or not all(manifest["assertions"].values()):
+ raise SystemExit("Manifest schema/assertions invalid")
+ os.makedirs(os.path.dirname(LOCK), exist_ok=True)
+ with open(LOCK, "w") as lock:
+ try:
+ fcntl.flock(lock, fcntl.LOCK_EX | fcntl.LOCK_NB)
+ except BlockingIOError:
+ raise SystemExit("Another TK-10066 recovery writer holds the lock")
+ archive = manifest["same_identity"][:args.limit_archive or None]
+ resku = manifest["cross_identity"][:args.limit_resku or None]
+ links = manifest["handle_repairs"][:args.limit_links or None]
+ record("run", "start", {"mode": "apply" if args.apply else "dry_run",
+ "manifest": manifest_path, "counts": [len(archive), len(resku), len(links)]})
+ for item in archive:
+ archive_one(item, args.apply); time.sleep(0.25 if args.apply else 0)
+ for item in resku:
+ resku_one(item, args.apply); time.sleep(0.25 if args.apply else 0)
+ for item in links:
+ link_one(item, args.apply)
+ record("run", "complete", {"mode": "apply" if args.apply else "dry_run",
+ "counts": [len(archive), len(resku), len(links)]})
+ print(json.dumps({"ok": True, "mode": "apply" if args.apply else "dry_run",
+ "archive": len(archive), "resku": len(resku), "links": len(links)}))
+
+
+if __name__ == "__main__":
+ main()
diff --git a/verification/tk10066-recovery-results.jsonl b/verification/tk10066-recovery-results.jsonl
new file mode 100644
index 0000000..60d66bd
--- /dev/null
+++ b/verification/tk10066-recovery-results.jsonl
@@ -0,0 +1,93 @@
+{"counts": [34, 55, 2], "kind": "run", "manifest": "/Users/macstudio3/Projects/reid-witlin-onboarding/verification/recovery-manifests/20260903T052418Z.json", "mode": "dry_run", "state": "start", "ticket": "TK-10066", "ts": "2026-09-03T06:30:22.977921+00:00"}
+{"before": {"handle": "haymarket-chocolate-architectural-fabrics", "id": "gid://shopify/Product/7942335561779", "status": "DRAFT", "title": "Haymarket Chocolate", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814406647859", "price": "4.25", "sku": "DWKR-190413-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942335561779", "sku": "DWKR-190413-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:23.302705+00:00"}
+{"before": {"handle": "haymarket-copper-architectural-fabrics", "id": "gid://shopify/Product/7942335660083", "status": "DRAFT", "title": "Haymarket Copper", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814406778931", "price": "4.25", "sku": "DWKR-190414-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942335660083", "sku": "DWKR-190414-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:23.578357+00:00"}
+{"before": {"handle": "haymarket-ecru-architectural-fabrics", "id": "gid://shopify/Product/7942335791155", "status": "DRAFT", "title": "Haymarket Ecru", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814406877235", "price": "4.25", "sku": "DWKR-190415-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942335791155", "sku": "DWKR-190415-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:23.844483+00:00"}
+{"before": {"handle": "haymarket-golden-architectural-fabrics", "id": "gid://shopify/Product/7942335889459", "status": "DRAFT", "title": "Haymarket Golden", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814406975539", "price": "4.25", "sku": "DWKR-190416-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942335889459", "sku": "DWKR-190416-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:24.123324+00:00"}
+{"before": {"handle": "haymarket-leaf-architectural-fabrics", "id": "gid://shopify/Product/7942335987763", "status": "DRAFT", "title": "Haymarket Leaf", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814407073843", "price": "4.25", "sku": "DWKR-190417-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942335987763", "sku": "DWKR-190417-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:24.380092+00:00"}
+{"before": {"handle": "haymarket-navy-architectural-fabrics", "id": "gid://shopify/Product/7942336151603", "status": "DRAFT", "title": "Haymarket Navy", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814407237683", "price": "4.25", "sku": "DWKR-190419-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942336151603", "sku": "DWKR-190419-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:24.626611+00:00"}
+{"before": {"handle": "halifax-azure-architectural-fabrics", "id": "gid://shopify/Product/7942334677043", "status": "DRAFT", "title": "Halifax Azure", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814405763123", "price": "4.25", "sku": "DWKR-190426-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942334677043", "sku": "DWKR-190426-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:24.966523+00:00"}
+{"before": {"handle": "halifax-charcoal-architectural-fabrics", "id": "gid://shopify/Product/7942334840883", "status": "DRAFT", "title": "Halifax Charcoal", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814405926963", "price": "4.25", "sku": "DWKR-190428-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942334840883", "sku": "DWKR-190428-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:25.244238+00:00"}
+{"before": {"handle": "halifax-jazz-architectural-fabrics", "id": "gid://shopify/Product/7942334939187", "status": "DRAFT", "title": "Halifax Jazz", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814406058035", "price": "4.25", "sku": "DWKR-190429-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942334939187", "sku": "DWKR-190429-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:25.506015+00:00"}
+{"before": {"handle": "halifax-lagoon-architectural-fabrics-1", "id": "gid://shopify/Product/7942335103027", "status": "DRAFT", "title": "Halifax Lagoon", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814406156339", "price": "4.25", "sku": "DWKR-190430-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942335103027", "sku": "DWKR-190430-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:25.786881+00:00"}
+{"before": {"handle": "halifax-mink-architectural-fabrics", "id": "gid://shopify/Product/7942335168563", "status": "DRAFT", "title": "Halifax Mink", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814406254643", "price": "4.25", "sku": "DWKR-190431-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942335168563", "sku": "DWKR-190431-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:26.061048+00:00"}
+{"before": {"handle": "halifax-oxford-architectural-fabrics", "id": "gid://shopify/Product/7942335266867", "status": "DRAFT", "title": "Halifax Oxford", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814406352947", "price": "4.25", "sku": "DWKR-190432-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942335266867", "sku": "DWKR-190432-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:26.366292+00:00"}
+{"before": {"handle": "halifax-salsa-architectural-fabrics", "id": "gid://shopify/Product/7942335365171", "status": "DRAFT", "title": "Halifax Salsa", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814406451251", "price": "4.25", "sku": "DWKR-190433-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942335365171", "sku": "DWKR-190433-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:26.679358+00:00"}
+{"before": {"handle": "halifax-spice-architectural-fabrics", "id": "gid://shopify/Product/7942335463475", "status": "DRAFT", "title": "Halifax Spice", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814406549555", "price": "4.25", "sku": "DWKR-190434-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942335463475", "sku": "DWKR-190434-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:26.934066+00:00"}
+{"before": {"handle": "gretna-bark-architectural-fabrics-1", "id": "gid://shopify/Product/7942333005875", "status": "DRAFT", "title": "Gretna Bark", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814403731507", "price": "4.25", "sku": "DWKR-190435-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942333005875", "sku": "DWKR-190435-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:27.221082+00:00"}
+{"before": {"handle": "gretna-canyon-architectural-fabrics", "id": "gid://shopify/Product/7942333104179", "status": "DRAFT", "title": "Gretna Canyon", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814403797043", "price": "4.25", "sku": "DWKR-190436-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942333104179", "sku": "DWKR-190436-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:27.487244+00:00"}
+{"before": {"handle": "gretna-ebony-architectural-fabrics-1", "id": "gid://shopify/Product/7942333235251", "status": "DRAFT", "title": "Gretna Ebony", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814403928115", "price": "4.25", "sku": "DWKR-190437-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942333235251", "sku": "DWKR-190437-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:27.772765+00:00"}
+{"before": {"handle": "gretna-granite-architectural-fabrics", "id": "gid://shopify/Product/7942333300787", "status": "DRAFT", "title": "Gretna Granite", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814403993651", "price": "4.25", "sku": "DWKR-190438-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942333300787", "sku": "DWKR-190438-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:28.107797+00:00"}
+{"before": {"handle": "gretna-pacific-architectural-fabrics", "id": "gid://shopify/Product/7942333399091", "status": "DRAFT", "title": "Gretna Pacific", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814404091955", "price": "4.25", "sku": "DWKR-190439-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942333399091", "sku": "DWKR-190439-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:28.367102+00:00"}
+{"before": {"handle": "gretna-rustic-architectural-fabrics", "id": "gid://shopify/Product/7942333497395", "status": "DRAFT", "title": "Gretna Rustic", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814404190259", "price": "4.25", "sku": "DWKR-190440-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942333497395", "sku": "DWKR-190440-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:28.644919+00:00"}
+{"before": {"handle": "gretna-sapphire-architectural-fabrics", "id": "gid://shopify/Product/7942333595699", "status": "DRAFT", "title": "Gretna Sapphire", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814404288563", "price": "4.25", "sku": "DWKR-190441-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942333595699", "sku": "DWKR-190441-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:28.915531+00:00"}
+{"before": {"handle": "gretna-storm-architectural-fabrics", "id": "gid://shopify/Product/7942333694003", "status": "DRAFT", "title": "Gretna Storm", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814404812851", "price": "4.25", "sku": "DWKR-190442-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942333694003", "sku": "DWKR-190442-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:29.230777+00:00"}
+{"before": {"handle": "gretna-straw-architectural-fabrics", "id": "gid://shopify/Product/7942333825075", "status": "DRAFT", "title": "Gretna Straw", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814404911155", "price": "4.25", "sku": "DWKR-190443-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942333825075", "sku": "DWKR-190443-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:29.535466+00:00"}
+{"before": {"handle": "gretna-thyme-architectural-fabrics", "id": "gid://shopify/Product/7942333923379", "status": "DRAFT", "title": "Gretna Thyme", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814405009459", "price": "4.25", "sku": "DWKR-190444-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942333923379", "sku": "DWKR-190444-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:29.802185+00:00"}
+{"before": {"handle": "grundy-brown-architectural-fabrics", "id": "gid://shopify/Product/7942334021683", "status": "DRAFT", "title": "Grundy Brown", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814405107763", "price": "4.25", "sku": "DWKR-190801-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942334021683", "sku": "DWKR-190801-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:30.075611+00:00"}
+{"before": {"handle": "grundy-cottonwood-architectural-fabrics-1", "id": "gid://shopify/Product/7942334152755", "status": "DRAFT", "title": "Grundy Cottonwood", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814405238835", "price": "4.25", "sku": "DWKR-190802-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942334152755", "sku": "DWKR-190802-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:30.333530+00:00"}
+{"before": {"handle": "grundy-coyote-architectural-fabrics", "id": "gid://shopify/Product/7942334218291", "status": "DRAFT", "title": "Grundy Coyote", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814405304371", "price": "4.25", "sku": "DWKR-190803-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942334218291", "sku": "DWKR-190803-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:30.603391+00:00"}
+{"before": {"handle": "grundy-flint-architectural-fabrics", "id": "gid://shopify/Product/7942334316595", "status": "DRAFT", "title": "Grundy Flint", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814405402675", "price": "4.25", "sku": "DWKR-190804-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942334316595", "sku": "DWKR-190804-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:30.953151+00:00"}
+{"before": {"handle": "grundy-marengo-architectural-fabrics", "id": "gid://shopify/Product/7942334414899", "status": "DRAFT", "title": "Grundy Marengo", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814405500979", "price": "4.25", "sku": "DWKR-190805-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942334414899", "sku": "DWKR-190805-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:31.254787+00:00"}
+{"before": {"handle": "grundy-tan-architectural-fabrics", "id": "gid://shopify/Product/7942334578739", "status": "DRAFT", "title": "Grundy Tan", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814405664819", "price": "4.25", "sku": "DWKR-190808-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942334578739", "sku": "DWKR-190808-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:31.554888+00:00"}
+{"before": {"handle": "gordonsville-fawn-architectural-fabrics", "id": "gid://shopify/Product/7942332514355", "status": "DRAFT", "title": "Gordonsville Fawn", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814403207219", "price": "4.25", "sku": "DWKR-191077-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942332514355", "sku": "DWKR-191077-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:31.821249+00:00"}
+{"before": {"handle": "gordonsville-grey-architectural-fabrics", "id": "gid://shopify/Product/7942332612659", "status": "DRAFT", "title": "Gordonsville Grey", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814403305523", "price": "4.25", "sku": "DWKR-191078-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942332612659", "sku": "DWKR-191078-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:32.094967+00:00"}
+{"before": {"handle": "gordonsville-ivory-architectural-fabrics", "id": "gid://shopify/Product/7942332710963", "status": "DRAFT", "title": "Gordonsville Ivory", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814403403827", "price": "4.25", "sku": "DWKR-191079-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942332710963", "sku": "DWKR-191079-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:32.350912+00:00"}
+{"before": {"handle": "gordonsville-white-architectural-fabrics", "id": "gid://shopify/Product/7942332874803", "status": "DRAFT", "title": "Gordonsville White", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814403567667", "price": "4.25", "sku": "DWKR-191081-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "archive", "product_id": "gid://shopify/Product/7942332874803", "sku": "DWKR-191081-Sample", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:32.591401+00:00"}
+{"before": {"handle": "by-hand-panels-ageless-arrowheads-architectural-fabrics", "id": "gid://shopify/Product/7942340804659", "status": "DRAFT", "title": "By Hand Panels Ageless Arrowheads", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814411956275", "price": "4.25", "sku": "DWKR-191394-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191619", "old_sku": "DWKR-191394", "product_id": "gid://shopify/Product/7942340804659", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:33.122852+00:00"}
+{"before": {"handle": "by-hand-panels-ambient-atmosphere-architectural-fabrics", "id": "gid://shopify/Product/7942340870195", "status": "DRAFT", "title": "By Hand Panels Ambient Atmosphere", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814411989043", "price": "4.25", "sku": "DWKR-191395-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191620", "old_sku": "DWKR-191395", "product_id": "gid://shopify/Product/7942340870195", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:33.639924+00:00"}
+{"before": {"handle": "by-hand-panels-amorous-arrangements-architectural-fabrics", "id": "gid://shopify/Product/7942340935731", "status": "DRAFT", "title": "By Hand Panels Amorous Arrangements", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814412218419", "price": "4.25", "sku": "DWKR-191396-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191621", "old_sku": "DWKR-191396", "product_id": "gid://shopify/Product/7942340935731", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:34.217334+00:00"}
+{"before": {"handle": "by-hand-panels-angelic-autumn-architectural-fabrics", "id": "gid://shopify/Product/7942340968499", "status": "DRAFT", "title": "By Hand Panels Angelic Autumn", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814412251187", "price": "4.25", "sku": "DWKR-191397-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191622", "old_sku": "DWKR-191397", "product_id": "gid://shopify/Product/7942340968499", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:34.764355+00:00"}
+{"before": {"handle": "by-hand-panels-blissful-branches-architectural-fabrics", "id": "gid://shopify/Product/7942341001267", "status": "DRAFT", "title": "By Hand Panels Blissful Branches", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814412283955", "price": "4.25", "sku": "DWKR-191398-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191623", "old_sku": "DWKR-191398", "product_id": "gid://shopify/Product/7942341001267", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:35.296156+00:00"}
+{"before": {"handle": "by-hand-panels-blossoms-of-beauty-architectural-fabrics", "id": "gid://shopify/Product/7942341034035", "status": "DRAFT", "title": "By Hand Panels Blossoms Of Beauty", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814412316723", "price": "4.25", "sku": "DWKR-191399-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191624", "old_sku": "DWKR-191399", "product_id": "gid://shopify/Product/7942341034035", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:35.853178+00:00"}
+{"before": {"handle": "by-hand-panels-bracing-birds-architectural-fabrics", "id": "gid://shopify/Product/7942341132339", "status": "DRAFT", "title": "By Hand Panels Bracing Birds", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814412415027", "price": "4.25", "sku": "DWKR-191400-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191625", "old_sku": "DWKR-191400", "product_id": "gid://shopify/Product/7942341132339", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:36.452917+00:00"}
+{"before": {"handle": "by-hand-panels-breathless-bamboo-architectural-fabrics", "id": "gid://shopify/Product/7942341197875", "status": "DRAFT", "title": "By Hand Panels Breathless Bamboo", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814412480563", "price": "4.25", "sku": "DWKR-191401-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191626", "old_sku": "DWKR-191401", "product_id": "gid://shopify/Product/7942341197875", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:36.953785+00:00"}
+{"before": {"handle": "by-hand-panels-captivating-coral-architectural-fabrics", "id": "gid://shopify/Product/7942341230643", "status": "DRAFT", "title": "By Hand Panels Captivating Coral", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814412513331", "price": "4.25", "sku": "DWKR-191402-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191627", "old_sku": "DWKR-191402", "product_id": "gid://shopify/Product/7942341230643", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:37.527954+00:00"}
+{"before": {"handle": "by-hand-panels-careless-clouds-architectural-fabrics", "id": "gid://shopify/Product/7942341263411", "status": "DRAFT", "title": "By Hand Panels Careless Clouds", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814412546099", "price": "4.25", "sku": "DWKR-191403-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191628", "old_sku": "DWKR-191403", "product_id": "gid://shopify/Product/7942341263411", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:38.174025+00:00"}
+{"before": {"handle": "by-hand-panels-casual-carnations-architectural-fabrics", "id": "gid://shopify/Product/7942341296179", "status": "DRAFT", "title": "By Hand Panels Casual Carnations", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814412578867", "price": "4.25", "sku": "DWKR-191404-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191629", "old_sku": "DWKR-191404", "product_id": "gid://shopify/Product/7942341296179", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:38.716212+00:00"}
+{"before": {"handle": "by-hand-panels-courageous-conifer-architectural-fabrics", "id": "gid://shopify/Product/7942341328947", "status": "DRAFT", "title": "By Hand Panels Courageous Conifer", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814412611635", "price": "4.25", "sku": "DWKR-191405-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191630", "old_sku": "DWKR-191405", "product_id": "gid://shopify/Product/7942341328947", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:39.226005+00:00"}
+{"before": {"handle": "by-hand-panels-dapper-daisy-architectural-fabrics", "id": "gid://shopify/Product/7942341394483", "status": "DRAFT", "title": "By Hand Panels Dapper Daisy", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814412677171", "price": "4.25", "sku": "DWKR-191406-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191631", "old_sku": "DWKR-191406", "product_id": "gid://shopify/Product/7942341394483", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:39.790196+00:00"}
+{"before": {"handle": "by-hand-panels-dazzling-diamonds-architectural-fabrics", "id": "gid://shopify/Product/7942341427251", "status": "DRAFT", "title": "By Hand Panels Dazzling Diamonds", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814412709939", "price": "4.25", "sku": "DWKR-191407-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191632", "old_sku": "DWKR-191407", "product_id": "gid://shopify/Product/7942341427251", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:40.367533+00:00"}
+{"before": {"handle": "by-hand-panels-definitive-dandelion-architectural-fabrics", "id": "gid://shopify/Product/7942341492787", "status": "DRAFT", "title": "By Hand Panels Definitive Dandelion", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814412775475", "price": "4.25", "sku": "DWKR-191408-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191633", "old_sku": "DWKR-191408", "product_id": "gid://shopify/Product/7942341492787", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:40.884683+00:00"}
+{"before": {"handle": "by-hand-panels-divine-desert-architectural-fabrics", "id": "gid://shopify/Product/7942341558323", "status": "DRAFT", "title": "By Hand Panels Divine Desert", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814412841011", "price": "4.25", "sku": "DWKR-191409-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191634", "old_sku": "DWKR-191409", "product_id": "gid://shopify/Product/7942341558323", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:41.402986+00:00"}
+{"before": {"handle": "by-hand-panels-effluent-environment-architectural-fabrics", "id": "gid://shopify/Product/7942341591091", "status": "DRAFT", "title": "By Hand Panels Effluent Environment", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814412873779", "price": "4.25", "sku": "DWKR-191410-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191635", "old_sku": "DWKR-191410", "product_id": "gid://shopify/Product/7942341591091", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:42.005880+00:00"}
+{"before": {"handle": "by-hand-panels-endless-evergreen-architectural-fabrics", "id": "gid://shopify/Product/7942341656627", "status": "DRAFT", "title": "By Hand Panels Endless Evergreen", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814412939315", "price": "4.25", "sku": "DWKR-191411-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191636", "old_sku": "DWKR-191411", "product_id": "gid://shopify/Product/7942341656627", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:42.552089+00:00"}
+{"before": {"handle": "by-hand-panels-exterior-essence-architectural-fabrics", "id": "gid://shopify/Product/7942341689395", "status": "DRAFT", "title": "By Hand Panels Exterior Essence", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814412972083", "price": "4.25", "sku": "DWKR-191412-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191637", "old_sku": "DWKR-191412", "product_id": "gid://shopify/Product/7942341689395", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:43.133070+00:00"}
+{"before": {"handle": "by-hand-panels-faithful-forestry-architectural-fabrics", "id": "gid://shopify/Product/7942341722163", "status": "DRAFT", "title": "By Hand Panels Faithful Forestry", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413004851", "price": "4.25", "sku": "DWKR-191413-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191638", "old_sku": "DWKR-191413", "product_id": "gid://shopify/Product/7942341722163", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:43.711569+00:00"}
+{"before": {"handle": "by-hand-panels-flawless-floral-architectural-fabrics", "id": "gid://shopify/Product/7942341754931", "status": "DRAFT", "title": "By Hand Panels Flawless Floral", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413037619", "price": "4.25", "sku": "DWKR-191414-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191639", "old_sku": "DWKR-191414", "product_id": "gid://shopify/Product/7942341754931", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:44.328008+00:00"}
+{"before": {"handle": "by-hand-panels-flowers-feathers-architectural-fabrics", "id": "gid://shopify/Product/7942341787699", "status": "DRAFT", "title": "By Hand Panels Flowers Feathers", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413070387", "price": "4.25", "sku": "DWKR-191415-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191640", "old_sku": "DWKR-191415", "product_id": "gid://shopify/Product/7942341787699", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:44.821053+00:00"}
+{"before": {"handle": "by-hand-panels-forever-flora-architectural-fabrics", "id": "gid://shopify/Product/7942341853235", "status": "DRAFT", "title": "By Hand Panels Forever Flora", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413135923", "price": "4.25", "sku": "DWKR-191416-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191641", "old_sku": "DWKR-191416", "product_id": "gid://shopify/Product/7942341853235", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:45.386720+00:00"}
+{"before": {"handle": "by-hand-panels-formidable-foliage-architectural-fabrics", "id": "gid://shopify/Product/7942341886003", "status": "DRAFT", "title": "By Hand Panels Formidable Foliage", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413168691", "price": "4.25", "sku": "DWKR-191417-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191642", "old_sku": "DWKR-191417", "product_id": "gid://shopify/Product/7942341886003", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:45.977207+00:00"}
+{"before": {"handle": "by-hand-panels-gilded-grove-architectural-fabrics", "id": "gid://shopify/Product/7942341918771", "status": "DRAFT", "title": "By Hand Panels Gilded Grove", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413201459", "price": "4.25", "sku": "DWKR-191418-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191643", "old_sku": "DWKR-191418", "product_id": "gid://shopify/Product/7942341918771", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:46.466380+00:00"}
+{"before": {"handle": "by-hand-panels-glistening-garden-architectural-fabrics", "id": "gid://shopify/Product/7942341951539", "status": "DRAFT", "title": "By Hand Panels Glistening Garden", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413234227", "price": "4.25", "sku": "DWKR-191419-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191644", "old_sku": "DWKR-191419", "product_id": "gid://shopify/Product/7942341951539", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:47.021061+00:00"}
+{"before": {"handle": "by-hand-panels-graceful-gaia-architectural-fabrics", "id": "gid://shopify/Product/7942342017075", "status": "DRAFT", "title": "By Hand Panels Graceful Gaia", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413299763", "price": "4.25", "sku": "DWKR-191420-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191645", "old_sku": "DWKR-191420", "product_id": "gid://shopify/Product/7942342017075", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:47.579856+00:00"}
+{"before": {"handle": "by-hand-panels-harmonic-habitat-architectural-fabrics", "id": "gid://shopify/Product/7942342049843", "status": "DRAFT", "title": "By Hand Panels Harmonic Habitat", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413332531", "price": "4.25", "sku": "DWKR-191421-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191646", "old_sku": "DWKR-191421", "product_id": "gid://shopify/Product/7942342049843", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:48.077287+00:00"}
+{"before": {"handle": "by-hand-panels-harmonized-haze-architectural-fabrics", "id": "gid://shopify/Product/7942342082611", "status": "DRAFT", "title": "By Hand Panels Harmonized Haze", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413365299", "price": "4.25", "sku": "DWKR-191422-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191647", "old_sku": "DWKR-191422", "product_id": "gid://shopify/Product/7942342082611", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:48.654651+00:00"}
+{"before": {"handle": "by-hand-panels-inflorescence-architectural-fabrics", "id": "gid://shopify/Product/7942342115379", "status": "DRAFT", "title": "By Hand Panels Inflorescence", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413398067", "price": "4.25", "sku": "DWKR-191423-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191648", "old_sku": "DWKR-191423", "product_id": "gid://shopify/Product/7942342115379", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:49.171091+00:00"}
+{"before": {"handle": "by-hand-panels-lavish-layers-architectural-fabrics", "id": "gid://shopify/Product/7942342148147", "status": "DRAFT", "title": "By Hand Panels Lavish Layers", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413430835", "price": "4.25", "sku": "DWKR-191424-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191649", "old_sku": "DWKR-191424", "product_id": "gid://shopify/Product/7942342148147", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:49.701343+00:00"}
+{"before": {"handle": "by-hand-panels-literary-leaves-architectural-fabrics", "id": "gid://shopify/Product/7942342180915", "status": "DRAFT", "title": "By Hand Panels Literary Leaves", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413463603", "price": "4.25", "sku": "DWKR-191425-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191650", "old_sku": "DWKR-191425", "product_id": "gid://shopify/Product/7942342180915", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:50.206058+00:00"}
+{"before": {"handle": "by-hand-panels-majestic-mystery-architectural-fabrics", "id": "gid://shopify/Product/7942342213683", "status": "DRAFT", "title": "By Hand Panels Majestic Mystery", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413496371", "price": "4.25", "sku": "DWKR-191426-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191651", "old_sku": "DWKR-191426", "product_id": "gid://shopify/Product/7942342213683", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:50.766235+00:00"}
+{"before": {"handle": "by-hand-panels-material-monarch-architectural-fabrics", "id": "gid://shopify/Product/7942342246451", "status": "DRAFT", "title": "By Hand Panels Material Monarch", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413529139", "price": "4.25", "sku": "DWKR-191427-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191652", "old_sku": "DWKR-191427", "product_id": "gid://shopify/Product/7942342246451", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:51.278340+00:00"}
+{"before": {"handle": "by-hand-panels-motionless-maple-architectural-fabrics", "id": "gid://shopify/Product/7942342279219", "status": "DRAFT", "title": "By Hand Panels Motionless Maple", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413561907", "price": "4.25", "sku": "DWKR-191428-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191653", "old_sku": "DWKR-191428", "product_id": "gid://shopify/Product/7942342279219", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:51.799786+00:00"}
+{"before": {"handle": "by-hand-panels-nourished-nature-architectural-fabrics", "id": "gid://shopify/Product/7942342311987", "status": "DRAFT", "title": "By Hand Panels Nourished Nature", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413594675", "price": "4.25", "sku": "DWKR-191429-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191654", "old_sku": "DWKR-191429", "product_id": "gid://shopify/Product/7942342311987", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:52.331554+00:00"}
+{"before": {"handle": "by-hand-panels-omniscient-oak-architectural-fabrics", "id": "gid://shopify/Product/7942342344755", "status": "DRAFT", "title": "By Hand Panels Omniscient Oak", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413627443", "price": "4.25", "sku": "DWKR-191430-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191655", "old_sku": "DWKR-191430", "product_id": "gid://shopify/Product/7942342344755", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:52.829874+00:00"}
+{"before": {"handle": "by-hand-panels-optimistic-outdoors-architectural-fabrics", "id": "gid://shopify/Product/7942342377523", "status": "DRAFT", "title": "By Hand Panels Optimistic Outdoors", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413660211", "price": "4.25", "sku": "DWKR-191431-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191656", "old_sku": "DWKR-191431", "product_id": "gid://shopify/Product/7942342377523", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:53.336189+00:00"}
+{"before": {"handle": "by-hand-panels-opulent-orchid-architectural-fabrics", "id": "gid://shopify/Product/7942342410291", "status": "DRAFT", "title": "By Hand Panels Opulent Orchid", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413692979", "price": "4.25", "sku": "DWKR-191432-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191657", "old_sku": "DWKR-191432", "product_id": "gid://shopify/Product/7942342410291", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:53.884654+00:00"}
+{"before": {"handle": "by-hand-panels-passionate-palms-architectural-fabrics", "id": "gid://shopify/Product/7942342443059", "status": "DRAFT", "title": "By Hand Panels Passionate Palms", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413725747", "price": "4.25", "sku": "DWKR-191433-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191658", "old_sku": "DWKR-191433", "product_id": "gid://shopify/Product/7942342443059", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:54.429465+00:00"}
+{"before": {"handle": "by-hand-panels-peaceful-pagoda-architectural-fabrics", "id": "gid://shopify/Product/7942342475827", "status": "DRAFT", "title": "By Hand Panels Peaceful Pagoda", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413758515", "price": "4.25", "sku": "DWKR-191434-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191659", "old_sku": "DWKR-191434", "product_id": "gid://shopify/Product/7942342475827", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:55.076212+00:00"}
+{"before": {"handle": "by-hand-panels-pines-and-passion-architectural-fabrics", "id": "gid://shopify/Product/7942342508595", "status": "DRAFT", "title": "By Hand Panels Pines And Passion", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413791283", "price": "4.25", "sku": "DWKR-191435-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191660", "old_sku": "DWKR-191435", "product_id": "gid://shopify/Product/7942342508595", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:55.579120+00:00"}
+{"before": {"handle": "by-hand-panels-priceless-pedals-architectural-fabrics", "id": "gid://shopify/Product/7942342574131", "status": "DRAFT", "title": "By Hand Panels Priceless Pedals", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413856819", "price": "4.25", "sku": "DWKR-191436-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191661", "old_sku": "DWKR-191436", "product_id": "gid://shopify/Product/7942342574131", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:56.096927+00:00"}
+{"before": {"handle": "by-hand-panels-radiant-rain-drops-architectural-fabrics", "id": "gid://shopify/Product/7942342606899", "status": "DRAFT", "title": "By Hand Panels Radiant Rain Drops", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413889587", "price": "4.25", "sku": "DWKR-191437-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191662", "old_sku": "DWKR-191437", "product_id": "gid://shopify/Product/7942342606899", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:56.650993+00:00"}
+{"before": {"handle": "by-hand-panels-sacred-scales-architectural-fabrics", "id": "gid://shopify/Product/7942342639667", "status": "DRAFT", "title": "By Hand Panels Sacred Scales", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413922355", "price": "4.25", "sku": "DWKR-191438-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191663", "old_sku": "DWKR-191438", "product_id": "gid://shopify/Product/7942342639667", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:57.155265+00:00"}
+{"before": {"handle": "by-hand-panels-sands-of-time-architectural-fabrics", "id": "gid://shopify/Product/7942342672435", "status": "DRAFT", "title": "By Hand Panels Sands Of Time", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413955123", "price": "4.25", "sku": "DWKR-191439-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191664", "old_sku": "DWKR-191439", "product_id": "gid://shopify/Product/7942342672435", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:57.691819+00:00"}
+{"before": {"handle": "by-hand-panels-scenic-sanctuary-architectural-fabrics", "id": "gid://shopify/Product/7942342705203", "status": "DRAFT", "title": "By Hand Panels Scenic Sanctuary", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814413987891", "price": "4.25", "sku": "DWKR-191440-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191665", "old_sku": "DWKR-191440", "product_id": "gid://shopify/Product/7942342705203", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:58.258744+00:00"}
+{"before": {"handle": "by-hand-panels-soothing-surroundings-architectural-fabrics", "id": "gid://shopify/Product/7942342737971", "status": "DRAFT", "title": "By Hand Panels Soothing Surroundings", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814414020659", "price": "4.25", "sku": "DWKR-191441-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191666", "old_sku": "DWKR-191441", "product_id": "gid://shopify/Product/7942342737971", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:58.750836+00:00"}
+{"before": {"handle": "by-hand-panels-stars-and-spindles-architectural-fabrics", "id": "gid://shopify/Product/7942342770739", "status": "DRAFT", "title": "By Hand Panels Stars And Spindles", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814414053427", "price": "4.25", "sku": "DWKR-191442-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191667", "old_sku": "DWKR-191442", "product_id": "gid://shopify/Product/7942342770739", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:59.275047+00:00"}
+{"before": {"handle": "by-hand-panels-stranded-storm-architectural-fabrics", "id": "gid://shopify/Product/7942342803507", "status": "DRAFT", "title": "By Hand Panels Stranded Storm", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814414086195", "price": "4.25", "sku": "DWKR-191443-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191668", "old_sku": "DWKR-191443", "product_id": "gid://shopify/Product/7942342803507", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:30:59.784951+00:00"}
+{"before": {"handle": "by-hand-panels-stray-stems-architectural-fabrics", "id": "gid://shopify/Product/7942342836275", "status": "DRAFT", "title": "By Hand Panels Stray Stems", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814414118963", "price": "4.25", "sku": "DWKR-191444-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191669", "old_sku": "DWKR-191444", "product_id": "gid://shopify/Product/7942342836275", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:31:00.407745+00:00"}
+{"before": {"handle": "by-hand-panels-streams-of-sincerity-architectural-fabrics", "id": "gid://shopify/Product/7942342869043", "status": "DRAFT", "title": "By Hand Panels Streams Of Sincerity", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814414151731", "price": "4.25", "sku": "DWKR-191445-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191670", "old_sku": "DWKR-191445", "product_id": "gid://shopify/Product/7942342869043", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:31:00.913707+00:00"}
+{"before": {"handle": "by-hand-panels-tantalizing-trees-architectural-fabrics", "id": "gid://shopify/Product/7942342901811", "status": "DRAFT", "title": "By Hand Panels Tantalizing Trees", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814414184499", "price": "4.25", "sku": "DWKR-191446-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191671", "old_sku": "DWKR-191446", "product_id": "gid://shopify/Product/7942342901811", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:31:01.412547+00:00"}
+{"before": {"handle": "by-hand-panels-tender-tulipa-architectural-fabrics", "id": "gid://shopify/Product/7942342934579", "status": "DRAFT", "title": "By Hand Panels Tender Tulipa", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814414217267", "price": "4.25", "sku": "DWKR-191447-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191672", "old_sku": "DWKR-191447", "product_id": "gid://shopify/Product/7942342934579", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:31:01.946850+00:00"}
+{"before": {"handle": "by-hand-panels-valiant-vapor-architectural-fabrics", "id": "gid://shopify/Product/7942342967347", "status": "DRAFT", "title": "By Hand Panels Valiant Vapor", "variants": {"nodes": [{"id": "gid://shopify/ProductVariant/44814414250035", "price": "4.25", "sku": "DWKR-191448-Sample"}]}, "vendor": "Architectural Fabrics"}, "kind": "resku", "new_sku": "DWKR-191673", "old_sku": "DWKR-191448", "product_id": "gid://shopify/Product/7942342967347", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:31:02.502287+00:00"}
+{"kind": "link", "mfr_sku": "revere-alaska", "product_id": "gid://shopify/Product/7942325927987", "sku": "DWKR-190830", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:31:02.502523+00:00"}
+{"kind": "link", "mfr_sku": "strie-vibez-obsidian", "product_id": "gid://shopify/Product/7942336282675", "sku": "DWKR-190420", "state": "dry_run", "ticket": "TK-10066", "ts": "2026-09-03T06:31:02.502636+00:00"}
+{"counts": [34, 55, 2], "kind": "run", "mode": "dry_run", "state": "complete", "ticket": "TK-10066", "ts": "2026-09-03T06:31:02.502742+00:00"}
← 1541f4d Build immutable Reid Witlin recovery manifest
·
back to Reid Witlin Onboarding
·
Refresh retained canonical owners during recovery 884a4e8 →