@yemi33/minions 0.1.2007 → 0.1.2008

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/engine/cli.js +14 -2
  2. package/package.json +1 -1
package/engine/cli.js CHANGED
@@ -448,6 +448,15 @@ const commands = {
448
448
  codeVersion,
449
449
  codeCommit
450
450
  }));
451
+ // W-mpg3bcp800075d4f — Prime control.heartbeat the moment this process
452
+ // owns control.json, BEFORE the dispatch-recovery / startupReconcile*
453
+ // chain. Those reconciles are synchronous and on a slow Windows host with
454
+ // many projects/worktrees can run for 15-40s; without an early prime the
455
+ // dashboard's 30s restart-grace window (dashboard/js/render-dispatch.js
456
+ // → renderEngineAlert) expires against the *previous* engine's heartbeat
457
+ // and the 'Engine heartbeat is stale' banner snaps back even though the
458
+ // new engine is healthy. The 15s setInterval below keeps it fresh.
459
+ writeHeartbeatNow();
451
460
  // Keep .minions-version in sync so `minions version` stays accurate after git pulls
452
461
  if (codeVersion) {
453
462
  try { fs.writeFileSync(path.join(shared.MINIONS_DIR, '.minions-version'), codeVersion); } catch {}
@@ -924,8 +933,11 @@ const commands = {
924
933
  // surfaced a healthy engine as crashed. We now write every 15s on a
925
934
  // dedicated interval — 8× headroom vs the 120s threshold even under
926
935
  // event-loop pressure, and orders of magnitude under TICK_TIMEOUT_MS so
927
- // a hung tick still looks distinct from a wedged event loop.
928
- writeHeartbeatNow(); // prime control.heartbeat immediately
936
+ // a hung tick still looks distinct from a wedged event loop. The first
937
+ // (priming) heartbeat write lives near the top of this handler — see the
938
+ // W-mpg3bcp800075d4f comment above mutateControl — so that the dashboard's
939
+ // 30s restart grace window sees a fresh heartbeat regardless of how long
940
+ // the boot reconcile chain takes.
929
941
  const heartbeatTimer = setInterval(writeHeartbeatNow, HEARTBEAT_INTERVAL_MS);
930
942
 
931
943
  // Fast poll: check steering every 1s (lightweight — just fs.stat per agent)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.2007",
3
+ "version": "0.1.2008",
4
4
  "description": "Multi-agent AI dev team that runs from ~/.minions/ — five autonomous agents share a single engine, dashboard, and knowledge base",
5
5
  "bin": {
6
6
  "minions": "bin/minions.js"