@yemi33/minions 0.1.382 → 0.1.384

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.
package/CHANGELOG.md CHANGED
@@ -1,8 +1,14 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.382 (2026-04-06)
3
+ ## 0.1.384 (2026-04-06)
4
+
5
+ ### Features
6
+ - show engine version and stale-code warning in dashboard
7
+
8
+ ## 0.1.383 (2026-04-06)
4
9
 
5
10
  ### Fixes
11
+ - SyntaxError — await in non-async discoverWork function
6
12
  - branch regex missed W- and PL- work item IDs — wrong PR agent attribution
7
13
 
8
14
  ## 0.1.381 (2026-04-06)
@@ -57,6 +57,7 @@ function _processStatusUpdate(data) {
57
57
  renderPrs(data.pullRequests || []);
58
58
  renderArchiveButtons(data.archivedPrds || []);
59
59
  renderEngineStatus(data.engine);
60
+ renderVersionBanner(data.version);
60
61
  renderDispatch(data.dispatch);
61
62
  window._lastDispatch = data.dispatch;
62
63
  window._lastWorkItems = data.workItems || [];
@@ -210,4 +210,25 @@ async function showErrorDetails(agentId, reason, task) {
210
210
  }
211
211
  }
212
212
 
213
- window.MinionsDispatch = { renderEngineStatus, renderEngineAlert, renderDispatch, renderEngineLog, shortTime, showErrorDetails };
213
+ function renderVersionBanner(version) {
214
+ const el = document.getElementById('version-banner');
215
+ if (!el) return;
216
+ if (!version) { el.style.display = 'none'; return; }
217
+
218
+ // Show version in footer area
219
+ const label = version.running ? 'v' + version.running : '';
220
+ const commitLabel = version.runningCommit ? ' (' + version.runningCommit + ')' : '';
221
+ el.textContent = label + commitLabel;
222
+ el.title = 'Engine: v' + (version.running || '?') + ' ' + (version.runningCommit || '') +
223
+ '\nDisk: v' + (version.disk || '?') + ' ' + (version.diskCommit || '');
224
+
225
+ if (version.stale) {
226
+ el.style.cssText = 'font-size:9px;padding:2px 8px;background:rgba(210,153,34,0.15);border:1px solid rgba(210,153,34,0.3);border-radius:4px;color:var(--yellow);cursor:help';
227
+ el.textContent = '\u26A0 Engine running v' + (version.running || '?') + ' (' + (version.runningCommit || '?') + ') — disk has v' + (version.disk || '?') + ' (' + (version.diskCommit || '?') + '). Restart to apply.';
228
+ el.title = 'The engine process is running older code than what is on disk. Run: minions restart';
229
+ } else {
230
+ el.style.cssText = 'font-size:9px;color:var(--muted)';
231
+ }
232
+ }
233
+
234
+ window.MinionsDispatch = { renderEngineStatus, renderEngineAlert, renderVersionBanner, renderDispatch, renderEngineLog, shortTime, showErrorDetails };
@@ -19,6 +19,7 @@
19
19
  </div>
20
20
  </header>
21
21
  <div class="engine-alert" id="engine-alert"></div>
22
+ <div id="version-banner" style="font-size:9px;color:var(--muted);padding:0 16px"></div>
22
23
 
23
24
  <!-- Command Center Drawer -->
24
25
  <div id="cc-drawer" style="display:none;position:fixed;top:0;right:0;bottom:0;width:420px;background:var(--surface);border-left:1px solid var(--border);z-index:350;flex-direction:column;overscroll-behavior:contain">
package/dashboard.js CHANGED
@@ -248,6 +248,21 @@ function getStatus() {
248
248
  },
249
249
  initialized: !!(CONFIG.agents && Object.keys(CONFIG.agents).length > 0),
250
250
  installId: safeRead(path.join(MINIONS_DIR, '.install-id')).trim() || null,
251
+ version: (() => {
252
+ const engine = getEngineState();
253
+ let diskVersion = null;
254
+ try { diskVersion = require('./package.json').version; } catch {}
255
+ let diskCommit = null;
256
+ try { diskCommit = require('child_process').execSync('git rev-parse --short HEAD', { cwd: MINIONS_DIR, encoding: 'utf8', timeout: 5000, windowsHide: true }).trim(); } catch {}
257
+ return {
258
+ running: engine.codeVersion || null,
259
+ runningCommit: engine.codeCommit || null,
260
+ disk: diskVersion,
261
+ diskCommit,
262
+ stale: !!(engine.codeVersion && diskVersion && engine.codeVersion !== diskVersion) ||
263
+ !!(engine.codeCommit && diskCommit && engine.codeCommit !== diskCommit),
264
+ };
265
+ })(),
251
266
  timestamp: new Date().toISOString(),
252
267
  };
253
268
  _statusCacheTs = now;
package/engine/cli.js CHANGED
@@ -84,7 +84,12 @@ const commands = {
84
84
  console.log(`Engine was running (PID ${control.pid}) but process is dead — restarting.`);
85
85
  }
86
86
 
87
- safeWrite(CONTROL_PATH, { state: 'running', pid: process.pid, started_at: e.ts() });
87
+ // Record version + git commit so dashboard can detect stale engine code
88
+ let codeVersion = null;
89
+ try { codeVersion = require('../package.json').version; } catch {}
90
+ let codeCommit = null;
91
+ try { codeCommit = require('child_process').execSync('git rev-parse --short HEAD', { cwd: path.resolve(__dirname, '..'), encoding: 'utf8', timeout: 5000, windowsHide: true }).trim(); } catch {}
92
+ safeWrite(CONTROL_PATH, { state: 'running', pid: process.pid, started_at: e.ts(), codeVersion, codeCommit });
88
93
  e.log('info', 'Engine started');
89
94
  console.log(`Engine started (PID: ${process.pid})`);
90
95
 
package/engine.js CHANGED
@@ -2106,7 +2106,7 @@ function discoverWork(config) {
2106
2106
  // Pipeline orchestration — check stage completions and start ready stages
2107
2107
  try {
2108
2108
  const { discoverPipelineWork } = require('./engine/pipeline');
2109
- await discoverPipelineWork(config);
2109
+ discoverPipelineWork(config).catch(e => log('warn', 'discover pipeline work: ' + e.message));
2110
2110
  } catch (e) { log('warn', 'discover pipeline work: ' + e.message); }
2111
2111
 
2112
2112
  // Periodic plan completion sweep — catch PRDs that completed while engine was down
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.382",
3
+ "version": "0.1.384",
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"