← back to Gated Morning Review
viewer: honest Run-button note — queues to _approved + loop executes (GUI spawn from server unreliable)
bc594658adff8e4c242e324c8dd6dc39d3ba72ec · 2026-08-20 07:58:13 -0700 · steve
Files touched
Diff
commit bc594658adff8e4c242e324c8dd6dc39d3ba72ec
Author: steve <steve@designerwallcoverings.com>
Date: Thu Aug 20 07:58:13 2026 -0700
viewer: honest Run-button note — queues to _approved + loop executes (GUI spawn from server unreliable)
---
server.mjs | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/server.mjs b/server.mjs
index e8a446e..78343b8 100644
--- a/server.mjs
+++ b/server.mjs
@@ -45,8 +45,11 @@ function runItem(item) {
if (fs.existsSync(src)) fs.renameSync(src, path.join(QDIR, '_approved', item.file));
}
return new Promise((resolve) => {
+ // Best-effort iTerm2 spawn (unreliable from a background server). Either way the item is
+ // now in _approved/ + logged, and the yoloforever loop executes _approved items on its
+ // heartbeat via a gated agent — so the run happens reliably even if no window pops.
execFile('bash', [FANOUT, `Approved-run ${header}`, '--cwd', os.homedir(), `${header} :: ${prompt}`],
- { timeout: 20000 }, (err) => resolve({ ok: true, spawned: !err, note: err ? 'queued (iTerm spawn unavailable from server; the loop will run it)' : 'iTerm2 window opened' }));
+ { timeout: 20000 }, () => resolve({ ok: true, note: '✅ Approved — running shortly (the loop picks it up; a window may also open)' }));
});
}
← 71f9300 viewer v2: Approvals+Tasks tabs, plain-English WHY column, k
·
back to Gated Morning Review
·
viewer v3: add 'What I'd do' suggested-action column (12yr p 4708dcb →