[object Object]

← back to Dw Dead Image Recovery

TK-11048: independent verification of Kamatera-scoped re-recovery — 145/145 keys match prod verbatim, 40/40 fresh liveness, 0 wrong-image risk; apply-versa-kamatera.sql gated-ready (retire Mac2-shaped SQL for prod)

95bc6b02cbd79c2bb5f6ba43a73a1b9f64d8d8c2 · 2026-09-02 14:49:45 -0700 · Steve Abrams

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R9pqyFahiGfXofjzY2q6Hs

Files touched

Diff

commit 95bc6b02cbd79c2bb5f6ba43a73a1b9f64d8d8c2
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Wed Sep 2 14:49:45 2026 -0700

    TK-11048: independent verification of Kamatera-scoped re-recovery — 145/145 keys match prod verbatim, 40/40 fresh liveness, 0 wrong-image risk; apply-versa-kamatera.sql gated-ready (retire Mac2-shaped SQL for prod)
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01R9pqyFahiGfXofjzY2q6Hs
---
 verification/e2e-proof-kamatera.json | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/verification/e2e-proof-kamatera.json b/verification/e2e-proof-kamatera.json
new file mode 100644
index 0000000..0d3f681
--- /dev/null
+++ b/verification/e2e-proof-kamatera.json
@@ -0,0 +1,27 @@
+{
+  "ticket": "TK-11048",
+  "agent": "iterm-tk11048-recovery",
+  "phase": "independent verification of the Kamatera-scoped re-recovery (built by vp-dw-commerce, commits bd89bdd/d14f2fe)",
+  "intent": "Verify the corrected apply-versa-kamatera.sql is safe + effective on canonical Kamatera BEFORE gating the paste — after the Mac2-shaped apply-versa.sql was proven inert on prod (0-exact SKU match).",
+  "risk_tier": "R0-local-readonly",
+  "environment": "Mac2 local; ~/Projects/dw-dead-image-recovery; public read-only GET to versadesignedsurfaces.com; no DB writes",
+  "timestamp": "2026-09-02T00:00:00Z",
+  "root_cause_confirmed": "Mac2 mirror versa_catalog and canonical Kamatera versa_catalog diverged into DIFFERENT broken cohorts. Mac2: 345 base64-placeholder rows (AVF01-29 uppercase). Kamatera: 283 relative-fileadmin-URL rows (INV-/ASL-/A### lowercase). Intersection 0 exact / 29 case-insensitive -> the Mac2-derived apply matched ~0 prod rows and was a clean no-op.",
+  "checks": [
+    {"name": "SQL structure", "verdict": "PASS", "detail": "single BEGIN..COMMIT; 145 UPDATE; 0 UPDATEs missing the broken-guard; 0 UPDATEs missing WHERE mfr_sku="},
+    {"name": "SET values are real image URLs", "verdict": "PASS", "detail": "145/145 SET image_url values are https://www.versadesignedsurfaces.com/fileadmin/... ; 0 data:/base64 in any SET value"},
+    {"name": "keys match prod (the original bug's fix)", "verdict": "PASS", "detail": "all 145 SQL mfr_sku keys present VERBATIM (exact casing) in prod's pulled broken set (data/kamatera-broken-283.tsv); 0 missing -> the WHERE clauses WILL match currently-broken Kamatera rows"},
+    {"name": "recovery-map integrity", "verdict": "PASS", "detail": "145 rows, all verified:true, 0 verified:false"},
+    {"name": "restore-map reversibility", "verdict": "PASS", "detail": "145 rows old_image_url captured (data/versa-restore-kamatera-map.jsonl) + a full 283-row current-broken snapshot CSV — the undo record"},
+    {"name": "independent fresh liveness", "verdict": "PASS", "detail": "sample of every 3rd recovered URL (40): PASS=40 FAIL=0 -> 200 + Content-Type image/*"},
+    {"name": "no wrong-image risk", "verdict": "PASS", "detail": "extractor is SKU-core-keyed and returns null when the core matches no /fileadmin/ filename; recovered==core-matched (145==145) -> it never guesses a foreign image"}
+  ],
+  "recovery": {"broken_prod_rows": 283, "recovered_verified_live": 145, "rate_pct": 51.2, "residue": 138},
+  "residue_followups_not_this_pass": [
+    "~124 INV-/ASL- rows: PDP install-image filename carries a DIFFERENT code than the stored mfr_sku (e.g. inv-mer1206-338 -> page shows INV-MER-15NL); needs a SKU->filename mapping / all_images parse — a separate targeted pass, NOT a matcher loosening (a wrong image is worse than a miss).",
+    "14 INV- rows: product_url 404s (PDP gone) -> likely genuinely discontinued -> discontinue stamp, not a re-scrape."
+  ],
+  "side_effects": {"shopify_writes": 0, "database_writes": 0, "activation": 0, "deploy": 0, "sends": 0, "spend": 0, "dns": 0, "remote_push": 0, "deletes": 0, "schedule_changes": 0},
+  "verdict": "PASS",
+  "gate": "apply-versa-kamatera.sql (145 rows) is verified safe + effective and READY to apply to canonical Kamatera dw_unified.versa_catalog. The DB write remains Steve-gated: it clears 145 of 283 broken rows (283 -> 138 residue). The Mac2-shaped apply-versa.sql is RETIRED for prod (inert)."
+}

← d14f2fe TK-11048: track Kamatera recovery + restore maps (force-add  ·  back to Dw Dead Image Recovery  ·  auto-data-snapshot: 2026-09-04T09:31:20 (3 data files) — dat 486a706 →