Wallco Live Viewer
repo: ~/Projects/wallco-live-viewer · 8 commits · 0 in last 24h, 0 in last 7d ·
Skills used
- /unpublish2
- /remove2
- /logs1
- /gate-rejections1
- /recent1
- /grape1
- /bird1
- /butterfly1
- /moth1
- /room1
- /regen1
- /act1
- /staged1
- /removed1
- /generated1
Creative ideas + design notes
Commits with substantial prose (≥120 chars) — the rationale behind each move.
8312b95 · 2026-06-09 · viewer: surface the real gate-rejection reason on orphan cards
Reads data/logs/gate-rejections.jsonl (mtime-cached), attaches {gate,reason} to
any orphan (no DB row) in /api/recent, and the badge + label now show e.g.
'✗ seamless-tile gate · no DB row' with the reason in the tooltip, instead of
the inferred 'orphaned at gen time'. Adds a client-side esc() (none existed).
Pre-2026-06-09 orphans with no logged reason keep the old label.
97cff8e · 2026-06-09 · viewer: documented settlement-override publish path
When the PG settlement_publish_check trigger RAISEs on a publish, the card's
✅ Publish now surfaces the violation text and offers the trigger's own
sanctioned escape: prompt for a mandatory reason (min 5 chars), then
BEGIN; SET LOCAL settlement.allow_override='true'; UPDATE …; COMMIT; with the
reason appended to the design's notes as a permanent audit entry (the trigger
adds its own 'allow_override=true at <ts>' note alongside). One design per
override — no bulk override, deliberate friction. Bulk publish falls back to
per-id on a settlement RAISE so clean designs still land and blockers are
named (#id list) for card-level review.
E2E verified on #57684 (override→published+note→reverted clean). Trigger
source read: raises only on prompt-keyword PartA(leaves+directional+open-
space+multicolor)+PartB(banana/grape/bird/butterfly/moth) without acceptable
cue — independent of the settlement_verdict column.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
7a2ef4e · 2026-06-09 · live viewer: full per-SKU action suite (publish/unpublish/remove/room/regen/TIF) + multi-select bulk bar
Was a read-only watch grid. Now every card carries the whole wallco-ai admin
action suite, proxied server-side to 127.0.0.1:9905 (loopback = admin per
admin-gate). Strict path whitelist on /act so the proxy can't be used as an
open relay. File→DB-id resolver (PNG suffix is the SDXL seed, NOT the design
id — spoon_all_designs.local_path maps file→id, one batched psql per tick)
with live published/staged/removed badges. Checkbox multi-select + bulk
publish/unpublish/remove. Lightbox zoom. Bind tightened *:9788 → 127.0.0.1
since the page now carries admin actions. Settlement gate stays enforced
server-side (PG publish_check trigger).
Verified: publish→unpublish roundtrip on #57686 flips is_published t/f;
166/240 cards resolve to DB rows, orphans show 'awaiting DB row' w/o actions.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
File tree
2 files tracked. Click any to browse the source at HEAD.
rendered in 0ms