← back to Dw Dead Image Recovery
verification/e2e-proof-kamatera.json
28 lines
{
"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)."
}