← 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
M fleet-autoresponder-ui.jsM fleet-autoresponder.config.js
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 →