@yemi33/minions 0.1.775 → 0.1.777
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 +7 -1
- package/engine/ado.js +9 -3
- package/engine/github.js +13 -5
- package/engine/lifecycle.js +3 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.777 (2026-04-10)
|
|
4
|
+
|
|
5
|
+
### Fixes
|
|
6
|
+
- pass reviewer's actual output to fix agent, not just task label
|
|
7
|
+
|
|
8
|
+
## 0.1.776 (2026-04-10)
|
|
4
9
|
|
|
5
10
|
### Features
|
|
6
11
|
- auto-rebase dependent PRs after dependency merge
|
|
7
12
|
- show PR merged/active status on PRD item links
|
|
8
13
|
|
|
9
14
|
### Fixes
|
|
15
|
+
- better agent comment filtering — detect by patterns, not just signature
|
|
10
16
|
- filter CI bot noise from PR human comment detection
|
|
11
17
|
|
|
12
18
|
### Other
|
package/engine/ado.js
CHANGED
|
@@ -458,12 +458,18 @@ async function pollPrHumanComments(config) {
|
|
|
458
458
|
for (const thread of threads) {
|
|
459
459
|
for (const comment of (thread.comments || [])) {
|
|
460
460
|
if (!comment.content || comment.commentType === 'system') continue;
|
|
461
|
-
|
|
461
|
+
const content = comment.content;
|
|
462
|
+
// Minions agent signatures
|
|
463
|
+
if (/\bMinions\s*\(/i.test(content)) continue;
|
|
464
|
+
if (/\b(Review|Fixed|Explored|Verified|Tested)\s+by\s+Minions\b/i.test(content)) continue;
|
|
465
|
+
if (/\[minions\]/i.test(content)) continue;
|
|
462
466
|
// Skip bot/service account comments
|
|
463
467
|
const authorName = (comment.author?.displayName || '').toLowerCase();
|
|
464
468
|
if (/\b(bot|service|build|pipeline|codecov|sonar)\b/i.test(authorName)) continue;
|
|
465
|
-
//
|
|
466
|
-
if (
|
|
469
|
+
// Short comments from same author that look agent-generated
|
|
470
|
+
if (content.length < 500 && /\b(fixed|addressed|resolved|pushed|updated|rebased)\b/i.test(content) && /\b(review|feedback|comment|finding)\b/i.test(content)) continue;
|
|
471
|
+
// Automated status comments (coverage, build reports)
|
|
472
|
+
if (/^#{1,3}\s*(Coverage|Build|Test|Deploy|Pipeline)\s*(Report|Status|Result|Summary)/i.test(content)) continue;
|
|
467
473
|
|
|
468
474
|
const entry = {
|
|
469
475
|
threadId: thread.id,
|
package/engine/github.js
CHANGED
|
@@ -441,17 +441,25 @@ async function pollPrHumanComments(config) {
|
|
|
441
441
|
...(Array.isArray(reviewComments) ? reviewComments : []).map(c => ({ ...c, _type: 'review' }))
|
|
442
442
|
];
|
|
443
443
|
|
|
444
|
-
// Filter out bot comments, minions
|
|
444
|
+
// Filter out bot comments, minions agent comments, and CI noise
|
|
445
|
+
// Agents post as the PAT owner — detect by signature patterns, not account type
|
|
446
|
+
const prAuthorLogin = (prData?.user?.login || '').toLowerCase();
|
|
445
447
|
const humanComments = allComments.filter(c => {
|
|
446
448
|
if (c.user?.type === 'Bot') return false;
|
|
447
|
-
|
|
448
|
-
//
|
|
449
|
+
const body = c.body || '';
|
|
450
|
+
// Minions agent signatures (review, fix, explore, etc.)
|
|
451
|
+
if (/\bMinions\s*\(/i.test(body)) return false;
|
|
452
|
+
if (/\b(Review|Fixed|Explored|Verified|Tested)\s+by\s+Minions\b/i.test(body)) return false;
|
|
453
|
+
if (/\[minions\]/i.test(body)) return false;
|
|
454
|
+
// Comments from the PR author account are likely agent-generated (agents use same PAT)
|
|
455
|
+
// Only skip if the comment looks automated (short, or has agent patterns)
|
|
449
456
|
const login = (c.user?.login || '').toLowerCase();
|
|
457
|
+
if (login === prAuthorLogin && body.length < 500 && /\b(fixed|addressed|resolved|pushed|updated|rebased)\b/i.test(body)) return false;
|
|
458
|
+
// Common CI bot usernames
|
|
450
459
|
if (/\b(bot|codecov|sonar|dependabot|renovate|github-actions|azure-pipelines)\b/i.test(login)) return false;
|
|
451
460
|
// Automated status comments (coverage reports, build badges, etc.)
|
|
452
|
-
const body = c.body || '';
|
|
453
461
|
if (/^#{1,3}\s*(Coverage|Build|Test|Deploy|Pipeline)\s*(Report|Status|Result|Summary)/i.test(body)) return false;
|
|
454
|
-
if (/!\[.*\]\(https?:\/\/.*badge/i.test(body)) return false;
|
|
462
|
+
if (/!\[.*\]\(https?:\/\/.*badge/i.test(body)) return false;
|
|
455
463
|
return true;
|
|
456
464
|
});
|
|
457
465
|
|
package/engine/lifecycle.js
CHANGED
|
@@ -720,7 +720,7 @@ function syncPrsFromOutput(output, agentId, meta, config) {
|
|
|
720
720
|
|
|
721
721
|
// ─── Post-Completion Hooks ──────────────────────────────────────────────────
|
|
722
722
|
|
|
723
|
-
async function updatePrAfterReview(agentId, pr, project, config) {
|
|
723
|
+
async function updatePrAfterReview(agentId, pr, project, config, resultSummary) {
|
|
724
724
|
|
|
725
725
|
if (!pr?.id) return;
|
|
726
726
|
|
|
@@ -755,7 +755,7 @@ async function updatePrAfterReview(agentId, pr, project, config) {
|
|
|
755
755
|
target.minionsReview = {
|
|
756
756
|
reviewer: reviewerName,
|
|
757
757
|
reviewedAt: ts(),
|
|
758
|
-
note: completedEntry?.task || ''
|
|
758
|
+
note: resultSummary || completedEntry?.task || ''
|
|
759
759
|
};
|
|
760
760
|
updatedTarget = { ...pr, ...target };
|
|
761
761
|
return prs;
|
|
@@ -1592,7 +1592,7 @@ async function runPostCompletionHooks(dispatchItem, agentId, code, stdout, confi
|
|
|
1592
1592
|
}
|
|
1593
1593
|
}
|
|
1594
1594
|
|
|
1595
|
-
if (type === WORK_TYPE.REVIEW) await updatePrAfterReview(agentId, meta?.pr, meta?.project, config);
|
|
1595
|
+
if (type === WORK_TYPE.REVIEW) await updatePrAfterReview(agentId, meta?.pr, meta?.project, config, resultSummary);
|
|
1596
1596
|
if (type === WORK_TYPE.FIX) updatePrAfterFix(meta?.pr, meta?.project, meta?.source);
|
|
1597
1597
|
checkForLearnings(agentId, config.agents[agentId], dispatchItem.task);
|
|
1598
1598
|
if (effectiveSuccess) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.777",
|
|
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"
|