@yemi33/minions 0.1.591 → 0.1.593
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 +5 -1
- package/dashboard/js/refresh.js +10 -1
- package/dashboard/pages/engine.html +3 -0
- package/dashboard.js +16 -1
- package/package.json +1 -1
- package/playbooks/implement.md +4 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.593 (2026-04-08)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
- show worktree count and engine quick stats on engine page
|
|
4
7
|
|
|
5
8
|
### Fixes
|
|
9
|
+
- move 'When to Stop' after Build/Test in implement playbook
|
|
6
10
|
- per-type maxTurns bypassed when config has default maxTurns=100
|
|
7
11
|
|
|
8
12
|
## 0.1.590 (2026-04-08)
|
package/dashboard/js/refresh.js
CHANGED
|
@@ -64,7 +64,16 @@ function _processStatusUpdate(data) {
|
|
|
64
64
|
if (_changed('prd', [data.prd, data.prdProgress])) renderPrd(data.prd, data.prdProgress);
|
|
65
65
|
if (_changed('prs', data.pullRequests)) renderPrs(data.pullRequests || []);
|
|
66
66
|
if (_changed('archivedPrds', data.archivedPrds)) renderArchiveButtons(data.archivedPrds || []);
|
|
67
|
-
if (_changed('engine', data.engine))
|
|
67
|
+
if (_changed('engine', data.engine)) {
|
|
68
|
+
renderEngineStatus(data.engine);
|
|
69
|
+
var qs = document.getElementById('engine-quick-stats');
|
|
70
|
+
if (qs && data.engine) {
|
|
71
|
+
var wt = data.engine.worktreeCount != null ? data.engine.worktreeCount : '-';
|
|
72
|
+
var tick = data.engine.tick || '-';
|
|
73
|
+
var pid = data.engine.pid || '-';
|
|
74
|
+
qs.innerHTML = '<span>PID: <b>' + pid + '</b></span><span>Tick: <b>' + tick + '</b></span><span>Worktrees: <b>' + wt + '</b></span>';
|
|
75
|
+
}
|
|
76
|
+
}
|
|
68
77
|
if (_changed('version', data.version)) renderVersionBanner(data.version);
|
|
69
78
|
if (_changed('dispatch', data.dispatch)) renderDispatch(data.dispatch);
|
|
70
79
|
window._lastDispatch = data.dispatch;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
+
<section>
|
|
2
|
+
<div id="engine-quick-stats" style="display:flex;gap:16px;margin-bottom:12px;font-size:11px;color:var(--muted)"></div>
|
|
3
|
+
</section>
|
|
1
4
|
<section>
|
|
2
5
|
<h2>Engine Log <span style="font-size:10px;color:var(--muted);font-weight:400;text-transform:none;letter-spacing:0">tick-by-tick audit trail of engine operations</span></h2>
|
|
3
6
|
<div class="log-list" id="engine-log">No log entries yet.</div>
|
package/dashboard.js
CHANGED
|
@@ -167,6 +167,21 @@ function getVerifyGuides() {
|
|
|
167
167
|
function getArchivedPrds() { return []; }
|
|
168
168
|
function getEngineState() { return queries.getControl(); }
|
|
169
169
|
|
|
170
|
+
function _countWorktrees() {
|
|
171
|
+
try {
|
|
172
|
+
const config = queries.getConfig();
|
|
173
|
+
const projects = queries.getProjects(config);
|
|
174
|
+
let count = 0;
|
|
175
|
+
for (const p of projects) {
|
|
176
|
+
const root = p.localPath ? path.resolve(p.localPath) : null;
|
|
177
|
+
if (!root) continue;
|
|
178
|
+
const wtRoot = path.resolve(root, config.engine?.worktreeRoot || shared.ENGINE_DEFAULTS.worktreeRoot);
|
|
179
|
+
try { count += fs.readdirSync(wtRoot).filter(f => fs.statSync(path.join(wtRoot, f)).isDirectory()).length; } catch {}
|
|
180
|
+
}
|
|
181
|
+
return count;
|
|
182
|
+
} catch { return 0; }
|
|
183
|
+
}
|
|
184
|
+
|
|
170
185
|
// ── npm update check ────────────────────────────────────────────────────────
|
|
171
186
|
let _npmVersionCache = null;
|
|
172
187
|
let _npmVersionCacheTs = 0;
|
|
@@ -347,7 +362,7 @@ function getStatus() {
|
|
|
347
362
|
pullRequests: getPullRequests(),
|
|
348
363
|
verifyGuides: getVerifyGuides(),
|
|
349
364
|
archivedPrds: getArchivedPrds(),
|
|
350
|
-
engine: getEngineState(),
|
|
365
|
+
engine: { ...getEngineState(), worktreeCount: _countWorktrees() },
|
|
351
366
|
dispatch: getDispatchQueue(),
|
|
352
367
|
engineLog: getEngineLog(),
|
|
353
368
|
metrics: getMetrics(),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.593",
|
|
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"
|
package/playbooks/implement.md
CHANGED
|
@@ -60,11 +60,6 @@ Do NOT remove the worktree — the engine handles cleanup automatically.
|
|
|
60
60
|
|
|
61
61
|
{{pr_section}}
|
|
62
62
|
|
|
63
|
-
## When to Stop
|
|
64
|
-
|
|
65
|
-
Your task is complete once you have: (1) pushed your branch, (2) created the PR, and (3) confirmed the build passes. Do NOT continue exploring, refactoring, or adding features beyond the task description. Stop immediately after the PR is created and verified.
|
|
66
|
-
|
|
67
|
-
|
|
68
63
|
## Build and Demo Rule
|
|
69
64
|
|
|
70
65
|
After implementation:
|
|
@@ -90,3 +85,7 @@ Before creating a PR, run the project's test suite and ensure all existing tests
|
|
|
90
85
|
- Re-run tests until all pass
|
|
91
86
|
4. If tests were already failing before your changes (pre-existing failures), note them in the PR description but do NOT block on them
|
|
92
87
|
5. Do NOT create a PR with failing tests that you introduced
|
|
88
|
+
|
|
89
|
+
## When to Stop
|
|
90
|
+
|
|
91
|
+
Your task is complete once you have: (1) pushed your branch, (2) created the PR, and (3) confirmed the build and tests pass. Do NOT continue exploring, refactoring, or adding features beyond the task description. Stop immediately.
|