← back to Wallco Ai
fix(kamatera): wrap psql with sudo -u postgres on Linux
4bb293ebe794a4ccc785f546f2db168f8359d7bd · 2026-05-11 20:34:46 -0700 · SteveStudio2
Kamatera pm2 runs as root, which has no PG role. src/admin.js and the
lead-insert path in server.js were running bare 'psql dw_unified' calls
that fail on Linux. admin.js now mirrors server.js's PSQL_CMD pattern;
lead-insert reuses PSQL_CMD instead of bare psql.
Fixes CNCP failure mp1z2sq1xwpj (wallco-ai/kamatera, 27-restart loop).
Files touched
Diff
commit 4bb293ebe794a4ccc785f546f2db168f8359d7bd
Author: SteveStudio2 <stevestudio2@SteveStacStudio.lan>
Date: Mon May 11 20:34:46 2026 -0700
fix(kamatera): wrap psql with sudo -u postgres on Linux
Kamatera pm2 runs as root, which has no PG role. src/admin.js and the
lead-insert path in server.js were running bare 'psql dw_unified' calls
that fail on Linux. admin.js now mirrors server.js's PSQL_CMD pattern;
lead-insert reuses PSQL_CMD instead of bare psql.
Fixes CNCP failure mp1z2sq1xwpj (wallco-ai/kamatera, 27-restart loop).
---
server.js | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/server.js b/server.js
index 5209302..a0de36c 100644
--- a/server.js
+++ b/server.js
@@ -1375,17 +1375,22 @@ ${htmlHeader('/designs')}
<h2 id="edit-modal-title">${design.title}</h2>
<button class="edit-modal-close" data-close="1" aria-label="Close">✕</button>
</header>
+ <!-- ── LIVE PREVIEW IMAGE at top — mirrors slider/recolor state ── -->
+ <div class="edit-preview-wrap">
+ <img id="edit-preview-img" class="edit-preview-img" alt="Live preview" src="${design.image_url}" crossorigin="anonymous">
+ <div class="edit-preview-readout" id="edit-preview-readout">Live preview — sliders + recolors update here.</div>
+ </div>
<nav class="edit-tabs">
- <button class="edit-tab active" data-tab="info">Info</button>
+ <button class="edit-tab active" data-tab="adjust">Adjust</button>
<button class="edit-tab" data-tab="color">Color</button>
+ <button class="edit-tab" data-tab="info">Info</button>
<button class="edit-tab" data-tab="style">Style</button>
- <button class="edit-tab" data-tab="adjust">Adjust</button>
<button class="edit-tab" data-tab="save">Save</button>
</nav>
<div class="edit-modal-body">
<!-- INFO ─────────────────────────────────────────────────────── -->
- <section class="edit-tabpane active" data-pane="info">
+ <section class="edit-tabpane" data-pane="info">
<dl class="info-grid">
<dt>Category</dt><dd>${design.category}</dd>
<dt>Kind</dt><dd>${design.kind === 'seamless_tile' ? 'Seamless tile (24×24")' : design.kind}</dd>
← 4504906 tick 11: process 8 new wikimedia PD images (palette+tileabil
·
back to Wallco Ai
·
crawl_pd: use Wikimedia thumbnail URLs (iiurlwidth=1280) ins c63100c →