← back to Wallco Ai
TODO: log replace-colors-3-methods work (AI-recolor gate fix, preset endpoint, lineage fix, UI unify)
a0bab9845d969a2fa14948ffb2b3fbefe526e5b6 · 2026-06-12 07:48:40 -0700 · Steve Abrams
Files touched
Diff
commit a0bab9845d969a2fa14948ffb2b3fbefe526e5b6
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Fri Jun 12 07:48:40 2026 -0700
TODO: log replace-colors-3-methods work (AI-recolor gate fix, preset endpoint, lineage fix, UI unify)
---
TODO.md | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/TODO.md b/TODO.md
index 6b3c436..201aa3a 100644
--- a/TODO.md
+++ b/TODO.md
@@ -133,3 +133,12 @@ up unchecked rows automatically.
- [x] PASS rate computed from data/seam-fix-queue.jsonl records in each wave's time window (edge_seamless==true || edge_verdict=="PASS" / distinct roots attempted). CNCP heartbeat per wave (best-effort; CNCP was down at launch — ignored).
- [x] Manifest = 3 roots (43199, 54385, 55272) = 1 wave at WAVE_SIZE=20. Generator = scripts/controlnet-anchored-reroll-2.py. Logfile /tmp/seam-overnight.log. PID in /tmp/seam-overnight.pid. Reparented to launchd (PID 1) — survives the launching session.
- [ ] **STEVE (morning):** read /tmp/seam-overnight.log — total waves, total PASS candidates added, why it stopped. Then curate the new is_published=FALSE candidates in the seam-fix curator (http://127.0.0.1:9905/seam-fix-curator.html). Kill switch any time: touch /tmp/seam-overnight.STOP.
+
+## REPLACE COLORS → NEW SKU, 3 METHODS ON ONE SURFACE (2026-06-12) — local only, nothing deployed
+- [x] FIXED AI-recolor publish-gate bug: POST /api/design/:id/recolor INSERT was is_published=TRUE (auto-publishing) → now FALSE + carries parent_design_id (server.js ~25439, ~25463). Was an orphan-and-publish double bug.
+- [x] METHOD 3 (preset colorways) shipped: GET /api/colorways/presets + POST /api/colorways/preset (src/colorways.js). Remaps a design's 2 dominant tones → a COLORWAY_PAIRS preset, builds an ink_map, reuses promoteToSpoonRow → ONE is_published=FALSE child SKU. Preset list sourced from scripts/colorway-variants.py --list-presets (single source); tones via --detect.
+- [x] LINEAGE FIX: promoteToSpoonRow PG SELECT lacked LIMIT 1 — spoon_all_designs is INSERT-only (dup id rows) so row_to_json emitted 2 lines → JSON.parse threw → srcInPg=false → child lost parent_design_id. Added LIMIT 1; lineage now populates (verified children of 12 → parent_design_id=12).
+- [x] UI: all 3 methods on the design-edit recolor-wheel admin block — swatch dot-wheel (Color tab, method 1), hex/AI recolor (method 2), new preset chips (method 3). One surface.
+- [x] PROVED locally: M1 swatch save → child 58125; M3 preset → child 58124 (both design 12, parent_design_id=12, is_published=f). M3 design 11 → 58122, M1 design 11 → 58123 (pre-lineage-fix, parent NULL — local test artifacts). All 4 children is_published=f, none on published grid.
+- [ ] **STEVE:** METHOD 2 (AI recolor) gate fix verified by code only — could NOT exercise end-to-end because Gemini is over its monthly spend cap (HTTP 429 from /api/design/:id/recolor). Re-test the recolor button once the cap is lifted to confirm the live child lands FALSE.
+- [ ] **STEVE (gated):** none of this is deployed. When ready, ./deploy-kamatera.sh ships server.js + src/colorways.js + scripts/colorway-variants.py. Publishing any preset/recolor child to live = explicit admin click (colorways publish) — still Steve-gated.
← 2d7a39e design-edit: surface preset colorways (method 3) on the reco
·
back to Wallco Ai
·
Add variants-9roots.py: 10 composition/density variants per 660e786 →