@yemi33/minions 0.1.585 → 0.1.587
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/bin/minions.js +18 -7
- package/engine.js +12 -1
- package/package.json +1 -1
- package/playbooks/explore.md +4 -0
- package/playbooks/fix.md +3 -1
- package/playbooks/implement.md +3 -1
- package/playbooks/review.md +3 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.587 (2026-04-08)
|
|
4
4
|
|
|
5
5
|
### Fixes
|
|
6
|
+
- use TCP socket probe for minions dash port check
|
|
6
7
|
- minions dash opens browser when dashboard already running
|
|
7
8
|
- add conditional block support to playbook renderer
|
|
8
9
|
|
|
10
|
+
### Other
|
|
11
|
+
- perf: per-type max-turns and explicit stop conditions in playbooks
|
|
12
|
+
|
|
9
13
|
## 0.1.583 (2026-04-08)
|
|
10
14
|
|
|
11
15
|
### Fixes
|
package/bin/minions.js
CHANGED
|
@@ -705,11 +705,15 @@ if (!cmd || cmd === 'help' || cmd === '--help' || cmd === '-h') {
|
|
|
705
705
|
} else if (cmd === 'dash' || cmd === 'dashboard') {
|
|
706
706
|
ensureInstalled();
|
|
707
707
|
// If dashboard is already running, just open the browser
|
|
708
|
-
const
|
|
708
|
+
const net = require('net');
|
|
709
709
|
const dashPort = 7331;
|
|
710
|
-
const
|
|
711
|
-
|
|
712
|
-
|
|
710
|
+
const sock = new net.Socket();
|
|
711
|
+
let handled = false;
|
|
712
|
+
sock.setTimeout(1000);
|
|
713
|
+
sock.on('connect', () => {
|
|
714
|
+
sock.destroy();
|
|
715
|
+
if (handled) return;
|
|
716
|
+
handled = true;
|
|
713
717
|
const url = `http://localhost:${dashPort}`;
|
|
714
718
|
console.log(`\n Dashboard already running: ${url}\n`);
|
|
715
719
|
try {
|
|
@@ -717,11 +721,18 @@ if (!cmd || cmd === 'help' || cmd === '--help' || cmd === '-h') {
|
|
|
717
721
|
execSync(openCmd, { stdio: 'ignore', windowsHide: true });
|
|
718
722
|
} catch {}
|
|
719
723
|
});
|
|
720
|
-
|
|
721
|
-
|
|
724
|
+
sock.on('error', () => {
|
|
725
|
+
if (handled) return;
|
|
726
|
+
handled = true;
|
|
722
727
|
delegate('dashboard.js', rest);
|
|
723
728
|
});
|
|
724
|
-
|
|
729
|
+
sock.on('timeout', () => {
|
|
730
|
+
sock.destroy();
|
|
731
|
+
if (handled) return;
|
|
732
|
+
handled = true;
|
|
733
|
+
delegate('dashboard.js', rest);
|
|
734
|
+
});
|
|
735
|
+
sock.connect(dashPort, '127.0.0.1');
|
|
725
736
|
} else if (engineCmds.has(cmd)) {
|
|
726
737
|
delegate('engine.js', [cmd, ...rest]);
|
|
727
738
|
} else {
|
package/engine.js
CHANGED
|
@@ -147,6 +147,17 @@ let engineRestartGraceUntil = 0; // timestamp — suppress orphan detection unti
|
|
|
147
147
|
// Cleared at the start of each tick cycle (see tickInner)
|
|
148
148
|
const _failedRefCache = new Set();
|
|
149
149
|
const _FAST_WORK_TYPES = new Set([WORK_TYPE.EXPLORE, WORK_TYPE.ASK, WORK_TYPE.REVIEW]);
|
|
150
|
+
const _MAX_TURNS_BY_TYPE = {
|
|
151
|
+
[WORK_TYPE.EXPLORE]: 30, [WORK_TYPE.ASK]: 20, [WORK_TYPE.REVIEW]: 30,
|
|
152
|
+
[WORK_TYPE.DECOMPOSE]: 15, [WORK_TYPE.PLAN]: 30, [WORK_TYPE.PLAN_TO_PRD]: 20,
|
|
153
|
+
[WORK_TYPE.MEETING]: 30,
|
|
154
|
+
[WORK_TYPE.IMPLEMENT]: 75, [WORK_TYPE.IMPLEMENT_LARGE]: 75, [WORK_TYPE.FIX]: 50,
|
|
155
|
+
[WORK_TYPE.TEST]: 50, [WORK_TYPE.VERIFY]: 100, [WORK_TYPE.DOCS]: 30,
|
|
156
|
+
};
|
|
157
|
+
function _maxTurnsForType(type, engineConfig) {
|
|
158
|
+
// User override takes precedence, then per-type default, then global default
|
|
159
|
+
return engineConfig.maxTurns || _MAX_TURNS_BY_TYPE[type] || DEFAULTS.maxTurns;
|
|
160
|
+
}
|
|
150
161
|
|
|
151
162
|
// Resolve dependency plan item IDs to their PR branches
|
|
152
163
|
function resolveDependencyBranches(depIds, sourcePlan, project, config) {
|
|
@@ -484,7 +495,7 @@ async function spawnAgent(dispatchItem, config) {
|
|
|
484
495
|
// Build claude CLI args
|
|
485
496
|
const args = [
|
|
486
497
|
'--output-format', claudeConfig.outputFormat || 'stream-json',
|
|
487
|
-
'--max-turns', String(engineConfig
|
|
498
|
+
'--max-turns', String(_maxTurnsForType(type, engineConfig)),
|
|
488
499
|
'--verbose',
|
|
489
500
|
'--permission-mode', claudeConfig.permissionMode || 'bypassPermissions'
|
|
490
501
|
];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.587",
|
|
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/explore.md
CHANGED
|
@@ -63,5 +63,9 @@ Use subagents only for genuinely parallel, independent tasks. For reading files,
|
|
|
63
63
|
- Read `notes.md` for all team rules before starting.
|
|
64
64
|
- If you discover a repeatable workflow, output it as a ```skill block (the engine auto-extracts it to ~/.claude/skills/)
|
|
65
65
|
|
|
66
|
+
## When to Stop
|
|
67
|
+
|
|
68
|
+
Your task is complete once you have written your findings to the inbox file. Do NOT continue reading additional files, exploring tangential areas, or producing extra analysis beyond what was asked. Write your findings and stop.
|
|
69
|
+
|
|
66
70
|
## Team Decisions
|
|
67
71
|
{{notes_content}}
|
package/playbooks/fix.md
CHANGED
|
@@ -60,6 +60,8 @@ Before pushing your fix, run the project's test suite:
|
|
|
60
60
|
3. If any tests fail due to your changes, fix them before pushing
|
|
61
61
|
4. Do NOT push code that breaks existing tests
|
|
62
62
|
|
|
63
|
-
##
|
|
63
|
+
## When to Stop
|
|
64
|
+
|
|
65
|
+
Your task is complete once you have: (1) pushed the fix, (2) created or updated the PR, and (3) confirmed tests pass. Do NOT continue exploring unrelated code or making additional improvements. Stop immediately after the fix is verified.
|
|
64
66
|
|
|
65
67
|
**Note:** Do NOT write to `agents/*/status.json` — the engine manages your status automatically.
|
package/playbooks/implement.md
CHANGED
|
@@ -60,7 +60,9 @@ Do NOT remove the worktree — the engine handles cleanup automatically.
|
|
|
60
60
|
|
|
61
61
|
{{pr_section}}
|
|
62
62
|
|
|
63
|
-
##
|
|
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.
|
|
64
66
|
|
|
65
67
|
**Note:** Do NOT write to `agents/*/status.json` — the engine manages your status automatically.
|
|
66
68
|
|
package/playbooks/review.md
CHANGED
|
@@ -67,6 +67,8 @@ If you encounter merge conflicts (e.g., the PR shows conflicts):
|
|
|
67
67
|
|
|
68
68
|
## Do not run git checkout on the main working tree. Use `git diff` and `git show` only.
|
|
69
69
|
|
|
70
|
-
##
|
|
70
|
+
## When to Stop
|
|
71
|
+
|
|
72
|
+
Your task is complete once you have: (1) posted your review comment on the PR, and (2) cast your vote. Do NOT continue reading unrelated files or performing additional analysis. Stop after voting.
|
|
71
73
|
|
|
72
74
|
**Note:** Do NOT write to `agents/*/status.json` — the engine manages your status automatically.
|