@yemi33/minions 0.1.770 → 0.1.772

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 CHANGED
@@ -1,5 +1,15 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.772 (2026-04-10)
4
+
5
+ ### Fixes
6
+ - filter CI bot noise from PR human comment detection
7
+
8
+ ## 0.1.771 (2026-04-10)
9
+
10
+ ### Fixes
11
+ - clarify timeout.js error reason — "Exited with error" vs "Completed"
12
+
3
13
  ## 0.1.770 (2026-04-10)
4
14
 
5
15
  ### Features
package/engine/ado.js CHANGED
@@ -459,6 +459,11 @@ async function pollPrHumanComments(config) {
459
459
  for (const comment of (thread.comments || [])) {
460
460
  if (!comment.content || comment.commentType === 'system') continue;
461
461
  if (/\bMinions\s*\(/i.test(comment.content)) continue; // skip minions's own comments
462
+ // Skip bot/service account comments
463
+ const authorName = (comment.author?.displayName || '').toLowerCase();
464
+ if (/\b(bot|service|build|pipeline|codecov|sonar)\b/i.test(authorName)) continue;
465
+ // Skip automated status comments (coverage, build reports)
466
+ if (/^#{1,3}\s*(Coverage|Build|Test|Deploy|Pipeline)\s*(Report|Status|Result|Summary)/i.test(comment.content)) continue;
462
467
 
463
468
  const entry = {
464
469
  threadId: thread.id,
package/engine/github.js CHANGED
@@ -441,10 +441,17 @@ async function pollPrHumanComments(config) {
441
441
  ...(Array.isArray(reviewComments) ? reviewComments : []).map(c => ({ ...c, _type: 'review' }))
442
442
  ];
443
443
 
444
- // Filter out bot comments and minions's own comments
444
+ // Filter out bot comments, minions's own comments, and CI noise
445
445
  const humanComments = allComments.filter(c => {
446
446
  if (c.user?.type === 'Bot') return false;
447
447
  if (/\bMinions\s*\(/i.test(c.body || '')) return false;
448
+ // Common CI bot usernames
449
+ const login = (c.user?.login || '').toLowerCase();
450
+ if (/\b(bot|codecov|sonar|dependabot|renovate|github-actions|azure-pipelines)\b/i.test(login)) return false;
451
+ // Automated status comments (coverage reports, build badges, etc.)
452
+ const body = c.body || '';
453
+ 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; // badge images
448
455
  return true;
449
456
  });
450
457
 
package/engine/timeout.js CHANGED
@@ -206,7 +206,7 @@ function checkTimeouts(config) {
206
206
  safeWrite(outputLogPath, `# Output for dispatch ${item.id}\n# Exit code: ${isSuccess ? 0 : 1}\n# Completed: ${ts()}\n# Detected via output scan\n\n## Result\n${text || '(no text)'}\n`);
207
207
  } catch (e) { log('warn', 'parse output result: ' + e.message); }
208
208
 
209
- completeDispatch(item.id, isSuccess ? DISPATCH_RESULT.SUCCESS : DISPATCH_RESULT.ERROR, 'Completed (detected from output)');
209
+ completeDispatch(item.id, isSuccess ? DISPATCH_RESULT.SUCCESS : DISPATCH_RESULT.ERROR, isSuccess ? 'Completed (detected from output)' : 'Exited with error (detected from output)');
210
210
 
211
211
  // Run post-completion hooks via shared helper (async — fire and forget in timeout context)
212
212
  const fullLogForHooks = safeRead(liveLogPath) || liveLog;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.770",
3
+ "version": "0.1.772",
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"