[object Object]

← back to George Gmail

fleet-autoresponder UI: move port 9766→9768 (9766 reserved for agent-architect mindmap viewer)

9c7a47077b4fe43d9cca9f5ab771eaa8607bab7b · 2026-05-19 10:27:16 -0700 · Steve Abrams

Files touched

Diff

commit 9c7a47077b4fe43d9cca9f5ab771eaa8607bab7b
Author: Steve Abrams <steve@designerwallcoverings.com>
Date:   Tue May 19 10:27:16 2026 -0700

    fleet-autoresponder UI: move port 9766→9768 (9766 reserved for agent-architect mindmap viewer)
---
 fleet-autoresponder-ui.js     |  4 ++--
 fleet-autoresponder.config.js | 26 ++++++++++++++++----------
 2 files changed, 18 insertions(+), 12 deletions(-)

diff --git a/fleet-autoresponder-ui.js b/fleet-autoresponder-ui.js
index 26c2a47..b96b702 100644
--- a/fleet-autoresponder-ui.js
+++ b/fleet-autoresponder-ui.js
@@ -2,7 +2,7 @@
 /**
  * Fleet Auto-Responder — admin UI dashboard.
  *
- * A small standalone Express viewer (127.0.0.1:9766) for the fleet
+ * A small standalone Express viewer (127.0.0.1:9768) for the fleet
  * auto-responder. Deliberately NOT part of the George prod server — it
  * reads the responder's own data files (ledger + run-log + state) so it
  * needs no George deploy and no Gmail OAuth.
@@ -30,7 +30,7 @@ const responder = require('./fleet-autoresponder');
 const { RUNLOG_PATH, STATE_PATH, LEDGER_PATH, FLEET,
         buildHtmlBody, buildPlainBody, loadState, saveState } = responder;
 
-const PORT = process.env.FLEET_UI_PORT || 9766;
+const PORT = process.env.FLEET_UI_PORT || 9768;
 const app = express();
 app.use(express.json());
 
diff --git a/fleet-autoresponder.config.js b/fleet-autoresponder.config.js
index 3c659f0..7b9eb1e 100644
--- a/fleet-autoresponder.config.js
+++ b/fleet-autoresponder.config.js
@@ -1,11 +1,14 @@
 /**
- * pm2 ecosystem config for the fleet auto-responder schedule.
+ * pm2 ecosystem config for the fleet auto-responder.
  *
- *   fleet-autoresponder     — the responder itself. Runs `node fleet-autoresponder.js`
- *                             once, exits, then pm2 restarts it on a 3-minute cron.
- *                             cron-restart + autorestart:false = a clean every-3-min
- *                             scheduled run, not a long-lived daemon.
- *   fleet-autoresponder-ui  — the admin dashboard (long-lived, 127.0.0.1:9766).
+ *   fleet-autoresponder     — runs in --daemon mode: a long-lived process that
+ *                             self-schedules main() every 3 minutes
+ *                             (FLEET_INTERVAL_MS). pm2 keeps it `online` and
+ *                             restarts it on crash. A long-lived loop is used
+ *                             rather than pm2 cron_restart because pm2 cannot
+ *                             cron-restart a short-lived process that has
+ *                             already exited.
+ *   fleet-autoresponder-ui  — the admin dashboard (long-lived, 127.0.0.1:9768).
  *
  * Start:  pm2 start fleet-autoresponder.config.js && pm2 save
  */
@@ -14,13 +17,13 @@ module.exports = {
     {
       name: 'fleet-autoresponder',
       script: 'fleet-autoresponder.js',
+      args: '--daemon',
       cwd: __dirname,
-      autorestart: false,        // do not relaunch on exit…
-      cron_restart: '*/3 * * * *', // …only on the 3-minute cron tick
+      autorestart: true,         // pm2 relaunches on crash
       time: true,
       env: {
-        // Tight scan window — the responder only ever needs recent mail.
-        FLEET_SCAN_WINDOW: '2d',
+        FLEET_SCAN_WINDOW: '2d',       // only ever scan recent mail
+        FLEET_INTERVAL_MS: '180000',   // self-schedule every 3 minutes
       },
     },
     {
@@ -29,6 +32,9 @@ module.exports = {
       cwd: __dirname,
       autorestart: true,
       time: true,
+      env: {
+        FLEET_UI_PORT: '9768',
+      },
     },
   ],
 };

← d6e30ce Fleet auto-responder: pm2 ecosystem config — 3-min cron sche  ·  back to George Gmail  ·  Fleet auto-responder: --daemon self-scheduling mode (pm2-man e9fdf0f →