@yemi33/minions 0.1.447 → 0.1.449
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 -1
- package/engine/ado.js +10 -0
- package/engine.js +6 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.449 (2026-04-06)
|
|
4
4
|
|
|
5
5
|
### Features
|
|
6
6
|
- notification dot on Notes & KB sidebar when sweep completes/fails
|
|
7
7
|
|
|
8
8
|
### Fixes
|
|
9
|
+
- track ADO head commit for push detection — unblocks re-review cycle
|
|
10
|
+
- block all fix dispatches while awaiting re-review after a fix
|
|
9
11
|
- prevent double-dispatch — dedup by work item ID and dispatchKey
|
|
10
12
|
- pipeline agent is optional — set only when user explicitly requests
|
|
11
13
|
- remove hardcoded agent assignments from all pipeline JSONs
|
package/engine/ado.js
CHANGED
|
@@ -166,6 +166,16 @@ async function pollPrStatus(config) {
|
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
168
|
|
|
169
|
+
// Track head commit changes to detect new pushes (used for review re-dispatch gating)
|
|
170
|
+
const headCommit = prData.lastMergeSourceCommit?.commitId || prData.sourceRefName || '';
|
|
171
|
+
if (headCommit && pr._adoHeadCommit !== headCommit) {
|
|
172
|
+
if (pr._adoHeadCommit) { // skip first detection — only track changes
|
|
173
|
+
pr.lastPushedAt = new Date().toISOString();
|
|
174
|
+
}
|
|
175
|
+
pr._adoHeadCommit = headCommit;
|
|
176
|
+
updated = true;
|
|
177
|
+
}
|
|
178
|
+
|
|
169
179
|
const reviewers = prData.reviewers || [];
|
|
170
180
|
const votes = reviewers.map(r => r.vote).filter(v => v !== undefined);
|
|
171
181
|
let newReviewStatus = pr.reviewStatus || 'pending';
|
package/engine.js
CHANGED
|
@@ -1279,6 +1279,10 @@ function discoverFromPrs(config, project) {
|
|
|
1279
1279
|
// minionsReview tracks metadata (reviewer, note) but not the authoritative status
|
|
1280
1280
|
const reviewStatus = pr.reviewStatus || 'pending';
|
|
1281
1281
|
|
|
1282
|
+
// Skip fix dispatch if a fix was recently submitted and awaiting re-review.
|
|
1283
|
+
// The poller holds reviewStatus at 'waiting' until the reviewer acts on the new code.
|
|
1284
|
+
const awaitingReReview = reviewStatus === 'waiting' && !!pr.minionsReview?.fixedAt;
|
|
1285
|
+
|
|
1282
1286
|
// PRs needing review: pending review status and not already reviewed without new commits
|
|
1283
1287
|
const autoReview = config.engine?.autoReview !== false;
|
|
1284
1288
|
// Skip re-dispatch if already reviewed and no new commits pushed since last review
|
|
@@ -1298,7 +1302,7 @@ function discoverFromPrs(config, project) {
|
|
|
1298
1302
|
}
|
|
1299
1303
|
|
|
1300
1304
|
// PRs with changes requested → route back to author for fix
|
|
1301
|
-
if (reviewStatus === 'changes-requested') {
|
|
1305
|
+
if (reviewStatus === 'changes-requested' && !awaitingReReview) {
|
|
1302
1306
|
const key = `fix-${project?.name || 'default'}-${pr.id}`;
|
|
1303
1307
|
if (isAlreadyDispatched(key) || isOnCooldown(key, cooldownMs)) continue;
|
|
1304
1308
|
const agentId = resolveAgent('fix', config, pr.agent);
|
|
@@ -1314,7 +1318,7 @@ function discoverFromPrs(config, project) {
|
|
|
1314
1318
|
// PRs with pending human feedback (or coalesced comments from while agent was fixing)
|
|
1315
1319
|
const humanFixKey = `human-fix-${project?.name || 'default'}-${pr.id}`;
|
|
1316
1320
|
const hasCoalescedFeedback = (dispatchCooldowns.get(humanFixKey)?.pendingContexts || []).length > 0;
|
|
1317
|
-
if (pr.humanFeedback?.pendingFix || hasCoalescedFeedback) {
|
|
1321
|
+
if ((pr.humanFeedback?.pendingFix || hasCoalescedFeedback) && !awaitingReReview) {
|
|
1318
1322
|
const key = humanFixKey;
|
|
1319
1323
|
if (isAlreadyDispatched(key) || isOnCooldown(key, cooldownMs)) {
|
|
1320
1324
|
// Coalesce: save feedback for next dispatch
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.449",
|
|
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"
|