@yemi33/minions 0.1.390 → 0.1.391
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 +2 -1
- package/dashboard/js/render-dispatch.js +16 -10
- package/dashboard.js +28 -6
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.391 (2026-04-06)
|
|
4
4
|
|
|
5
5
|
### Features
|
|
6
|
+
- track dashboard version — detect stale dashboard code separately
|
|
6
7
|
- Replace magic strings in pipeline.js with STAGE_TYPE/PIPELINE_STATUS/MEETING_STATUS constants (#244)
|
|
7
8
|
- Fix spawn-agent.js direct proc.kill() — use cross-platform helpers (#243)
|
|
8
9
|
|
|
@@ -215,21 +215,27 @@ function renderVersionBanner(version) {
|
|
|
215
215
|
if (!el) return;
|
|
216
216
|
if (!version) { el.style.display = 'none'; return; }
|
|
217
217
|
|
|
218
|
-
const v = version.running || version.disk || '?';
|
|
219
|
-
const commitLabel = version.
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
el.style.cssText =
|
|
224
|
-
el.textContent = '\u26A0 Engine
|
|
225
|
-
el.title = '
|
|
218
|
+
const v = version.dashboardRunning || version.running || version.disk || '?';
|
|
219
|
+
const commitLabel = version.dashboardRunningCommit ? ' (' + version.dashboardRunningCommit + ')' : '';
|
|
220
|
+
const warnStyle = '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';
|
|
221
|
+
|
|
222
|
+
if (version.engineStale && version.dashboardStale) {
|
|
223
|
+
el.style.cssText = warnStyle;
|
|
224
|
+
el.textContent = '\u26A0 Engine + Dashboard running old code. Run: minions restart';
|
|
225
|
+
el.title = 'Both processes are running v' + (version.running || '?') + ' but disk has v' + (version.disk || '?');
|
|
226
|
+
} else if (version.engineStale) {
|
|
227
|
+
el.style.cssText = warnStyle;
|
|
228
|
+
el.textContent = '\u26A0 Engine running v' + (version.running || '?') + ' — disk has v' + (version.disk || '?') + '. Restart engine.';
|
|
229
|
+
el.title = 'The engine process is running older code. Run: minions restart';
|
|
230
|
+
} else if (version.dashboardStale) {
|
|
231
|
+
el.style.cssText = warnStyle;
|
|
232
|
+
el.textContent = '\u26A0 Dashboard running v' + (version.dashboardRunning || '?') + ' — disk has v' + (version.disk || '?') + '. Run: minions restart';
|
|
233
|
+
el.title = 'The dashboard process is running older code. Run: minions restart';
|
|
226
234
|
} else if (version.updateAvailable) {
|
|
227
|
-
// New version on npm
|
|
228
235
|
el.style.cssText = 'font-size:9px;padding:2px 8px;background:rgba(63,185,80,0.1);border:1px solid rgba(63,185,80,0.3);border-radius:4px;color:var(--green);cursor:help';
|
|
229
236
|
el.textContent = 'v' + v + commitLabel + ' — v' + version.latest + ' available. Run: npm update -g @yemi33/minions';
|
|
230
237
|
el.title = 'A newer version is available on npm';
|
|
231
238
|
} else {
|
|
232
|
-
// Up to date
|
|
233
239
|
el.style.cssText = 'font-size:9px;color:var(--muted)';
|
|
234
240
|
el.textContent = 'v' + v + commitLabel;
|
|
235
241
|
el.title = 'Minions v' + v + (version.latest ? ' (latest)' : '');
|
package/dashboard.js
CHANGED
|
@@ -10,6 +10,14 @@ const zlib = require('zlib');
|
|
|
10
10
|
const fs = require('fs');
|
|
11
11
|
const path = require('path');
|
|
12
12
|
const llm = require('./engine/llm');
|
|
13
|
+
|
|
14
|
+
// Dashboard version stamp — captured at module load so it reflects the code actually running
|
|
15
|
+
const _dashboardVersion = {
|
|
16
|
+
codeVersion: (() => { try { return require('./package.json').version; } catch { return null; } })(),
|
|
17
|
+
codeCommit: (() => { try { return require('child_process').execSync('git rev-parse --short HEAD', { cwd: __dirname, encoding: 'utf8', timeout: 5000, windowsHide: true }).trim(); } catch { return null; } })(),
|
|
18
|
+
startedAt: new Date().toISOString(),
|
|
19
|
+
pid: process.pid,
|
|
20
|
+
};
|
|
13
21
|
const shared = require('./engine/shared');
|
|
14
22
|
const queries = require('./engine/queries');
|
|
15
23
|
const os = require('os');
|
|
@@ -313,13 +321,20 @@ function getStatus() {
|
|
|
313
321
|
version: (() => {
|
|
314
322
|
const engine = getEngineState();
|
|
315
323
|
const { diskVersion, diskCommit } = getDiskVersion();
|
|
324
|
+
const engineStale = !!(engine.codeVersion && diskVersion && engine.codeVersion !== diskVersion) ||
|
|
325
|
+
!!(engine.codeCommit && diskCommit && engine.codeCommit !== diskCommit);
|
|
326
|
+
const dashboardStale = !!(diskVersion && _dashboardVersion.codeVersion && diskVersion !== _dashboardVersion.codeVersion) ||
|
|
327
|
+
!!(diskCommit && _dashboardVersion.codeCommit && diskCommit !== _dashboardVersion.codeCommit);
|
|
316
328
|
return {
|
|
317
329
|
running: engine.codeVersion || null,
|
|
318
330
|
runningCommit: engine.codeCommit || null,
|
|
331
|
+
dashboardRunning: _dashboardVersion.codeVersion,
|
|
332
|
+
dashboardRunningCommit: _dashboardVersion.codeCommit,
|
|
319
333
|
disk: diskVersion,
|
|
320
334
|
diskCommit,
|
|
321
|
-
|
|
322
|
-
|
|
335
|
+
engineStale,
|
|
336
|
+
dashboardStale,
|
|
337
|
+
stale: engineStale || dashboardStale,
|
|
323
338
|
latest: _npmVersionCache?.latest || null,
|
|
324
339
|
updateAvailable: !!(diskVersion && _npmVersionCache?.latest && _npmVersionCache.latest !== diskVersion && _compareVersions(_npmVersionCache.latest, diskVersion) > 0),
|
|
325
340
|
};
|
|
@@ -3435,15 +3450,22 @@ What would you like to discuss or change? When you're happy, say "approve" and I
|
|
|
3435
3450
|
const npm = await checkNpmVersion();
|
|
3436
3451
|
const { diskVersion, diskCommit } = getDiskVersion();
|
|
3437
3452
|
const engine = getEngineState();
|
|
3453
|
+
const engineStale = !!(engine.codeVersion && diskVersion && engine.codeVersion !== diskVersion) ||
|
|
3454
|
+
!!(engine.codeCommit && diskCommit && engine.codeCommit !== diskCommit);
|
|
3455
|
+
const dashboardStale = !!(diskVersion && _dashboardVersion.codeVersion && diskVersion !== _dashboardVersion.codeVersion) ||
|
|
3456
|
+
!!(diskCommit && _dashboardVersion.codeCommit && diskCommit !== _dashboardVersion.codeCommit);
|
|
3438
3457
|
return jsonReply(res, 200, {
|
|
3439
3458
|
current: diskVersion,
|
|
3440
3459
|
currentCommit: diskCommit,
|
|
3441
|
-
|
|
3442
|
-
|
|
3460
|
+
engineRunning: engine.codeVersion || null,
|
|
3461
|
+
engineRunningCommit: engine.codeCommit || null,
|
|
3462
|
+
dashboardRunning: _dashboardVersion.codeVersion,
|
|
3463
|
+
dashboardRunningCommit: _dashboardVersion.codeCommit,
|
|
3443
3464
|
latest: npm.latest,
|
|
3444
3465
|
updateAvailable: !!(diskVersion && npm.latest && _compareVersions(npm.latest, diskVersion) > 0),
|
|
3445
|
-
|
|
3446
|
-
|
|
3466
|
+
engineStale,
|
|
3467
|
+
dashboardStale,
|
|
3468
|
+
stale: engineStale || dashboardStale,
|
|
3447
3469
|
checkedAt: npm.checkedAt,
|
|
3448
3470
|
});
|
|
3449
3471
|
}},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.391",
|
|
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"
|