@yemi33/minions 0.1.1002 → 0.1.1003
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 -2
- package/engine.js +14 -8
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.1003 (2026-04-15)
|
|
4
4
|
|
|
5
5
|
### Features
|
|
6
6
|
- fix stopAfter=0 watch expiry — run forever for all conditions (#1117)
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
- gate auto-fix conflict dispatch behind autoFixConflicts flag
|
|
26
26
|
|
|
27
27
|
### Fixes
|
|
28
|
+
- only gate reviews/fixes when no free agent slots remain
|
|
28
29
|
- extend auto-link fallback to ADO projects
|
|
29
30
|
- auto-link existing GitHub PR when agent completes without creating one
|
|
30
31
|
- preserve ordered lists across blank lines in markdown renderer
|
|
@@ -44,7 +45,6 @@
|
|
|
44
45
|
- move review verdict check before updateWorkItemStatus(DONE)
|
|
45
46
|
- address review feedback — move writeToInbox outside lock, add absolute condition auto-expire
|
|
46
47
|
- fix watches feature gaps — human notifications, branch stub, status-change init, unique keys
|
|
47
|
-
- skip isAlreadyDispatched in needsReReview to allow re-review within 1hr
|
|
48
48
|
|
|
49
49
|
### Other
|
|
50
50
|
- docs: update CLAUDE.md with recent Minions architecture changes
|
package/engine.js
CHANGED
|
@@ -3081,18 +3081,24 @@ async function discoverWork(config) {
|
|
|
3081
3081
|
} catch (e) { log('warn', 'plan completion sweep: ' + e.message); }
|
|
3082
3082
|
}
|
|
3083
3083
|
|
|
3084
|
-
// Gate reviews and fixes:
|
|
3084
|
+
// Gate reviews and fixes: only when at max concurrency — idle agents should pick up reviews
|
|
3085
|
+
// even if implement items are in progress (implements get priority via sort order, not by blocking)
|
|
3085
3086
|
const hasIncompleteImplements = queries.getWorkItems(config).some(i =>
|
|
3086
3087
|
['queued', 'pending', 'dispatched'].includes(i.status) && (i.type || '').startsWith('implement')
|
|
3087
3088
|
);
|
|
3088
3089
|
if (hasIncompleteImplements) {
|
|
3089
|
-
|
|
3090
|
-
|
|
3091
|
-
|
|
3092
|
-
|
|
3093
|
-
|
|
3094
|
-
|
|
3095
|
-
|
|
3090
|
+
const activeCount = (getDispatch().active || []).length;
|
|
3091
|
+
const maxConcurrent = config.engine?.maxConcurrent ?? DEFAULTS.maxConcurrent;
|
|
3092
|
+
const freeSlots = Math.max(0, maxConcurrent - activeCount);
|
|
3093
|
+
if (freeSlots === 0) {
|
|
3094
|
+
if (allReviews.length > 0) {
|
|
3095
|
+
log('info', `Gating ${allReviews.length} reviews — implement items in progress and no free slots`);
|
|
3096
|
+
allReviews = [];
|
|
3097
|
+
}
|
|
3098
|
+
if (allFixes.length > 0) {
|
|
3099
|
+
log('info', `Gating ${allFixes.length} fixes — implement items in progress and no free slots`);
|
|
3100
|
+
allFixes = [];
|
|
3101
|
+
}
|
|
3096
3102
|
}
|
|
3097
3103
|
}
|
|
3098
3104
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1003",
|
|
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"
|