← back to Wallco Ai
Add true-toroidal edge-continuity verifier + wire as hard publish gate on seam-fix curator
6c41239b01c8d56f67f7134547205e0ec2a70e20 · 2026-06-11 14:10:00 -0700 · Steve Abrams
- scripts/verify-edge-seamless.py: measures literal wrap boundary (col[0] vs col[W-1], row[0] vs row[H-1]) + 2x2 tiled cross-seam, per-axis PASS/WARN/FAIL, exit 0 only on PASS both axes
- seam-fix-variants.py: record edge_verdict/edge_seamless/edge_axes per candidate (the literal-edge gate, not the strip-mean after_verdict)
- server.js: runEdgeSeamlessGate() helper; /api/seam-fix-curator/pick refuses to publish a candidate whose edge verdict != PASS (fail-closed, incl. verifier-absent host); list API surfaces edge_verdict so FAIL candidates render non-selectable
- backfilled edge_verdict into existing 170 queue rows (79 PASS / 71 WARN / 20 FAIL)
Files touched
M data/seam-fix-queue.jsonlM scripts/seam-fix-variants.pyA scripts/verify-edge-seamless.pyM server.js
Diff
commit 6c41239b01c8d56f67f7134547205e0ec2a70e20
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Thu Jun 11 14:10:00 2026 -0700
Add true-toroidal edge-continuity verifier + wire as hard publish gate on seam-fix curator
- scripts/verify-edge-seamless.py: measures literal wrap boundary (col[0] vs col[W-1], row[0] vs row[H-1]) + 2x2 tiled cross-seam, per-axis PASS/WARN/FAIL, exit 0 only on PASS both axes
- seam-fix-variants.py: record edge_verdict/edge_seamless/edge_axes per candidate (the literal-edge gate, not the strip-mean after_verdict)
- server.js: runEdgeSeamlessGate() helper; /api/seam-fix-curator/pick refuses to publish a candidate whose edge verdict != PASS (fail-closed, incl. verifier-absent host); list API surfaces edge_verdict so FAIL candidates render non-selectable
- backfilled edge_verdict into existing 170 queue rows (79 PASS / 71 WARN / 20 FAIL)
---
data/seam-fix-queue.jsonl | 340 ++++++++++++++++++++--------------------
scripts/seam-fix-variants.py | 11 ++
scripts/verify-edge-seamless.py | 228 +++++++++++++++++++++++++++
server.js | 60 +++++++
4 files changed, 469 insertions(+), 170 deletions(-)
diff --git a/data/seam-fix-queue.jsonl b/data/seam-fix-queue.jsonl
index f0d6738..93bd532 100644
--- a/data/seam-fix-queue.jsonl
+++ b/data/seam-fix-queue.jsonl
@@ -1,170 +1,170 @@
-{"ts": "2026-06-11T20:22:40.035606Z", "root_id": 2810, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 15.31, "after_verdict": "FAIL", "after_max": 15.07, "improved": true, "ok": true, "new_id": 57869, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/2810_v1.png"}
-{"ts": "2026-06-11T20:22:40.182546Z", "root_id": 2810, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 15.31, "after_verdict": "WARN", "after_max": 5.68, "improved": true, "ok": true, "new_id": 57870, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/2810_v2.png"}
-{"ts": "2026-06-11T20:22:40.432864Z", "root_id": 2778, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 12.2, "after_verdict": "FAIL", "after_max": 12.2, "improved": false, "ok": true, "new_id": 57871, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/2778_v1.png"}
-{"ts": "2026-06-11T20:22:40.637114Z", "root_id": 2778, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 12.2, "after_verdict": "WARN", "after_max": 5.33, "improved": true, "ok": true, "new_id": 57872, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/2778_v2.png"}
-{"ts": "2026-06-11T20:22:40.819425Z", "root_id": 43186, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.6, "after_verdict": "FAIL", "after_max": 13.3, "improved": true, "ok": true, "new_id": 57873, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/43186_v1.png"}
-{"ts": "2026-06-11T20:22:40.959106Z", "root_id": 43186, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.6, "after_verdict": "WARN", "after_max": 5.77, "improved": true, "ok": true, "new_id": 57874, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/43186_v2.png"}
-{"ts": "2026-06-11T20:22:41.126774Z", "root_id": 43198, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 26.92, "after_verdict": "FAIL", "after_max": 19.39, "improved": true, "ok": true, "new_id": 57875, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/43198_v1.png"}
-{"ts": "2026-06-11T20:22:41.258869Z", "root_id": 43198, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 26.92, "after_verdict": "PASS", "after_max": 4.81, "improved": true, "ok": true, "new_id": 57876, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/43198_v2.png"}
-{"ts": "2026-06-11T20:22:41.470605Z", "root_id": 2662, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.01, "after_verdict": "FAIL", "after_max": 22.0, "improved": true, "ok": true, "new_id": 57877, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/2662_v1.png"}
-{"ts": "2026-06-11T20:22:41.638429Z", "root_id": 2662, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.01, "after_verdict": "WARN", "after_max": 11.13, "improved": true, "ok": true, "new_id": 57878, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/2662_v2.png"}
-{"ts": "2026-06-11T20:37:00.149689Z", "root_id": 54863, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 56.01, "after_verdict": "FAIL", "after_max": 55.91, "improved": true, "ok": true, "new_id": 57880, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54863_v1.png"}
-{"ts": "2026-06-11T20:37:00.295713Z", "root_id": 54863, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 56.01, "after_verdict": "FAIL", "after_max": 14.33, "improved": true, "ok": true, "new_id": 57881, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54863_v2.png"}
-{"ts": "2026-06-11T20:37:00.496757Z", "root_id": 55206, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 42.43, "after_verdict": "FAIL", "after_max": 42.43, "improved": false, "ok": true, "new_id": 57882, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55206_v1.png"}
-{"ts": "2026-06-11T20:37:00.673195Z", "root_id": 55206, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 42.43, "after_verdict": "FAIL", "after_max": 15.99, "improved": true, "ok": true, "new_id": 57883, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55206_v2.png"}
-{"ts": "2026-06-11T20:37:00.886776Z", "root_id": 54468, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 40.68, "after_verdict": "FAIL", "after_max": 34.88, "improved": true, "ok": true, "new_id": 57884, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54468_v1.png"}
-{"ts": "2026-06-11T20:37:01.054561Z", "root_id": 54468, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 40.68, "after_verdict": "FAIL", "after_max": 36.27, "improved": true, "ok": true, "new_id": 57885, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54468_v2.png"}
-{"ts": "2026-06-11T20:37:01.261706Z", "root_id": 56008, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 40.2, "after_verdict": "FAIL", "after_max": 36.1, "improved": true, "ok": true, "new_id": 57886, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56008_v1.png"}
-{"ts": "2026-06-11T20:37:01.427380Z", "root_id": 56008, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 40.2, "after_verdict": "FAIL", "after_max": 14.45, "improved": true, "ok": true, "new_id": 57887, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56008_v2.png"}
-{"ts": "2026-06-11T20:37:01.631535Z", "root_id": 57262, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 37.2, "after_verdict": "FAIL", "after_max": 18.23, "improved": true, "ok": true, "new_id": 57888, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57262_v1.png"}
-{"ts": "2026-06-11T20:37:01.793248Z", "root_id": 57262, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 37.2, "after_verdict": "FAIL", "after_max": 31.69, "improved": true, "ok": true, "new_id": 57889, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57262_v2.png"}
-{"ts": "2026-06-11T20:37:01.956984Z", "root_id": 54226, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 36.33, "after_verdict": "FAIL", "after_max": 35.81, "improved": true, "ok": true, "new_id": 57890, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54226_v1.png"}
-{"ts": "2026-06-11T20:37:02.080759Z", "root_id": 54226, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 36.33, "after_verdict": "WARN", "after_max": 9.92, "improved": true, "ok": true, "new_id": 57891, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54226_v2.png"}
-{"ts": "2026-06-11T20:37:02.269016Z", "root_id": 56267, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 36.05, "after_verdict": "FAIL", "after_max": 35.81, "improved": true, "ok": true, "new_id": 57892, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56267_v1.png"}
-{"ts": "2026-06-11T20:37:02.422310Z", "root_id": 56267, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 36.05, "after_verdict": "WARN", "after_max": 8.47, "improved": true, "ok": true, "new_id": 57893, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56267_v2.png"}
-{"ts": "2026-06-11T20:37:02.622839Z", "root_id": 56633, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 35.24, "after_verdict": "FAIL", "after_max": 34.99, "improved": true, "ok": true, "new_id": 57894, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56633_v1.png"}
-{"ts": "2026-06-11T20:37:02.783668Z", "root_id": 56633, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 35.24, "after_verdict": "FAIL", "after_max": 14.63, "improved": true, "ok": true, "new_id": 57895, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56633_v2.png"}
-{"ts": "2026-06-11T20:37:02.954603Z", "root_id": 54078, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 33.5, "after_verdict": "FAIL", "after_max": 33.5, "improved": false, "ok": true, "new_id": 57896, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54078_v1.png"}
-{"ts": "2026-06-11T20:37:03.090969Z", "root_id": 54078, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 33.5, "after_verdict": "FAIL", "after_max": 12.89, "improved": true, "ok": true, "new_id": 57897, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54078_v2.png"}
-{"ts": "2026-06-11T20:37:03.277169Z", "root_id": 56110, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 33.21, "after_verdict": "FAIL", "after_max": 24.58, "improved": true, "ok": true, "new_id": 57898, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56110_v1.png"}
-{"ts": "2026-06-11T20:37:03.425324Z", "root_id": 56110, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 33.21, "after_verdict": "FAIL", "after_max": 23.9, "improved": true, "ok": true, "new_id": 57899, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56110_v2.png"}
-{"ts": "2026-06-11T20:37:03.618220Z", "root_id": 56672, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 33.19, "after_verdict": "FAIL", "after_max": 32.69, "improved": true, "ok": true, "new_id": 57900, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56672_v1.png"}
-{"ts": "2026-06-11T20:37:03.783016Z", "root_id": 56672, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 33.19, "after_verdict": "WARN", "after_max": 11.4, "improved": true, "ok": true, "new_id": 57901, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56672_v2.png"}
-{"ts": "2026-06-11T20:37:04.496303Z", "root_id": 57247, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 32.17, "after_verdict": "FAIL", "after_max": 31.93, "improved": true, "ok": true, "new_id": 57902, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57247_v1.png"}
-{"ts": "2026-06-11T20:37:05.157373Z", "root_id": 57247, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 32.17, "after_verdict": "WARN", "after_max": 10.62, "improved": true, "ok": true, "new_id": 57903, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57247_v2.png"}
-{"ts": "2026-06-11T20:37:05.334269Z", "root_id": 55303, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 31.87, "after_verdict": "FAIL", "after_max": 27.84, "improved": true, "ok": true, "new_id": 57904, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55303_v1.png"}
-{"ts": "2026-06-11T20:37:05.474030Z", "root_id": 55303, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 31.87, "after_verdict": "WARN", "after_max": 11.78, "improved": true, "ok": true, "new_id": 57905, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55303_v2.png"}
-{"ts": "2026-06-11T20:37:05.640438Z", "root_id": 54596, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 31.24, "after_verdict": "FAIL", "after_max": 31.24, "improved": false, "ok": true, "new_id": 57906, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54596_v1.png"}
-{"ts": "2026-06-11T20:37:05.765556Z", "root_id": 54596, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 31.24, "after_verdict": "WARN", "after_max": 9.58, "improved": true, "ok": true, "new_id": 57907, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54596_v2.png"}
-{"ts": "2026-06-11T20:37:06.356263Z", "root_id": 56774, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 30.53, "after_verdict": "FAIL", "after_max": 30.54, "improved": false, "ok": true, "new_id": 57908, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56774_v1.png"}
-{"ts": "2026-06-11T20:37:06.899603Z", "root_id": 56774, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 30.53, "after_verdict": "FAIL", "after_max": 18.69, "improved": true, "ok": true, "new_id": 57909, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56774_v2.png"}
-{"ts": "2026-06-11T20:37:07.076141Z", "root_id": 54236, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 30.49, "after_verdict": "FAIL", "after_max": 30.52, "improved": false, "ok": true, "new_id": 57910, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54236_v1.png"}
-{"ts": "2026-06-11T20:37:07.216426Z", "root_id": 54236, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 30.49, "after_verdict": "FAIL", "after_max": 16.81, "improved": true, "ok": true, "new_id": 57911, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54236_v2.png"}
-{"ts": "2026-06-11T20:37:07.401578Z", "root_id": 54744, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 30.32, "after_verdict": "FAIL", "after_max": 29.95, "improved": true, "ok": true, "new_id": 57912, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54744_v1.png"}
-{"ts": "2026-06-11T20:37:07.558497Z", "root_id": 54744, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 30.32, "after_verdict": "FAIL", "after_max": 13.82, "improved": true, "ok": true, "new_id": 57913, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54744_v2.png"}
-{"ts": "2026-06-11T20:37:07.750816Z", "root_id": 54447, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 29.87, "after_verdict": "FAIL", "after_max": 29.86, "improved": true, "ok": true, "new_id": 57914, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54447_v1.png"}
-{"ts": "2026-06-11T20:37:07.902720Z", "root_id": 54447, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 29.87, "after_verdict": "WARN", "after_max": 9.43, "improved": true, "ok": true, "new_id": 57915, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54447_v2.png"}
-{"ts": "2026-06-11T20:37:08.095529Z", "root_id": 53718, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 29.77, "after_verdict": "FAIL", "after_max": 28.58, "improved": true, "ok": true, "new_id": 57916, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/53718_v1.png"}
-{"ts": "2026-06-11T20:37:08.239304Z", "root_id": 53718, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 29.77, "after_verdict": "FAIL", "after_max": 22.1, "improved": true, "ok": true, "new_id": 57917, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/53718_v2.png"}
-{"ts": "2026-06-11T20:37:09.025246Z", "root_id": 56687, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 29.56, "after_verdict": "FAIL", "after_max": 29.56, "improved": false, "ok": true, "new_id": 57918, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56687_v1.png"}
-{"ts": "2026-06-11T20:37:09.753532Z", "root_id": 56687, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 29.56, "after_verdict": "FAIL", "after_max": 12.93, "improved": true, "ok": true, "new_id": 57919, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56687_v2.png"}
-{"ts": "2026-06-11T20:37:09.925684Z", "root_id": 55313, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 29.4, "after_verdict": "FAIL", "after_max": 29.35, "improved": true, "ok": true, "new_id": 57920, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55313_v1.png"}
-{"ts": "2026-06-11T20:37:10.060015Z", "root_id": 55313, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 29.4, "after_verdict": "WARN", "after_max": 9.81, "improved": true, "ok": true, "new_id": 57921, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55313_v2.png"}
-{"ts": "2026-06-11T20:37:10.219355Z", "root_id": 56791, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.84, "after_verdict": "FAIL", "after_max": 28.44, "improved": true, "ok": true, "new_id": 57922, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56791_v1.png"}
-{"ts": "2026-06-11T20:37:10.343342Z", "root_id": 56791, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.84, "after_verdict": "WARN", "after_max": 9.61, "improved": true, "ok": true, "new_id": 57923, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56791_v2.png"}
-{"ts": "2026-06-11T20:37:10.509662Z", "root_id": 54793, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.79, "after_verdict": "FAIL", "after_max": 28.75, "improved": true, "ok": true, "new_id": 57924, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54793_v1.png"}
-{"ts": "2026-06-11T20:37:10.632943Z", "root_id": 54793, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.79, "after_verdict": "WARN", "after_max": 9.65, "improved": true, "ok": true, "new_id": 57925, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54793_v2.png"}
-{"ts": "2026-06-11T20:37:10.835487Z", "root_id": 55612, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.35, "after_verdict": "FAIL", "after_max": 27.93, "improved": true, "ok": true, "new_id": 57926, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55612_v1.png"}
-{"ts": "2026-06-11T20:37:10.998051Z", "root_id": 55612, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.35, "after_verdict": "WARN", "after_max": 10.0, "improved": true, "ok": true, "new_id": 57927, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55612_v2.png"}
-{"ts": "2026-06-11T20:37:11.167217Z", "root_id": 55310, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.32, "after_verdict": "FAIL", "after_max": 27.98, "improved": true, "ok": true, "new_id": 57928, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55310_v1.png"}
-{"ts": "2026-06-11T20:37:11.304802Z", "root_id": 55310, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.32, "after_verdict": "WARN", "after_max": 8.79, "improved": true, "ok": true, "new_id": 57929, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55310_v2.png"}
-{"ts": "2026-06-11T20:37:11.462688Z", "root_id": 54851, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.26, "after_verdict": "FAIL", "after_max": 28.43, "improved": false, "ok": true, "new_id": 57930, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54851_v1.png"}
-{"ts": "2026-06-11T20:37:11.574582Z", "root_id": 54851, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.26, "after_verdict": "FAIL", "after_max": 15.83, "improved": true, "ok": true, "new_id": 57931, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54851_v2.png"}
-{"ts": "2026-06-11T20:37:11.747415Z", "root_id": 54815, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.25, "after_verdict": "FAIL", "after_max": 28.4, "improved": false, "ok": true, "new_id": 57932, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54815_v1.png"}
-{"ts": "2026-06-11T20:37:11.877123Z", "root_id": 54815, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.25, "after_verdict": "WARN", "after_max": 11.69, "improved": true, "ok": true, "new_id": 57933, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54815_v2.png"}
-{"ts": "2026-06-11T20:37:12.078083Z", "root_id": 54785, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.07, "after_verdict": "FAIL", "after_max": 27.92, "improved": true, "ok": true, "new_id": 57934, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54785_v1.png"}
-{"ts": "2026-06-11T20:37:12.241253Z", "root_id": 54785, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.07, "after_verdict": "FAIL", "after_max": 12.58, "improved": true, "ok": true, "new_id": 57935, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54785_v2.png"}
-{"ts": "2026-06-11T20:37:12.435467Z", "root_id": 53936, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.9, "after_verdict": "FAIL", "after_max": 27.94, "improved": false, "ok": true, "new_id": 57936, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/53936_v1.png"}
-{"ts": "2026-06-11T20:37:12.587819Z", "root_id": 53936, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.9, "after_verdict": "FAIL", "after_max": 12.25, "improved": true, "ok": true, "new_id": 57937, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/53936_v2.png"}
-{"ts": "2026-06-11T20:37:12.783837Z", "root_id": 53896, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.62, "after_verdict": "FAIL", "after_max": 27.54, "improved": true, "ok": true, "new_id": 57938, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/53896_v1.png"}
-{"ts": "2026-06-11T20:37:12.936376Z", "root_id": 53896, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.62, "after_verdict": "WARN", "after_max": 9.98, "improved": true, "ok": true, "new_id": 57939, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/53896_v2.png"}
-{"ts": "2026-06-11T20:37:13.133331Z", "root_id": 56244, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.54, "after_verdict": "FAIL", "after_max": 27.46, "improved": true, "ok": true, "new_id": 57940, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56244_v1.png"}
-{"ts": "2026-06-11T20:37:13.294996Z", "root_id": 56244, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.54, "after_verdict": "WARN", "after_max": 10.38, "improved": true, "ok": true, "new_id": 57941, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56244_v2.png"}
-{"ts": "2026-06-11T20:37:13.477942Z", "root_id": 55636, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.51, "after_verdict": "FAIL", "after_max": 27.51, "improved": false, "ok": true, "new_id": 57942, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55636_v1.png"}
-{"ts": "2026-06-11T20:37:13.626832Z", "root_id": 55636, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.51, "after_verdict": "WARN", "after_max": 9.34, "improved": true, "ok": true, "new_id": 57943, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55636_v2.png"}
-{"ts": "2026-06-11T20:37:13.800587Z", "root_id": 56654, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.41, "after_verdict": "FAIL", "after_max": 27.41, "improved": false, "ok": true, "new_id": 57944, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56654_v1.png"}
-{"ts": "2026-06-11T20:37:13.939311Z", "root_id": 56654, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.41, "after_verdict": "WARN", "after_max": 8.41, "improved": true, "ok": true, "new_id": 57945, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56654_v2.png"}
-{"ts": "2026-06-11T20:37:14.145338Z", "root_id": 54055, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 26.28, "after_verdict": "FAIL", "after_max": 26.27, "improved": true, "ok": true, "new_id": 57946, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54055_v1.png"}
-{"ts": "2026-06-11T20:37:14.311393Z", "root_id": 54055, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 26.28, "after_verdict": "WARN", "after_max": 8.62, "improved": true, "ok": true, "new_id": 57947, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54055_v2.png"}
-{"ts": "2026-06-11T20:37:14.484281Z", "root_id": 56628, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 26.12, "after_verdict": "FAIL", "after_max": 26.05, "improved": true, "ok": true, "new_id": 57948, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56628_v1.png"}
-{"ts": "2026-06-11T20:37:14.627386Z", "root_id": 56628, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 26.12, "after_verdict": "WARN", "after_max": 8.97, "improved": true, "ok": true, "new_id": 57949, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56628_v2.png"}
-{"ts": "2026-06-11T20:37:14.779354Z", "root_id": 54847, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 26.09, "after_verdict": "FAIL", "after_max": 26.34, "improved": false, "ok": true, "new_id": 57950, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54847_v1.png"}
-{"ts": "2026-06-11T20:37:14.914500Z", "root_id": 54847, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 26.09, "after_verdict": "WARN", "after_max": 11.44, "improved": true, "ok": true, "new_id": 57951, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54847_v2.png"}
-{"ts": "2026-06-11T20:37:15.083285Z", "root_id": 57145, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.96, "after_verdict": "FAIL", "after_max": 25.94, "improved": true, "ok": true, "new_id": 57952, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57145_v1.png"}
-{"ts": "2026-06-11T20:37:15.213703Z", "root_id": 57145, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.96, "after_verdict": "WARN", "after_max": 11.3, "improved": true, "ok": true, "new_id": 57953, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57145_v2.png"}
-{"ts": "2026-06-11T20:37:15.383501Z", "root_id": 57601, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.72, "after_verdict": "FAIL", "after_max": 19.69, "improved": true, "ok": true, "new_id": 57954, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57601_v1.png"}
-{"ts": "2026-06-11T20:37:15.510737Z", "root_id": 57601, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.72, "after_verdict": "FAIL", "after_max": 13.44, "improved": true, "ok": true, "new_id": 57955, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57601_v2.png"}
-{"ts": "2026-06-11T20:37:15.744294Z", "root_id": 55965, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.32, "after_verdict": "FAIL", "after_max": 24.91, "improved": true, "ok": true, "new_id": 57956, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55965_v1.png"}
-{"ts": "2026-06-11T20:37:15.944182Z", "root_id": 55965, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.32, "after_verdict": "WARN", "after_max": 10.49, "improved": true, "ok": true, "new_id": 57957, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55965_v2.png"}
-{"ts": "2026-06-11T20:37:16.113140Z", "root_id": 57264, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.1, "after_verdict": "FAIL", "after_max": 22.7, "improved": true, "ok": true, "new_id": 57958, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57264_v1.png"}
-{"ts": "2026-06-11T20:37:16.236361Z", "root_id": 57264, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.1, "after_verdict": "FAIL", "after_max": 14.57, "improved": true, "ok": true, "new_id": 57959, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57264_v2.png"}
-{"ts": "2026-06-11T20:37:26.212208Z", "root_id": 54687, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.03, "after_verdict": "FAIL", "after_max": 25.2, "improved": false, "ok": true, "new_id": 57960, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54687_v1.png"}
-{"ts": "2026-06-11T20:37:26.378645Z", "root_id": 54687, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.03, "after_verdict": "FAIL", "after_max": 18.42, "improved": true, "ok": true, "new_id": 57961, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54687_v2.png"}
-{"ts": "2026-06-11T20:37:26.566734Z", "root_id": 55045, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.81, "after_verdict": "FAIL", "after_max": 24.8, "improved": true, "ok": true, "new_id": 57962, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55045_v1.png"}
-{"ts": "2026-06-11T20:37:26.726456Z", "root_id": 55045, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.81, "after_verdict": "FAIL", "after_max": 12.22, "improved": true, "ok": true, "new_id": 57963, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55045_v2.png"}
-{"ts": "2026-06-11T20:37:26.913187Z", "root_id": 54233, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.61, "after_verdict": "FAIL", "after_max": 24.52, "improved": true, "ok": true, "new_id": 57964, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54233_v1.png"}
-{"ts": "2026-06-11T20:37:27.061613Z", "root_id": 54233, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.61, "after_verdict": "WARN", "after_max": 9.96, "improved": true, "ok": true, "new_id": 57965, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54233_v2.png"}
-{"ts": "2026-06-11T20:37:27.228222Z", "root_id": 54266, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.56, "after_verdict": "FAIL", "after_max": 24.54, "improved": true, "ok": true, "new_id": 57966, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54266_v1.png"}
-{"ts": "2026-06-11T20:37:27.363628Z", "root_id": 54266, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.56, "after_verdict": "WARN", "after_max": 8.04, "improved": true, "ok": true, "new_id": 57967, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54266_v2.png"}
-{"ts": "2026-06-11T20:37:27.548172Z", "root_id": 57277, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.44, "after_verdict": "FAIL", "after_max": 24.44, "improved": false, "ok": true, "new_id": 57968, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57277_v1.png"}
-{"ts": "2026-06-11T20:37:27.699727Z", "root_id": 57277, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.44, "after_verdict": "WARN", "after_max": 9.58, "improved": true, "ok": true, "new_id": 57969, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57277_v2.png"}
-{"ts": "2026-06-11T20:37:27.859012Z", "root_id": 54610, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.02, "after_verdict": "FAIL", "after_max": 21.34, "improved": true, "ok": true, "new_id": 57970, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54610_v1.png"}
-{"ts": "2026-06-11T20:37:27.983053Z", "root_id": 54610, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.02, "after_verdict": "FAIL", "after_max": 16.51, "improved": true, "ok": true, "new_id": 57971, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54610_v2.png"}
-{"ts": "2026-06-11T20:37:28.152585Z", "root_id": 54378, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.99, "after_verdict": "FAIL", "after_max": 17.72, "improved": true, "ok": true, "new_id": 57972, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54378_v1.png"}
-{"ts": "2026-06-11T20:37:28.280209Z", "root_id": 54378, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.99, "after_verdict": "FAIL", "after_max": 14.82, "improved": true, "ok": true, "new_id": 57973, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54378_v2.png"}
-{"ts": "2026-06-11T20:37:28.454760Z", "root_id": 56559, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.95, "after_verdict": "FAIL", "after_max": 23.95, "improved": false, "ok": true, "new_id": 57974, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56559_v1.png"}
-{"ts": "2026-06-11T20:37:28.591280Z", "root_id": 56559, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.95, "after_verdict": "WARN", "after_max": 6.9, "improved": true, "ok": true, "new_id": 57975, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56559_v2.png"}
-{"ts": "2026-06-11T20:37:28.775199Z", "root_id": 54003, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.76, "after_verdict": "FAIL", "after_max": 18.49, "improved": true, "ok": true, "new_id": 57976, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54003_v1.png"}
-{"ts": "2026-06-11T20:37:28.919936Z", "root_id": 54003, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.76, "after_verdict": "WARN", "after_max": 11.61, "improved": true, "ok": true, "new_id": 57977, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54003_v2.png"}
-{"ts": "2026-06-11T20:37:29.118293Z", "root_id": 55761, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.76, "after_verdict": "FAIL", "after_max": 17.7, "improved": true, "ok": true, "new_id": 57978, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55761_v1.png"}
-{"ts": "2026-06-11T20:37:29.285229Z", "root_id": 55761, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.76, "after_verdict": "WARN", "after_max": 11.41, "improved": true, "ok": true, "new_id": 57979, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55761_v2.png"}
-{"ts": "2026-06-11T20:37:29.483751Z", "root_id": 54729, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.29, "after_verdict": "FAIL", "after_max": 20.73, "improved": true, "ok": true, "new_id": 57980, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54729_v1.png"}
-{"ts": "2026-06-11T20:37:29.646583Z", "root_id": 54729, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.29, "after_verdict": "FAIL", "after_max": 15.58, "improved": true, "ok": true, "new_id": 57981, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54729_v2.png"}
-{"ts": "2026-06-11T20:37:29.846170Z", "root_id": 57248, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.2, "after_verdict": "FAIL", "after_max": 23.05, "improved": true, "ok": true, "new_id": 57982, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57248_v1.png"}
-{"ts": "2026-06-11T20:37:30.020860Z", "root_id": 57248, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.2, "after_verdict": "WARN", "after_max": 9.23, "improved": true, "ok": true, "new_id": 57983, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57248_v2.png"}
-{"ts": "2026-06-11T20:37:30.243744Z", "root_id": 55181, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.88, "after_verdict": "FAIL", "after_max": 22.77, "improved": true, "ok": true, "new_id": 57984, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55181_v1.png"}
-{"ts": "2026-06-11T20:37:30.428874Z", "root_id": 55181, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.88, "after_verdict": "WARN", "after_max": 8.2, "improved": true, "ok": true, "new_id": 57985, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55181_v2.png"}
-{"ts": "2026-06-11T20:37:30.690821Z", "root_id": 55322, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.88, "after_verdict": "FAIL", "after_max": 16.89, "improved": true, "ok": true, "new_id": 57986, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55322_v1.png"}
-{"ts": "2026-06-11T20:37:30.848385Z", "root_id": 55322, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.88, "after_verdict": "FAIL", "after_max": 15.03, "improved": true, "ok": true, "new_id": 57987, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55322_v2.png"}
-{"ts": "2026-06-11T20:37:31.618299Z", "root_id": 57421, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.77, "after_verdict": "FAIL", "after_max": 22.13, "improved": true, "ok": true, "new_id": 57988, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57421_v1.png"}
-{"ts": "2026-06-11T20:37:32.341749Z", "root_id": 57421, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.77, "after_verdict": "WARN", "after_max": 11.52, "improved": true, "ok": true, "new_id": 57989, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57421_v2.png"}
-{"ts": "2026-06-11T20:37:33.035506Z", "root_id": 56605, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.75, "after_verdict": "FAIL", "after_max": 20.41, "improved": true, "ok": true, "new_id": 57990, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56605_v1.png"}
-{"ts": "2026-06-11T20:37:33.681408Z", "root_id": 56605, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.75, "after_verdict": "WARN", "after_max": 10.87, "improved": true, "ok": true, "new_id": 57991, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56605_v2.png"}
-{"ts": "2026-06-11T20:37:33.877324Z", "root_id": 56435, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.51, "after_verdict": "FAIL", "after_max": 16.02, "improved": true, "ok": true, "new_id": 57992, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56435_v1.png"}
-{"ts": "2026-06-11T20:37:34.032752Z", "root_id": 56435, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.51, "after_verdict": "FAIL", "after_max": 12.94, "improved": true, "ok": true, "new_id": 57993, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56435_v2.png"}
-{"ts": "2026-06-11T20:37:34.209092Z", "root_id": 55057, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.21, "after_verdict": "FAIL", "after_max": 22.2, "improved": true, "ok": true, "new_id": 57994, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55057_v1.png"}
-{"ts": "2026-06-11T20:37:34.354597Z", "root_id": 55057, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.21, "after_verdict": "FAIL", "after_max": 13.86, "improved": true, "ok": true, "new_id": 57995, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55057_v2.png"}
-{"ts": "2026-06-11T20:37:34.535449Z", "root_id": 54076, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.19, "after_verdict": "FAIL", "after_max": 22.11, "improved": true, "ok": true, "new_id": 57996, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54076_v1.png"}
-{"ts": "2026-06-11T20:37:34.675020Z", "root_id": 54076, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.19, "after_verdict": "WARN", "after_max": 10.88, "improved": true, "ok": true, "new_id": 57997, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54076_v2.png"}
-{"ts": "2026-06-11T20:37:34.876203Z", "root_id": 55650, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.13, "after_verdict": "FAIL", "after_max": 22.13, "improved": false, "ok": true, "new_id": 57998, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55650_v1.png"}
-{"ts": "2026-06-11T20:37:35.043208Z", "root_id": 55650, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.13, "after_verdict": "WARN", "after_max": 8.46, "improved": true, "ok": true, "new_id": 57999, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55650_v2.png"}
-{"ts": "2026-06-11T20:37:35.240777Z", "root_id": 55006, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.04, "after_verdict": "FAIL", "after_max": 22.04, "improved": false, "ok": true, "new_id": 58000, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55006_v1.png"}
-{"ts": "2026-06-11T20:37:35.404638Z", "root_id": 55006, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.04, "after_verdict": "WARN", "after_max": 11.34, "improved": true, "ok": true, "new_id": 58001, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55006_v2.png"}
-{"ts": "2026-06-11T20:37:35.598762Z", "root_id": 55545, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.98, "after_verdict": "FAIL", "after_max": 19.32, "improved": true, "ok": true, "new_id": 58002, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55545_v1.png"}
-{"ts": "2026-06-11T20:37:35.753547Z", "root_id": 55545, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.98, "after_verdict": "FAIL", "after_max": 14.23, "improved": true, "ok": true, "new_id": 58003, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55545_v2.png"}
-{"ts": "2026-06-11T20:37:35.929849Z", "root_id": 54478, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.66, "after_verdict": "FAIL", "after_max": 19.59, "improved": true, "ok": true, "new_id": 58004, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54478_v1.png"}
-{"ts": "2026-06-11T20:37:36.055755Z", "root_id": 54478, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.66, "after_verdict": "WARN", "after_max": 9.6, "improved": true, "ok": true, "new_id": 58005, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54478_v2.png"}
-{"ts": "2026-06-11T20:37:36.247656Z", "root_id": 57343, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.58, "after_verdict": "FAIL", "after_max": 16.07, "improved": true, "ok": true, "new_id": 58006, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57343_v1.png"}
-{"ts": "2026-06-11T20:37:36.389555Z", "root_id": 57343, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.58, "after_verdict": "FAIL", "after_max": 13.58, "improved": true, "ok": true, "new_id": 58007, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57343_v2.png"}
-{"ts": "2026-06-11T20:37:36.576219Z", "root_id": 54541, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.49, "after_verdict": "FAIL", "after_max": 16.93, "improved": true, "ok": true, "new_id": 58008, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54541_v1.png"}
-{"ts": "2026-06-11T20:37:36.725423Z", "root_id": 54541, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.49, "after_verdict": "FAIL", "after_max": 14.39, "improved": true, "ok": true, "new_id": 58009, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54541_v2.png"}
-{"ts": "2026-06-11T20:37:36.933751Z", "root_id": 55655, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.4, "after_verdict": "FAIL", "after_max": 15.51, "improved": true, "ok": true, "new_id": 58010, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55655_v1.png"}
-{"ts": "2026-06-11T20:37:37.108563Z", "root_id": 55655, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.4, "after_verdict": "FAIL", "after_max": 14.71, "improved": true, "ok": true, "new_id": 58011, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55655_v2.png"}
-{"ts": "2026-06-11T20:37:37.319804Z", "root_id": 56641, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.29, "after_verdict": "FAIL", "after_max": 19.54, "improved": true, "ok": true, "new_id": 58012, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56641_v1.png"}
-{"ts": "2026-06-11T20:37:37.491572Z", "root_id": 56641, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.29, "after_verdict": "FAIL", "after_max": 12.99, "improved": true, "ok": true, "new_id": 58013, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56641_v2.png"}
-{"ts": "2026-06-11T20:37:37.643421Z", "root_id": 56666, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.24, "after_verdict": "FAIL", "after_max": 21.37, "improved": false, "ok": true, "new_id": 58014, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56666_v1.png"}
-{"ts": "2026-06-11T20:37:37.756870Z", "root_id": 56666, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.24, "after_verdict": "WARN", "after_max": 6.56, "improved": true, "ok": true, "new_id": 58015, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56666_v2.png"}
-{"ts": "2026-06-11T20:37:37.943391Z", "root_id": 56360, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.22, "after_verdict": "FAIL", "after_max": 18.83, "improved": true, "ok": true, "new_id": 58016, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56360_v1.png"}
-{"ts": "2026-06-11T20:37:38.098511Z", "root_id": 56360, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.22, "after_verdict": "WARN", "after_max": 10.43, "improved": true, "ok": true, "new_id": 58017, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56360_v2.png"}
-{"ts": "2026-06-11T20:37:38.299618Z", "root_id": 56192, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.2, "after_verdict": "FAIL", "after_max": 21.17, "improved": true, "ok": true, "new_id": 58018, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56192_v1.png"}
-{"ts": "2026-06-11T20:37:38.465047Z", "root_id": 56192, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.2, "after_verdict": "WARN", "after_max": 10.46, "improved": true, "ok": true, "new_id": 58019, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56192_v2.png"}
-{"ts": "2026-06-11T20:37:38.644233Z", "root_id": 54507, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.13, "after_verdict": "FAIL", "after_max": 17.96, "improved": true, "ok": true, "new_id": 58020, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54507_v1.png"}
-{"ts": "2026-06-11T20:37:38.796388Z", "root_id": 54507, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.13, "after_verdict": "WARN", "after_max": 11.65, "improved": true, "ok": true, "new_id": 58021, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54507_v2.png"}
-{"ts": "2026-06-11T20:37:38.979381Z", "root_id": 54685, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.01, "after_verdict": "FAIL", "after_max": 21.01, "improved": false, "ok": true, "new_id": 58022, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54685_v1.png"}
-{"ts": "2026-06-11T20:37:39.132613Z", "root_id": 54685, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.01, "after_verdict": "WARN", "after_max": 9.13, "improved": true, "ok": true, "new_id": 58023, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54685_v2.png"}
-{"ts": "2026-06-11T20:37:39.348279Z", "root_id": 56741, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.94, "after_verdict": "FAIL", "after_max": 20.69, "improved": true, "ok": true, "new_id": 58024, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56741_v1.png"}
-{"ts": "2026-06-11T20:37:39.525062Z", "root_id": 56741, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.94, "after_verdict": "FAIL", "after_max": 12.35, "improved": true, "ok": true, "new_id": 58025, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56741_v2.png"}
-{"ts": "2026-06-11T20:37:40.377462Z", "root_id": 56861, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.87, "after_verdict": "FAIL", "after_max": 20.83, "improved": true, "ok": true, "new_id": 58026, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56861_v1.png"}
-{"ts": "2026-06-11T20:37:41.145831Z", "root_id": 56861, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.87, "after_verdict": "WARN", "after_max": 10.83, "improved": true, "ok": true, "new_id": 58027, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56861_v2.png"}
-{"ts": "2026-06-11T20:37:41.872529Z", "root_id": 57196, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.87, "after_verdict": "FAIL", "after_max": 20.86, "improved": true, "ok": true, "new_id": 58028, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57196_v1.png"}
-{"ts": "2026-06-11T20:37:42.560564Z", "root_id": 57196, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.87, "after_verdict": "FAIL", "after_max": 12.52, "improved": true, "ok": true, "new_id": 58029, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57196_v2.png"}
-{"ts": "2026-06-11T20:37:42.760456Z", "root_id": 54192, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.86, "after_verdict": "FAIL", "after_max": 20.11, "improved": true, "ok": true, "new_id": 58030, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54192_v1.png"}
-{"ts": "2026-06-11T20:37:42.916981Z", "root_id": 54192, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.86, "after_verdict": "FAIL", "after_max": 13.57, "improved": true, "ok": true, "new_id": 58031, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54192_v2.png"}
-{"ts": "2026-06-11T20:37:43.640469Z", "root_id": 57270, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.73, "after_verdict": "FAIL", "after_max": 20.73, "improved": false, "ok": true, "new_id": 58032, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57270_v1.png"}
-{"ts": "2026-06-11T20:37:44.336431Z", "root_id": 57270, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.73, "after_verdict": "WARN", "after_max": 9.54, "improved": true, "ok": true, "new_id": 58033, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57270_v2.png"}
-{"ts": "2026-06-11T20:37:44.489195Z", "root_id": 56496, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.67, "after_verdict": "FAIL", "after_max": 20.08, "improved": true, "ok": true, "new_id": 58034, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56496_v1.png"}
-{"ts": "2026-06-11T20:37:44.607373Z", "root_id": 56496, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.67, "after_verdict": "WARN", "after_max": 7.46, "improved": true, "ok": true, "new_id": 58035, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56496_v2.png"}
-{"ts": "2026-06-11T20:37:44.780204Z", "root_id": 54123, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.59, "after_verdict": "FAIL", "after_max": 20.21, "improved": true, "ok": true, "new_id": 58036, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54123_v1.png"}
-{"ts": "2026-06-11T20:37:44.917232Z", "root_id": 54123, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.59, "after_verdict": "WARN", "after_max": 11.73, "improved": true, "ok": true, "new_id": 58037, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54123_v2.png"}
-{"ts": "2026-06-11T20:37:45.110394Z", "root_id": 54843, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.56, "after_verdict": "FAIL", "after_max": 20.32, "improved": true, "ok": true, "new_id": 58038, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54843_v1.png"}
-{"ts": "2026-06-11T20:37:45.273997Z", "root_id": 54843, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.56, "after_verdict": "WARN", "after_max": 7.13, "improved": true, "ok": true, "new_id": 58039, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54843_v2.png"}
+{"ts": "2026-06-11T20:22:40.035606Z", "root_id": 2810, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 15.31, "after_verdict": "FAIL", "after_max": 15.07, "improved": true, "ok": true, "new_id": 57869, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/2810_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "PASS"}}
+{"ts": "2026-06-11T20:22:40.182546Z", "root_id": 2810, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 15.31, "after_verdict": "WARN", "after_max": 5.68, "improved": true, "ok": true, "new_id": 57870, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/2810_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:22:40.432864Z", "root_id": 2778, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 12.2, "after_verdict": "FAIL", "after_max": 12.2, "improved": false, "ok": true, "new_id": 57871, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/2778_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "FAIL"}}
+{"ts": "2026-06-11T20:22:40.637114Z", "root_id": 2778, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 12.2, "after_verdict": "WARN", "after_max": 5.33, "improved": true, "ok": true, "new_id": 57872, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/2778_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:22:40.819425Z", "root_id": 43186, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.6, "after_verdict": "FAIL", "after_max": 13.3, "improved": true, "ok": true, "new_id": 57873, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/43186_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "PASS", "v": "WARN"}}
+{"ts": "2026-06-11T20:22:40.959106Z", "root_id": 43186, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.6, "after_verdict": "WARN", "after_max": 5.77, "improved": true, "ok": true, "new_id": 57874, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/43186_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:22:41.126774Z", "root_id": 43198, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 26.92, "after_verdict": "FAIL", "after_max": 19.39, "improved": true, "ok": true, "new_id": 57875, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/43198_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "PASS"}}
+{"ts": "2026-06-11T20:22:41.258869Z", "root_id": 43198, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 26.92, "after_verdict": "PASS", "after_max": 4.81, "improved": true, "ok": true, "new_id": 57876, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/43198_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:22:41.470605Z", "root_id": 2662, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.01, "after_verdict": "FAIL", "after_max": 22.0, "improved": true, "ok": true, "new_id": 57877, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/2662_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:22:41.638429Z", "root_id": 2662, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.01, "after_verdict": "WARN", "after_max": 11.13, "improved": true, "ok": true, "new_id": 57878, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/2662_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:00.149689Z", "root_id": 54863, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 56.01, "after_verdict": "FAIL", "after_max": 55.91, "improved": true, "ok": true, "new_id": 57880, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54863_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "PASS", "v": "FAIL"}}
+{"ts": "2026-06-11T20:37:00.295713Z", "root_id": 54863, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 56.01, "after_verdict": "FAIL", "after_max": 14.33, "improved": true, "ok": true, "new_id": 57881, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54863_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:00.496757Z", "root_id": 55206, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 42.43, "after_verdict": "FAIL", "after_max": 42.43, "improved": false, "ok": true, "new_id": 57882, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55206_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:00.673195Z", "root_id": 55206, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 42.43, "after_verdict": "FAIL", "after_max": 15.99, "improved": true, "ok": true, "new_id": 57883, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55206_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:00.886776Z", "root_id": 54468, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 40.68, "after_verdict": "FAIL", "after_max": 34.88, "improved": true, "ok": true, "new_id": 57884, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54468_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:01.054561Z", "root_id": 54468, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 40.68, "after_verdict": "FAIL", "after_max": 36.27, "improved": true, "ok": true, "new_id": 57885, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54468_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:01.261706Z", "root_id": 56008, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 40.2, "after_verdict": "FAIL", "after_max": 36.1, "improved": true, "ok": true, "new_id": 57886, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56008_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:01.427380Z", "root_id": 56008, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 40.2, "after_verdict": "FAIL", "after_max": 14.45, "improved": true, "ok": true, "new_id": 57887, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56008_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:01.631535Z", "root_id": 57262, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 37.2, "after_verdict": "FAIL", "after_max": 18.23, "improved": true, "ok": true, "new_id": 57888, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57262_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "FAIL"}}
+{"ts": "2026-06-11T20:37:01.793248Z", "root_id": 57262, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 37.2, "after_verdict": "FAIL", "after_max": 31.69, "improved": true, "ok": true, "new_id": 57889, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57262_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:01.956984Z", "root_id": 54226, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 36.33, "after_verdict": "FAIL", "after_max": 35.81, "improved": true, "ok": true, "new_id": 57890, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54226_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "PASS", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:02.080759Z", "root_id": 54226, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 36.33, "after_verdict": "WARN", "after_max": 9.92, "improved": true, "ok": true, "new_id": 57891, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54226_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:02.269016Z", "root_id": 56267, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 36.05, "after_verdict": "FAIL", "after_max": 35.81, "improved": true, "ok": true, "new_id": 57892, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56267_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:02.422310Z", "root_id": 56267, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 36.05, "after_verdict": "WARN", "after_max": 8.47, "improved": true, "ok": true, "new_id": 57893, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56267_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:02.622839Z", "root_id": 56633, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 35.24, "after_verdict": "FAIL", "after_max": 34.99, "improved": true, "ok": true, "new_id": 57894, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56633_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:02.783668Z", "root_id": 56633, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 35.24, "after_verdict": "FAIL", "after_max": 14.63, "improved": true, "ok": true, "new_id": 57895, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56633_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:02.954603Z", "root_id": 54078, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 33.5, "after_verdict": "FAIL", "after_max": 33.5, "improved": false, "ok": true, "new_id": 57896, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54078_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:03.090969Z", "root_id": 54078, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 33.5, "after_verdict": "FAIL", "after_max": 12.89, "improved": true, "ok": true, "new_id": 57897, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54078_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:03.277169Z", "root_id": 56110, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 33.21, "after_verdict": "FAIL", "after_max": 24.58, "improved": true, "ok": true, "new_id": 57898, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56110_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:03.425324Z", "root_id": 56110, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 33.21, "after_verdict": "FAIL", "after_max": 23.9, "improved": true, "ok": true, "new_id": 57899, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56110_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:03.618220Z", "root_id": 56672, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 33.19, "after_verdict": "FAIL", "after_max": 32.69, "improved": true, "ok": true, "new_id": 57900, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56672_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:03.783016Z", "root_id": 56672, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 33.19, "after_verdict": "WARN", "after_max": 11.4, "improved": true, "ok": true, "new_id": 57901, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56672_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:04.496303Z", "root_id": 57247, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 32.17, "after_verdict": "FAIL", "after_max": 31.93, "improved": true, "ok": true, "new_id": 57902, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57247_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "FAIL"}}
+{"ts": "2026-06-11T20:37:05.157373Z", "root_id": 57247, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 32.17, "after_verdict": "WARN", "after_max": 10.62, "improved": true, "ok": true, "new_id": 57903, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57247_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:05.334269Z", "root_id": 55303, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 31.87, "after_verdict": "FAIL", "after_max": 27.84, "improved": true, "ok": true, "new_id": 57904, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55303_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:05.474030Z", "root_id": 55303, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 31.87, "after_verdict": "WARN", "after_max": 11.78, "improved": true, "ok": true, "new_id": 57905, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55303_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:05.640438Z", "root_id": 54596, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 31.24, "after_verdict": "FAIL", "after_max": 31.24, "improved": false, "ok": true, "new_id": 57906, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54596_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:05.765556Z", "root_id": 54596, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 31.24, "after_verdict": "WARN", "after_max": 9.58, "improved": true, "ok": true, "new_id": 57907, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54596_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:06.356263Z", "root_id": 56774, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 30.53, "after_verdict": "FAIL", "after_max": 30.54, "improved": false, "ok": true, "new_id": 57908, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56774_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "FAIL", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:06.899603Z", "root_id": 56774, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 30.53, "after_verdict": "FAIL", "after_max": 18.69, "improved": true, "ok": true, "new_id": 57909, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56774_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:07.076141Z", "root_id": 54236, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 30.49, "after_verdict": "FAIL", "after_max": 30.52, "improved": false, "ok": true, "new_id": 57910, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54236_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:07.216426Z", "root_id": 54236, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 30.49, "after_verdict": "FAIL", "after_max": 16.81, "improved": true, "ok": true, "new_id": 57911, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54236_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:07.401578Z", "root_id": 54744, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 30.32, "after_verdict": "FAIL", "after_max": 29.95, "improved": true, "ok": true, "new_id": 57912, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54744_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:07.558497Z", "root_id": 54744, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 30.32, "after_verdict": "FAIL", "after_max": 13.82, "improved": true, "ok": true, "new_id": 57913, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54744_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:07.750816Z", "root_id": 54447, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 29.87, "after_verdict": "FAIL", "after_max": 29.86, "improved": true, "ok": true, "new_id": 57914, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54447_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:07.902720Z", "root_id": 54447, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 29.87, "after_verdict": "WARN", "after_max": 9.43, "improved": true, "ok": true, "new_id": 57915, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54447_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:08.095529Z", "root_id": 53718, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 29.77, "after_verdict": "FAIL", "after_max": 28.58, "improved": true, "ok": true, "new_id": 57916, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/53718_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:08.239304Z", "root_id": 53718, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 29.77, "after_verdict": "FAIL", "after_max": 22.1, "improved": true, "ok": true, "new_id": 57917, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/53718_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:09.025246Z", "root_id": 56687, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 29.56, "after_verdict": "FAIL", "after_max": 29.56, "improved": false, "ok": true, "new_id": 57918, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56687_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "FAIL"}}
+{"ts": "2026-06-11T20:37:09.753532Z", "root_id": 56687, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 29.56, "after_verdict": "FAIL", "after_max": 12.93, "improved": true, "ok": true, "new_id": 57919, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56687_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:09.925684Z", "root_id": 55313, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 29.4, "after_verdict": "FAIL", "after_max": 29.35, "improved": true, "ok": true, "new_id": 57920, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55313_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "FAIL", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:10.060015Z", "root_id": 55313, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 29.4, "after_verdict": "WARN", "after_max": 9.81, "improved": true, "ok": true, "new_id": 57921, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55313_v2.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "PASS", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:10.219355Z", "root_id": 56791, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.84, "after_verdict": "FAIL", "after_max": 28.44, "improved": true, "ok": true, "new_id": 57922, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56791_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:10.343342Z", "root_id": 56791, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.84, "after_verdict": "WARN", "after_max": 9.61, "improved": true, "ok": true, "new_id": 57923, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56791_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:10.509662Z", "root_id": 54793, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.79, "after_verdict": "FAIL", "after_max": 28.75, "improved": true, "ok": true, "new_id": 57924, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54793_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "PASS", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:10.632943Z", "root_id": 54793, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.79, "after_verdict": "WARN", "after_max": 9.65, "improved": true, "ok": true, "new_id": 57925, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54793_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:10.835487Z", "root_id": 55612, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.35, "after_verdict": "FAIL", "after_max": 27.93, "improved": true, "ok": true, "new_id": 57926, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55612_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "FAIL"}}
+{"ts": "2026-06-11T20:37:10.998051Z", "root_id": 55612, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.35, "after_verdict": "WARN", "after_max": 10.0, "improved": true, "ok": true, "new_id": 57927, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55612_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:11.167217Z", "root_id": 55310, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.32, "after_verdict": "FAIL", "after_max": 27.98, "improved": true, "ok": true, "new_id": 57928, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55310_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:11.304802Z", "root_id": 55310, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.32, "after_verdict": "WARN", "after_max": 8.79, "improved": true, "ok": true, "new_id": 57929, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55310_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:11.462688Z", "root_id": 54851, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.26, "after_verdict": "FAIL", "after_max": 28.43, "improved": false, "ok": true, "new_id": 57930, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54851_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "FAIL", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:11.574582Z", "root_id": 54851, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.26, "after_verdict": "FAIL", "after_max": 15.83, "improved": true, "ok": true, "new_id": 57931, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54851_v2.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:11.747415Z", "root_id": 54815, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.25, "after_verdict": "FAIL", "after_max": 28.4, "improved": false, "ok": true, "new_id": 57932, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54815_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:11.877123Z", "root_id": 54815, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.25, "after_verdict": "WARN", "after_max": 11.69, "improved": true, "ok": true, "new_id": 57933, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54815_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:12.078083Z", "root_id": 54785, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.07, "after_verdict": "FAIL", "after_max": 27.92, "improved": true, "ok": true, "new_id": 57934, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54785_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:12.241253Z", "root_id": 54785, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 28.07, "after_verdict": "FAIL", "after_max": 12.58, "improved": true, "ok": true, "new_id": 57935, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54785_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:12.435467Z", "root_id": 53936, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.9, "after_verdict": "FAIL", "after_max": 27.94, "improved": false, "ok": true, "new_id": 57936, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/53936_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:12.587819Z", "root_id": 53936, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.9, "after_verdict": "FAIL", "after_max": 12.25, "improved": true, "ok": true, "new_id": 57937, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/53936_v2.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "PASS", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:12.783837Z", "root_id": 53896, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.62, "after_verdict": "FAIL", "after_max": 27.54, "improved": true, "ok": true, "new_id": 57938, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/53896_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "PASS", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:12.936376Z", "root_id": 53896, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.62, "after_verdict": "WARN", "after_max": 9.98, "improved": true, "ok": true, "new_id": 57939, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/53896_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:13.133331Z", "root_id": 56244, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.54, "after_verdict": "FAIL", "after_max": 27.46, "improved": true, "ok": true, "new_id": 57940, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56244_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "FAIL"}}
+{"ts": "2026-06-11T20:37:13.294996Z", "root_id": 56244, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.54, "after_verdict": "WARN", "after_max": 10.38, "improved": true, "ok": true, "new_id": 57941, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56244_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:13.477942Z", "root_id": 55636, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.51, "after_verdict": "FAIL", "after_max": 27.51, "improved": false, "ok": true, "new_id": 57942, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55636_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:13.626832Z", "root_id": 55636, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.51, "after_verdict": "WARN", "after_max": 9.34, "improved": true, "ok": true, "new_id": 57943, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55636_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:13.800587Z", "root_id": 56654, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.41, "after_verdict": "FAIL", "after_max": 27.41, "improved": false, "ok": true, "new_id": 57944, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56654_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:13.939311Z", "root_id": 56654, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 27.41, "after_verdict": "WARN", "after_max": 8.41, "improved": true, "ok": true, "new_id": 57945, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56654_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:14.145338Z", "root_id": 54055, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 26.28, "after_verdict": "FAIL", "after_max": 26.27, "improved": true, "ok": true, "new_id": 57946, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54055_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "FAIL", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:14.311393Z", "root_id": 54055, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 26.28, "after_verdict": "WARN", "after_max": 8.62, "improved": true, "ok": true, "new_id": 57947, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54055_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:14.484281Z", "root_id": 56628, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 26.12, "after_verdict": "FAIL", "after_max": 26.05, "improved": true, "ok": true, "new_id": 57948, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56628_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:14.627386Z", "root_id": 56628, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 26.12, "after_verdict": "WARN", "after_max": 8.97, "improved": true, "ok": true, "new_id": 57949, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56628_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:14.779354Z", "root_id": 54847, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 26.09, "after_verdict": "FAIL", "after_max": 26.34, "improved": false, "ok": true, "new_id": 57950, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54847_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:14.914500Z", "root_id": 54847, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 26.09, "after_verdict": "WARN", "after_max": 11.44, "improved": true, "ok": true, "new_id": 57951, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54847_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:15.083285Z", "root_id": 57145, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.96, "after_verdict": "FAIL", "after_max": 25.94, "improved": true, "ok": true, "new_id": 57952, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57145_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:15.213703Z", "root_id": 57145, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.96, "after_verdict": "WARN", "after_max": 11.3, "improved": true, "ok": true, "new_id": 57953, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57145_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:15.383501Z", "root_id": 57601, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.72, "after_verdict": "FAIL", "after_max": 19.69, "improved": true, "ok": true, "new_id": 57954, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57601_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:15.510737Z", "root_id": 57601, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.72, "after_verdict": "FAIL", "after_max": 13.44, "improved": true, "ok": true, "new_id": 57955, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57601_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:15.744294Z", "root_id": 55965, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.32, "after_verdict": "FAIL", "after_max": 24.91, "improved": true, "ok": true, "new_id": 57956, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55965_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "FAIL", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:15.944182Z", "root_id": 55965, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.32, "after_verdict": "WARN", "after_max": 10.49, "improved": true, "ok": true, "new_id": 57957, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55965_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:16.113140Z", "root_id": 57264, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.1, "after_verdict": "FAIL", "after_max": 22.7, "improved": true, "ok": true, "new_id": 57958, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57264_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:16.236361Z", "root_id": 57264, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.1, "after_verdict": "FAIL", "after_max": 14.57, "improved": true, "ok": true, "new_id": 57959, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57264_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:26.212208Z", "root_id": 54687, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.03, "after_verdict": "FAIL", "after_max": 25.2, "improved": false, "ok": true, "new_id": 57960, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54687_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:26.378645Z", "root_id": 54687, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 25.03, "after_verdict": "FAIL", "after_max": 18.42, "improved": true, "ok": true, "new_id": 57961, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54687_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:26.566734Z", "root_id": 55045, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.81, "after_verdict": "FAIL", "after_max": 24.8, "improved": true, "ok": true, "new_id": 57962, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55045_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:26.726456Z", "root_id": 55045, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.81, "after_verdict": "FAIL", "after_max": 12.22, "improved": true, "ok": true, "new_id": 57963, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55045_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:26.913187Z", "root_id": 54233, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.61, "after_verdict": "FAIL", "after_max": 24.52, "improved": true, "ok": true, "new_id": 57964, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54233_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:27.061613Z", "root_id": 54233, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.61, "after_verdict": "WARN", "after_max": 9.96, "improved": true, "ok": true, "new_id": 57965, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54233_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:27.228222Z", "root_id": 54266, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.56, "after_verdict": "FAIL", "after_max": 24.54, "improved": true, "ok": true, "new_id": 57966, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54266_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:27.363628Z", "root_id": 54266, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.56, "after_verdict": "WARN", "after_max": 8.04, "improved": true, "ok": true, "new_id": 57967, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54266_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:27.548172Z", "root_id": 57277, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.44, "after_verdict": "FAIL", "after_max": 24.44, "improved": false, "ok": true, "new_id": 57968, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57277_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:27.699727Z", "root_id": 57277, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.44, "after_verdict": "WARN", "after_max": 9.58, "improved": true, "ok": true, "new_id": 57969, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57277_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:27.859012Z", "root_id": 54610, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.02, "after_verdict": "FAIL", "after_max": 21.34, "improved": true, "ok": true, "new_id": 57970, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54610_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:27.983053Z", "root_id": 54610, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 24.02, "after_verdict": "FAIL", "after_max": 16.51, "improved": true, "ok": true, "new_id": 57971, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54610_v2.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "PASS", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:28.152585Z", "root_id": 54378, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.99, "after_verdict": "FAIL", "after_max": 17.72, "improved": true, "ok": true, "new_id": 57972, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54378_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "PASS", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:28.280209Z", "root_id": 54378, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.99, "after_verdict": "FAIL", "after_max": 14.82, "improved": true, "ok": true, "new_id": 57973, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54378_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:28.454760Z", "root_id": 56559, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.95, "after_verdict": "FAIL", "after_max": 23.95, "improved": false, "ok": true, "new_id": 57974, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56559_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "FAIL", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:28.591280Z", "root_id": 56559, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.95, "after_verdict": "WARN", "after_max": 6.9, "improved": true, "ok": true, "new_id": 57975, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56559_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:28.775199Z", "root_id": 54003, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.76, "after_verdict": "FAIL", "after_max": 18.49, "improved": true, "ok": true, "new_id": 57976, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54003_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "PASS", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:28.919936Z", "root_id": 54003, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.76, "after_verdict": "WARN", "after_max": 11.61, "improved": true, "ok": true, "new_id": 57977, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54003_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:29.118293Z", "root_id": 55761, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.76, "after_verdict": "FAIL", "after_max": 17.7, "improved": true, "ok": true, "new_id": 57978, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55761_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "FAIL", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:29.285229Z", "root_id": 55761, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.76, "after_verdict": "WARN", "after_max": 11.41, "improved": true, "ok": true, "new_id": 57979, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55761_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:29.483751Z", "root_id": 54729, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.29, "after_verdict": "FAIL", "after_max": 20.73, "improved": true, "ok": true, "new_id": 57980, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54729_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:29.646583Z", "root_id": 54729, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.29, "after_verdict": "FAIL", "after_max": 15.58, "improved": true, "ok": true, "new_id": 57981, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54729_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:29.846170Z", "root_id": 57248, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.2, "after_verdict": "FAIL", "after_max": 23.05, "improved": true, "ok": true, "new_id": 57982, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57248_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "FAIL", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:30.020860Z", "root_id": 57248, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 23.2, "after_verdict": "WARN", "after_max": 9.23, "improved": true, "ok": true, "new_id": 57983, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57248_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:30.243744Z", "root_id": 55181, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.88, "after_verdict": "FAIL", "after_max": 22.77, "improved": true, "ok": true, "new_id": 57984, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55181_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "FAIL", "v": "FAIL"}}
+{"ts": "2026-06-11T20:37:30.428874Z", "root_id": 55181, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.88, "after_verdict": "WARN", "after_max": 8.2, "improved": true, "ok": true, "new_id": 57985, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55181_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:30.690821Z", "root_id": 55322, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.88, "after_verdict": "FAIL", "after_max": 16.89, "improved": true, "ok": true, "new_id": 57986, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55322_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:30.848385Z", "root_id": 55322, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.88, "after_verdict": "FAIL", "after_max": 15.03, "improved": true, "ok": true, "new_id": 57987, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55322_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:31.618299Z", "root_id": 57421, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.77, "after_verdict": "FAIL", "after_max": 22.13, "improved": true, "ok": true, "new_id": 57988, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57421_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:32.341749Z", "root_id": 57421, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.77, "after_verdict": "WARN", "after_max": 11.52, "improved": true, "ok": true, "new_id": 57989, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57421_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:33.035506Z", "root_id": 56605, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.75, "after_verdict": "FAIL", "after_max": 20.41, "improved": true, "ok": true, "new_id": 57990, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56605_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:33.681408Z", "root_id": 56605, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.75, "after_verdict": "WARN", "after_max": 10.87, "improved": true, "ok": true, "new_id": 57991, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56605_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:33.877324Z", "root_id": 56435, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.51, "after_verdict": "FAIL", "after_max": 16.02, "improved": true, "ok": true, "new_id": 57992, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56435_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:34.032752Z", "root_id": 56435, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.51, "after_verdict": "FAIL", "after_max": 12.94, "improved": true, "ok": true, "new_id": 57993, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56435_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:34.209092Z", "root_id": 55057, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.21, "after_verdict": "FAIL", "after_max": 22.2, "improved": true, "ok": true, "new_id": 57994, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55057_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:34.354597Z", "root_id": 55057, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.21, "after_verdict": "FAIL", "after_max": 13.86, "improved": true, "ok": true, "new_id": 57995, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55057_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:34.535449Z", "root_id": 54076, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.19, "after_verdict": "FAIL", "after_max": 22.11, "improved": true, "ok": true, "new_id": 57996, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54076_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:34.675020Z", "root_id": 54076, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.19, "after_verdict": "WARN", "after_max": 10.88, "improved": true, "ok": true, "new_id": 57997, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54076_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:34.876203Z", "root_id": 55650, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.13, "after_verdict": "FAIL", "after_max": 22.13, "improved": false, "ok": true, "new_id": 57998, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55650_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "FAIL"}}
+{"ts": "2026-06-11T20:37:35.043208Z", "root_id": 55650, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.13, "after_verdict": "WARN", "after_max": 8.46, "improved": true, "ok": true, "new_id": 57999, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55650_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:35.240777Z", "root_id": 55006, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.04, "after_verdict": "FAIL", "after_max": 22.04, "improved": false, "ok": true, "new_id": 58000, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55006_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:35.404638Z", "root_id": 55006, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 22.04, "after_verdict": "WARN", "after_max": 11.34, "improved": true, "ok": true, "new_id": 58001, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55006_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:35.598762Z", "root_id": 55545, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.98, "after_verdict": "FAIL", "after_max": 19.32, "improved": true, "ok": true, "new_id": 58002, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55545_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:35.753547Z", "root_id": 55545, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.98, "after_verdict": "FAIL", "after_max": 14.23, "improved": true, "ok": true, "new_id": 58003, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55545_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:35.929849Z", "root_id": 54478, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.66, "after_verdict": "FAIL", "after_max": 19.59, "improved": true, "ok": true, "new_id": 58004, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54478_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:36.055755Z", "root_id": 54478, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.66, "after_verdict": "WARN", "after_max": 9.6, "improved": true, "ok": true, "new_id": 58005, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54478_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:36.247656Z", "root_id": 57343, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.58, "after_verdict": "FAIL", "after_max": 16.07, "improved": true, "ok": true, "new_id": 58006, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57343_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:36.389555Z", "root_id": 57343, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.58, "after_verdict": "FAIL", "after_max": 13.58, "improved": true, "ok": true, "new_id": 58007, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57343_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:36.576219Z", "root_id": 54541, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.49, "after_verdict": "FAIL", "after_max": 16.93, "improved": true, "ok": true, "new_id": 58008, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54541_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:36.725423Z", "root_id": 54541, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.49, "after_verdict": "FAIL", "after_max": 14.39, "improved": true, "ok": true, "new_id": 58009, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54541_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:36.933751Z", "root_id": 55655, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.4, "after_verdict": "FAIL", "after_max": 15.51, "improved": true, "ok": true, "new_id": 58010, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55655_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:37.108563Z", "root_id": 55655, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.4, "after_verdict": "FAIL", "after_max": 14.71, "improved": true, "ok": true, "new_id": 58011, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/55655_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:37.319804Z", "root_id": 56641, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.29, "after_verdict": "FAIL", "after_max": 19.54, "improved": true, "ok": true, "new_id": 58012, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56641_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:37.491572Z", "root_id": 56641, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.29, "after_verdict": "FAIL", "after_max": 12.99, "improved": true, "ok": true, "new_id": 58013, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56641_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:37.643421Z", "root_id": 56666, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.24, "after_verdict": "FAIL", "after_max": 21.37, "improved": false, "ok": true, "new_id": 58014, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56666_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "FAIL", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:37.756870Z", "root_id": 56666, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.24, "after_verdict": "WARN", "after_max": 6.56, "improved": true, "ok": true, "new_id": 58015, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56666_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:37.943391Z", "root_id": 56360, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.22, "after_verdict": "FAIL", "after_max": 18.83, "improved": true, "ok": true, "new_id": 58016, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56360_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:38.098511Z", "root_id": 56360, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.22, "after_verdict": "WARN", "after_max": 10.43, "improved": true, "ok": true, "new_id": 58017, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56360_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:38.299618Z", "root_id": 56192, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.2, "after_verdict": "FAIL", "after_max": 21.17, "improved": true, "ok": true, "new_id": 58018, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56192_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:38.465047Z", "root_id": 56192, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.2, "after_verdict": "WARN", "after_max": 10.46, "improved": true, "ok": true, "new_id": 58019, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56192_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:38.644233Z", "root_id": 54507, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.13, "after_verdict": "FAIL", "after_max": 17.96, "improved": true, "ok": true, "new_id": 58020, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54507_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:38.796388Z", "root_id": 54507, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.13, "after_verdict": "WARN", "after_max": 11.65, "improved": true, "ok": true, "new_id": 58021, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54507_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:38.979381Z", "root_id": 54685, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.01, "after_verdict": "FAIL", "after_max": 21.01, "improved": false, "ok": true, "new_id": 58022, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54685_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:39.132613Z", "root_id": 54685, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 21.01, "after_verdict": "WARN", "after_max": 9.13, "improved": true, "ok": true, "new_id": 58023, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54685_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:39.348279Z", "root_id": 56741, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.94, "after_verdict": "FAIL", "after_max": 20.69, "improved": true, "ok": true, "new_id": 58024, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56741_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "FAIL"}}
+{"ts": "2026-06-11T20:37:39.525062Z", "root_id": 56741, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.94, "after_verdict": "FAIL", "after_max": 12.35, "improved": true, "ok": true, "new_id": 58025, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56741_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:40.377462Z", "root_id": 56861, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.87, "after_verdict": "FAIL", "after_max": 20.83, "improved": true, "ok": true, "new_id": 58026, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56861_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:41.145831Z", "root_id": 56861, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.87, "after_verdict": "WARN", "after_max": 10.83, "improved": true, "ok": true, "new_id": 58027, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56861_v2.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "PASS", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:41.872529Z", "root_id": 57196, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.87, "after_verdict": "FAIL", "after_max": 20.86, "improved": true, "ok": true, "new_id": 58028, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57196_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:42.560564Z", "root_id": 57196, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.87, "after_verdict": "FAIL", "after_max": 12.52, "improved": true, "ok": true, "new_id": 58029, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57196_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:42.760456Z", "root_id": 54192, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.86, "after_verdict": "FAIL", "after_max": 20.11, "improved": true, "ok": true, "new_id": 58030, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54192_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "PASS", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:42.916981Z", "root_id": 54192, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.86, "after_verdict": "FAIL", "after_max": 13.57, "improved": true, "ok": true, "new_id": 58031, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54192_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:43.640469Z", "root_id": 57270, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.73, "after_verdict": "FAIL", "after_max": 20.73, "improved": false, "ok": true, "new_id": 58032, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57270_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:44.336431Z", "root_id": 57270, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.73, "after_verdict": "WARN", "after_max": 9.54, "improved": true, "ok": true, "new_id": 58033, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/57270_v2.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:44.489195Z", "root_id": 56496, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.67, "after_verdict": "FAIL", "after_max": 20.08, "improved": true, "ok": true, "new_id": 58034, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56496_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:44.607373Z", "root_id": 56496, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.67, "after_verdict": "WARN", "after_max": 7.46, "improved": true, "ok": true, "new_id": 58035, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/56496_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:44.780204Z", "root_id": 54123, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.59, "after_verdict": "FAIL", "after_max": 20.21, "improved": true, "ok": true, "new_id": 58036, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54123_v1.png", "edge_verdict": "WARN", "edge_seamless": false, "edge_axes": {"h": "WARN", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:44.917232Z", "root_id": 54123, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.59, "after_verdict": "WARN", "after_max": 11.73, "improved": true, "ok": true, "new_id": 58037, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54123_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
+{"ts": "2026-06-11T20:37:45.110394Z", "root_id": 54843, "variant": "v1", "generator": "seam-fix-v1", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.56, "after_verdict": "FAIL", "after_max": 20.32, "improved": true, "ok": true, "new_id": 58038, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54843_v1.png", "edge_verdict": "FAIL", "edge_seamless": false, "edge_axes": {"h": "FAIL", "v": "WARN"}}
+{"ts": "2026-06-11T20:37:45.273997Z", "root_id": 54843, "variant": "v2", "generator": "seam-fix-v2", "category": "drunk-animals", "before_verdict": "FAIL", "before_max": 20.56, "after_verdict": "WARN", "after_max": 7.13, "improved": true, "ok": true, "new_id": 58039, "out": "/Users/stevestudio2/Projects/wallco-ai/data/seam-fix/54843_v2.png", "edge_verdict": "PASS", "edge_seamless": true, "edge_axes": {"h": "PASS", "v": "PASS"}}
diff --git a/scripts/seam-fix-variants.py b/scripts/seam-fix-variants.py
index b1f0fa0..db437ff 100644
--- a/scripts/seam-fix-variants.py
+++ b/scripts/seam-fix-variants.py
@@ -42,6 +42,7 @@ sys.path.insert(0, os.path.join(ROOT, 'scripts'))
from importlib import import_module
seam = import_module('seam-defect-boxes')
fixseam = import_module('fix-seam')
+edgeverify = import_module('verify-edge-seamless') # true-toroidal edge gate
def _database_url():
@@ -193,6 +194,16 @@ def process(root, dry_run=False):
entry['after_verdict'] = scan_after['verdict']
entry['after_max'] = scan_after['scores']['overall_max']
entry['improved'] = scan_after['scores']['overall_max'] < before['scores']['overall_max']
+ # True-toroidal edge-continuity verdict on the LITERAL wrap boundary —
+ # this, not after_verdict (strip-mean), is the publish gate. A candidate
+ # whose edge_verdict != PASS must not be selectable/publishable.
+ ev = edgeverify.verify_path(Path(outp))
+ entry['edge_verdict'] = ev.get('verdict')
+ entry['edge_seamless'] = bool(ev.get('ok'))
+ entry['edge_axes'] = {
+ 'h': ev.get('axes', {}).get('horizontal', {}).get('verdict'),
+ 'v': ev.get('axes', {}).get('vertical', {}).get('verdict'),
+ }
if dry_run:
entry.update({'ok': True, 'dry_run': True, 'out': outp})
results.append(entry); continue
diff --git a/scripts/verify-edge-seamless.py b/scripts/verify-edge-seamless.py
new file mode 100644
index 0000000..a3cc0d6
--- /dev/null
+++ b/scripts/verify-edge-seamless.py
@@ -0,0 +1,228 @@
+#!/usr/bin/env python3
+"""
+verify-edge-seamless.py — DETERMINISTIC true-toroidal edge-continuity verifier.
+
+WHY THIS EXISTS (vs. the existing seam scanners)
+ scripts/seam-defect-boxes.py and scripts/seamless-check.py both measure a
+ STRIP (first/last STRIP_PX=8 rows/cols, mean ΔE). That answers "is the
+ boundary REGION roughly continuous" — it does NOT answer Steve's exact
+ directive: "the RIGHT edge must continue into the LEFT edge, and the BOTTOM
+ edge into the TOP edge." A tile can pass an 8-px strip-mean while the literal
+ boundary line column[0] vs column[W-1] is visibly broken (the strip mean
+ washes out a 1-px hard seam), and — critically — the edge-heal in
+ heal-seam-region.py / seam-fix-variants.py MIRROR-blends the two edges
+ (arr[0] := mean(arr[0], arr[H-1])) instead of making them EQUAL, so it can
+ shrink the strip-mean while leaving a real wrap discontinuity.
+
+WHAT THIS MEASURES (three independent signals, ALL on the literal boundary)
+ 1. Wrap-seam line diff:
+ LR = mean |column[0] - column[W-1]| (horizontal repeat boundary)
+ TB = mean | row[0] - row[H-1] | (vertical repeat boundary)
+ This is the EXACT pixels that touch when the tile repeats. Channel-mean
+ in 0–255 space (same units as seamless-check tolerance).
+ 2. Half-drop variant of the same line diff (np.roll by half) — a valid
+ half-drop repeat fails (1) but passes this; either axis passing = OK.
+ 3. 2x2 tiled-render cross-seam scan: actually tile the image 2x2 and scan a
+ BAND around the two internal cross-seams (the vertical seam at x=W and the
+ horizontal seam at y=H of the 2W x 2H canvas) for per-line ΔE. This is the
+ ground truth a human sees when the wallpaper is hung — it catches breaks
+ the single-tile line diff can miss (e.g. structure sliced at the seam).
+
+VERDICT (per axis: horizontal, vertical) + overall:
+ PASS line diff <= PASS_TOL (default 6) AND tiled cross-seam clean
+ WARN line diff <= WARN_TOL (default 12) on the straight-or-halfdrop best
+ FAIL otherwise → MUST NOT be selectable in the curator or publishable
+
+ISOLATED_MOTIF guard: if every edge is near-uniform (centered spot on solid
+ground) the line diff trivially passes but it is not a true repeat — flagged
+FAIL on both axes (mirrors seamless-check.py behavior).
+
+Usage:
+ python3 scripts/verify-edge-seamless.py --path /abs/tile.png
+ python3 scripts/verify-edge-seamless.py --id 57870
+ python3 scripts/verify-edge-seamless.py --path a.png --pass-tol 6 --warn-tol 12
+
+Output: JSON to stdout. Exit 0 iff overall verdict is PASS.
+ { ok, verdict, axes:{horizontal:{verdict,line_diff,line_diff_halfdrop,
+ tiled_seam_max}, vertical:{...}}, isolated_motif, path|id }
+"""
+import argparse, json, os, subprocess, sys
+from pathlib import Path
+from urllib.parse import urlparse
+
+import numpy as np
+from PIL import Image
+
+PASS_TOL = 6.0
+WARN_TOL = 12.0
+# Near-uniform edge variance threshold (matches seamless-check.py).
+ISOLATED_MOTIF_VAR_THRESHOLD = 25.0
+# Band (px each side) scanned around the 2x2 internal cross-seam.
+TILED_BAND_PX = 6
+ROOT = os.path.expanduser('~/Projects/wallco-ai')
+
+
+def _line_diff(a, b):
+ """Mean per-channel abs diff between two equal-length edge vectors (0-255)."""
+ return float(np.mean(np.abs(a.astype(np.float32) - b.astype(np.float32))))
+
+
+def _tiled_cross_seam_max(arr):
+ """Tile the image 2x2 and scan a band around the two internal cross-seams.
+ Returns (h_axis_max, v_axis_max): the worst per-line ΔE found across the
+ horizontal cross-seam (between vertically-stacked copies) and the vertical
+ cross-seam (between horizontally-adjacent copies).
+
+ Because the canvas is the literal 2x2 tiling, the internal seam at y=H is
+ exactly row[H-1] of the top copy meeting row[0] of the bottom copy — i.e.
+ the real wrap. We scan a band so a near-seam slice (not just the 1px line)
+ is caught."""
+ H, W = arr.shape[:2]
+ f = arr.astype(np.float32)
+ # Vertical cross-seam (x = W): columns [W-band : W+band] across the 2x-wide
+ # canvas == columns [W-band:W] of one copy beside columns [0:band] of the
+ # next. The discontinuity is |col[W-1-k] - col[k]| style; sample the band.
+ v_diffs = []
+ for k in range(1, TILED_BAND_PX + 1):
+ # left side approaches the seam from inside the tile, right side wraps
+ v_diffs.append(_line_diff(f[:, W - k, :], f[:, (W - k) % W, :])) # self (0) guard
+ # The meaningful vertical seam line: last column meets first column.
+ v_seam = _line_diff(f[:, W - 1, :], f[:, 0, :])
+ # Horizontal cross-seam (y = H): last row meets first row.
+ h_seam = _line_diff(f[H - 1, :, :], f[0, :, :])
+ # Band-widened: also check a few near-seam offsets continue smoothly when
+ # wrapped (catches a hard step 1-2px in from the boundary).
+ v_band = max([v_seam] + [_line_diff(f[:, W - 1 - k, :], f[:, (0 + k), :])
+ for k in range(0, TILED_BAND_PX)])
+ h_band = max([h_seam] + [_line_diff(f[H - 1 - k, :, :], f[(0 + k), :, :])
+ for k in range(0, TILED_BAND_PX)])
+ return h_band, v_band
+
+
+def verify(arr, pass_tol=PASS_TOL, warn_tol=WARN_TOL):
+ if arr.ndim != 3 or arr.shape[2] < 3:
+ raise ValueError(f'unexpected shape {arr.shape}')
+ arr = arr[:, :, :3]
+ H, W = arr.shape[:2]
+ f = arr.astype(np.float32)
+
+ col0, colW = f[:, 0, :], f[:, W - 1, :]
+ row0, rowH = f[0, :, :], f[H - 1, :, :]
+
+ # 1. Straight literal-boundary line diff.
+ lr = _line_diff(colW, col0) # right edge -> left edge
+ tb = _line_diff(rowH, row0) # bottom edge -> top edge
+
+ # 2. Half-drop variant.
+ lr_hd = _line_diff(colW, np.roll(col0, H // 2, axis=0))
+ tb_hd = _line_diff(rowH, np.roll(row0, W // 2, axis=0))
+
+ # ISOLATED_MOTIF guard.
+ def var(strip):
+ return float(np.var(strip, axis=0).sum())
+ isolated = (var(row0) < ISOLATED_MOTIF_VAR_THRESHOLD and
+ var(rowH) < ISOLATED_MOTIF_VAR_THRESHOLD and
+ var(col0) < ISOLATED_MOTIF_VAR_THRESHOLD and
+ var(colW) < ISOLATED_MOTIF_VAR_THRESHOLD)
+
+ # 3. 2x2 tiled cross-seam.
+ h_seam_max, v_seam_max = _tiled_cross_seam_max(arr)
+
+ def axis_verdict(straight, halfdrop, tiled):
+ best = min(straight, halfdrop)
+ if isolated:
+ return 'FAIL', best
+ if best <= pass_tol and tiled <= warn_tol:
+ return 'PASS', best
+ if best <= warn_tol:
+ return 'WARN', best
+ return 'FAIL', best
+
+ h_verdict, h_best = axis_verdict(lr, lr_hd, v_seam_max) # horizontal repeat = L/R edges = vertical cross-seam
+ v_verdict, v_best = axis_verdict(tb, tb_hd, h_seam_max) # vertical repeat = T/B edges = horizontal cross-seam
+
+ order = {'PASS': 0, 'WARN': 1, 'FAIL': 2}
+ overall = max([h_verdict, v_verdict], key=lambda x: order[x])
+
+ return {
+ 'ok': overall == 'PASS',
+ 'verdict': overall,
+ 'isolated_motif': bool(isolated),
+ 'pass_tol': pass_tol, 'warn_tol': warn_tol,
+ 'axes': {
+ 'horizontal': {
+ 'verdict': h_verdict,
+ 'line_diff': round(lr, 2),
+ 'line_diff_halfdrop': round(lr_hd, 2),
+ 'best': round(h_best, 2),
+ 'tiled_cross_seam_max': round(v_seam_max, 2),
+ 'edges': 'column[0] vs column[W-1]',
+ },
+ 'vertical': {
+ 'verdict': v_verdict,
+ 'line_diff': round(tb, 2),
+ 'line_diff_halfdrop': round(tb_hd, 2),
+ 'best': round(v_best, 2),
+ 'tiled_cross_seam_max': round(h_seam_max, 2),
+ 'edges': 'row[0] vs row[H-1]',
+ },
+ },
+ 'width': int(W), 'height': int(H),
+ }
+
+
+def verify_path(p: Path, pass_tol=PASS_TOL, warn_tol=WARN_TOL):
+ if not p.exists():
+ return {'ok': False, 'error': f'file not found: {p}'}
+ arr = np.asarray(Image.open(p).convert('RGB'))
+ out = verify(arr, pass_tol, warn_tol)
+ out['path'] = str(p)
+ return out
+
+
+def _pg_database_url():
+ if os.environ.get('DATABASE_URL'):
+ return os.environ['DATABASE_URL']
+ envf = os.path.join(ROOT, '.env')
+ if os.path.exists(envf):
+ for line in open(envf):
+ if line.startswith('DATABASE_URL='):
+ return line.split('=', 1)[1].strip().strip('"')
+ return None
+
+
+def verify_id(design_id: int, pass_tol=PASS_TOL, warn_tol=WARN_TOL):
+ db = _pg_database_url()
+ base = ['psql', db] if db else ['psql', 'dw_unified']
+ sql = f"SELECT local_path FROM all_designs WHERE id={int(design_id)};"
+ r = subprocess.run(base + ['-At', '-q', '-c', sql],
+ capture_output=True, text=True, timeout=15)
+ if r.returncode != 0:
+ return {'ok': False, 'error': f'psql failed: {r.stderr.strip()}', 'id': design_id}
+ p = (r.stdout or '').strip()
+ if not p:
+ return {'ok': False, 'error': f'no design {design_id}', 'id': design_id}
+ out = verify_path(Path(p), pass_tol, warn_tol)
+ out['id'] = design_id
+ return out
+
+
+def main():
+ ap = argparse.ArgumentParser()
+ ap.add_argument('--path')
+ ap.add_argument('--id', type=int)
+ ap.add_argument('--pass-tol', type=float, default=PASS_TOL)
+ ap.add_argument('--warn-tol', type=float, default=WARN_TOL)
+ args = ap.parse_args()
+ if args.path:
+ out = verify_path(Path(args.path), args.pass_tol, args.warn_tol)
+ elif args.id:
+ out = verify_id(args.id, args.pass_tol, args.warn_tol)
+ else:
+ ap.error('--path or --id required')
+ print(json.dumps(out))
+ sys.exit(0 if out.get('ok') else 1)
+
+
+if __name__ == '__main__':
+ main()
diff --git a/server.js b/server.js
index c28b919..f5ebfe4 100644
--- a/server.js
+++ b/server.js
@@ -2165,6 +2165,46 @@ function runSeamScan(id) {
{ encoding: 'utf8', timeout: 30000, maxBuffer: 8 * 1024 * 1024 });
return JSON.parse(out);
}
+// ── True-toroidal edge-continuity gate ────────────────────────────────────
+// scripts/verify-edge-seamless.py measures the LITERAL wrap boundary
+// (column[0] vs column[W-1], row[0] vs row[H-1]) plus a 2×2 tiled-render
+// cross-seam scan — i.e. Steve's exact directive that "the RIGHT edge must
+// continue into the LEFT edge, and the BOTTOM edge into the TOP edge." A
+// candidate whose verdict is FAIL on either axis MUST NOT be selectable in
+// the seam-fix curator or publishable. Returns { ok, verdict, axes }.
+// ok=true → verdict PASS (truly seamless on both axes)
+// ok=false → WARN/FAIL/error; .verdict carries which.
+// If the verifier script is absent (prod rsync-excludes scripts/) the gate
+// returns { skipped:true } so it never fails OPEN silently in code that
+// treats absence as pass — callers that PUBLISH must treat skipped as a
+// reason to refuse on a host without the verifier rather than wave it through.
+function runEdgeSeamlessGate({ id, path: imgPath } = {}) {
+ const scriptPath = path.join(__dirname, 'scripts', 'verify-edge-seamless.py');
+ if (!fs.existsSync(scriptPath)) {
+ return { ok: false, skipped: true, verdict: 'SKIPPED',
+ reason: 'verify-edge-seamless.py not present on this host' };
+ }
+ const args = imgPath ? [scriptPath, '--path', imgPath]
+ : [scriptPath, '--id', String(id)];
+ try {
+ const out = _execFileSyncSeam('python3', args,
+ { encoding: 'utf8', timeout: 30000, maxBuffer: 4 * 1024 * 1024 });
+ const r = JSON.parse(out);
+ return { ok: r.verdict === 'PASS', verdict: r.verdict, axes: r.axes,
+ isolated_motif: r.isolated_motif, error: r.error || null };
+ } catch (e) {
+ // execFileSync throws on non-zero exit (the script exits 1 on non-PASS).
+ // Parse stdout if present so a WARN/FAIL still yields a structured verdict.
+ try {
+ const r = JSON.parse((e.stdout || '').toString());
+ return { ok: r.verdict === 'PASS', verdict: r.verdict, axes: r.axes,
+ isolated_motif: r.isolated_motif, error: r.error || null };
+ } catch {
+ return { ok: false, verdict: 'ERROR', reason: e.message };
+ }
+ }
+}
+
app.get('/api/seam-debug/:id', (req, res) => {
const id = parseInt(req.params.id, 10);
if (!id) return res.status(400).json({ error: 'bad id' });
@@ -21420,6 +21460,11 @@ app.get('/api/seam-fix-curator', (req, res) => {
byRoot.get(r.root_id).variantMap.set(r.variant, {
variant: r.variant, new_id: r.new_id, generator: r.generator,
after_max: r.after_max, after_verdict: r.after_verdict, improved: r.improved,
+ // True-toroidal edge gate (literal wrap boundary). edge_seamless=false
+ // means the UI must render this candidate as NON-SELECTABLE — the pick
+ // route will refuse it anyway, but surface it up front.
+ edge_verdict: r.edge_verdict || null, edge_seamless: r.edge_seamless === true,
+ edge_axes: r.edge_axes || null,
});
if (r.ts) {
const cur = byRoot.get(r.root_id).created_at;
@@ -21483,6 +21528,21 @@ app.post('/api/seam-fix-curator/pick', requireAdmin, express.json({ limit: '4kb'
if (!ok || !ok.trim()) {
return res.status(400).json({ ok: false, error: 'picked_id is not a seam-fix child of this root' });
}
+ // HARD GATE — a picked seam-fix candidate must be TRULY seamless on BOTH
+ // wrap axes (column[0]==column[W-1] AND row[0]==row[H-1]) before it can be
+ // published. This blocks the v1 shift-feather candidates that only smooth
+ // the interior seam but leave the literal edge-wrap broken. Fail CLOSED:
+ // a non-PASS verdict — including a host where the verifier is absent
+ // (skipped) — refuses the publish.
+ const lp = (psqlQuery(`SELECT local_path FROM all_designs WHERE id=${childId}`) || '').trim();
+ const gate = runEdgeSeamlessGate(lp ? { path: lp } : { id: childId });
+ if (!gate.ok) {
+ return res.status(409).json({
+ ok: false,
+ error: 'edge-seamless gate failed — candidate is not truly seamless on both wrap axes',
+ edge_gate: gate,
+ });
+ }
}
psqlExecLocal(`
INSERT INTO seam_fix_choices (root_id, picked_variant, picked_id, decided_at)
← b5f9566 TODO: log seam-fix scale-up (80 worst-FAIL roots, 996 flagge
·
back to Wallco Ai
·
Force true-toroidal edge-wrap on both axes for the 6 WARN ro b9ad50c →