@yemi33/minions 0.1.809 → 0.1.811
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 +3 -2
- package/dashboard/js/command-center.js +7 -4
- package/engine/lifecycle.js +11 -3
- package/package.json +1 -1
- package/playbooks/decompose.md +4 -4
- package/playbooks/fix.md +8 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.811 (2026-04-10)
|
|
4
4
|
|
|
5
5
|
### Features
|
|
6
|
+
- Restructure decompose.md sub-task output format (#655)
|
|
6
7
|
- CC race condition fixes, doc-chat expand, settings save fix, metric rate
|
|
7
8
|
- configurable ignored comment authors — auto-filtered, never trigger fixes
|
|
8
9
|
- add open-source community sources to agentic research pipeline
|
|
@@ -10,6 +11,7 @@
|
|
|
10
11
|
- cap review→fix cycles at evalMaxIterations (default 3)
|
|
11
12
|
|
|
12
13
|
### Fixes
|
|
14
|
+
- allow agents to explain rationale instead of blindly fixing review feedback
|
|
13
15
|
- don't URL-encode ADO branchName filter (refs/heads/ format expected raw)
|
|
14
16
|
- ADO build query filters by source branch (not all org builds)
|
|
15
17
|
- adoFetch supports method/body for PATCH requests (auto-complete)
|
|
@@ -29,7 +31,6 @@
|
|
|
29
31
|
- flush queued CC messages as single combined request
|
|
30
32
|
- human feedback fixes are never capped (only minion review→fix loop is)
|
|
31
33
|
- 5 bugs from comprehensive audit
|
|
32
|
-
- stale ADO build detection + merge conflict auto-fix for both platforms
|
|
33
34
|
|
|
34
35
|
## 0.1.782 (2026-04-10)
|
|
35
36
|
|
|
@@ -378,11 +378,14 @@ async function ccSend() {
|
|
|
378
378
|
}
|
|
379
379
|
var wasAborted = await _ccDoSend(message);
|
|
380
380
|
|
|
381
|
-
//
|
|
382
|
-
|
|
383
|
-
|
|
381
|
+
// Drain queued messages one at a time with abort delay
|
|
382
|
+
while (tab._queue && tab._queue.length > 0) {
|
|
383
|
+
if (wasAborted) {
|
|
384
|
+
await new Promise(function(r) { setTimeout(r, 600); });
|
|
385
|
+
}
|
|
386
|
+
var next = tab._queue.shift();
|
|
384
387
|
_renderQueueIndicator();
|
|
385
|
-
await _ccDoSend(
|
|
388
|
+
wasAborted = await _ccDoSend(next);
|
|
386
389
|
}
|
|
387
390
|
}
|
|
388
391
|
|
package/engine/lifecycle.js
CHANGED
|
@@ -186,7 +186,7 @@ function checkPlanCompletion(meta, config) {
|
|
|
186
186
|
|
|
187
187
|
// 4. Create verification work item (build, test, start webapp, write testing guide)
|
|
188
188
|
const existingVerify = allWorkItems.find(w => w.sourcePlan === planFile && w.itemType === 'verify');
|
|
189
|
-
if (!existingVerify && doneItems.length > 0
|
|
189
|
+
if (!existingVerify && doneItems.length > 0) {
|
|
190
190
|
const verifyId = 'PL-' + shared.uid();
|
|
191
191
|
const planSlug = planFile.replace('.json', '');
|
|
192
192
|
|
|
@@ -1352,7 +1352,7 @@ function handleDecompositionResult(stdout, meta, config) {
|
|
|
1352
1352
|
// Create child work items
|
|
1353
1353
|
for (const sub of subItems) {
|
|
1354
1354
|
if (data.some(i => i.id === sub.id)) continue; // dedupe
|
|
1355
|
-
|
|
1355
|
+
const childItem = {
|
|
1356
1356
|
id: sub.id,
|
|
1357
1357
|
title: sub.name || sub.title || `Sub-task of ${parentId}`,
|
|
1358
1358
|
type: (sub.estimated_complexity === 'large') ? 'implement:large' : 'implement',
|
|
@@ -1367,7 +1367,15 @@ function handleDecompositionResult(stdout, meta, config) {
|
|
|
1367
1367
|
featureBranch: p.featureBranch,
|
|
1368
1368
|
created: ts(),
|
|
1369
1369
|
createdBy: 'decomposition',
|
|
1370
|
-
}
|
|
1370
|
+
};
|
|
1371
|
+
// Persist structured fields from decompose output (additive — safe if absent)
|
|
1372
|
+
if (Array.isArray(sub.acceptance_criteria) && sub.acceptance_criteria.length > 0) {
|
|
1373
|
+
childItem.acceptance_criteria = sub.acceptance_criteria;
|
|
1374
|
+
}
|
|
1375
|
+
if (Array.isArray(sub.scope_boundaries) && sub.scope_boundaries.length > 0) {
|
|
1376
|
+
childItem.scope_boundaries = sub.scope_boundaries;
|
|
1377
|
+
}
|
|
1378
|
+
data.push(childItem);
|
|
1371
1379
|
}
|
|
1372
1380
|
return data;
|
|
1373
1381
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.811",
|
|
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/decompose.md
CHANGED
|
@@ -48,13 +48,13 @@ Write the decomposition result as a JSON code block in your response:
|
|
|
48
48
|
{
|
|
49
49
|
"id": "{{item_id}}-a",
|
|
50
50
|
"name": "Short descriptive name",
|
|
51
|
-
"objective": "One-sentence goal
|
|
51
|
+
"objective": "One-sentence goal — what this sub-task achieves in the overall plan.",
|
|
52
52
|
"description": "What to build, where, and how. Be specific enough that an engineer can implement without further exploration.",
|
|
53
|
+
"expected_output": "What 'done' looks like — artifact produced, PR shape, file format, or observable behavior.",
|
|
54
|
+
"scope_boundaries": ["What is explicitly OUT of scope for this sub-task", "Another exclusion"],
|
|
53
55
|
"estimated_complexity": "small|medium",
|
|
54
56
|
"depends_on": [],
|
|
55
|
-
"acceptance_criteria": ["
|
|
56
|
-
"expected_output": "What done looks like — the artifact produced (e.g., a PR adding X, a new file at Y, a config change).",
|
|
57
|
-
"scope_boundaries": ["Out-of-scope item 1", "Out-of-scope item 2"]
|
|
57
|
+
"acceptance_criteria": ["Verifiable criterion 1", "Verifiable criterion 2"]
|
|
58
58
|
}
|
|
59
59
|
]
|
|
60
60
|
}
|
package/playbooks/fix.md
CHANGED
|
@@ -29,7 +29,9 @@ Use subagents only for genuinely parallel, independent tasks. For sequential wor
|
|
|
29
29
|
|
|
30
30
|
1. You are already in the correct worktree on branch `{{pr_branch}}`. Do NOT create additional worktrees.
|
|
31
31
|
|
|
32
|
-
2.
|
|
32
|
+
2. For each issue listed above, use your judgment:
|
|
33
|
+
- **Fix it** if the feedback is valid and improves the code
|
|
34
|
+
- **Explain your rationale** if you believe the current approach is correct — reply on the review thread explaining why, with specific reasoning (e.g., performance, consistency with codebase patterns, intentional design choice). Do NOT silently ignore feedback — always respond.
|
|
33
35
|
|
|
34
36
|
3. Handle merge conflicts if any:
|
|
35
37
|
- If `git pull` or the PR shows conflicts, resolve them in the worktree
|
|
@@ -64,11 +66,11 @@ Do NOT remove the worktree — the engine handles cleanup automatically.
|
|
|
64
66
|
|
|
65
67
|
## Resolve Review Comments
|
|
66
68
|
|
|
67
|
-
After pushing,
|
|
68
|
-
- **
|
|
69
|
-
- **
|
|
70
|
-
|
|
71
|
-
|
|
69
|
+
After pushing, respond to each review comment/thread:
|
|
70
|
+
- **If you fixed it**: Reply confirming the fix, then resolve the thread
|
|
71
|
+
- **If you chose not to fix it**: Reply with your rationale explaining why the current approach is preferred — leave the thread open for the reviewer to decide
|
|
72
|
+
- **GitHub**: Reply to each review comment, resolve conversations you've fixed
|
|
73
|
+
- **ADO**: Reply to each thread, set status to `fixed` or `closed` for fixes; leave `active` for rationale replies
|
|
72
74
|
|
|
73
75
|
## When to Stop
|
|
74
76
|
|