[object Object]

← 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 →