@yemi33/minions 0.1.1105 → 0.1.1106

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,11 +1,12 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.1105 (2026-04-18)
3
+ ## 0.1.1106 (2026-04-18)
4
4
 
5
5
  ### Features
6
6
  - seed realActivityMap at spawn time, stamp pid in live-output (#1200)
7
7
 
8
8
  ### Fixes
9
+ - preserve buildErrorLog through transient build states (#1232) (#1274)
9
10
  - annotate fast-exit empty-output failures with diagnostic hint (#1276)
10
11
  - invalidate PRD cache on pr-links.json change + guard aggregate PRs (#1220) (#1272)
11
12
  - pass --add-dir for minions + ~/.claude to agents (#1271)
package/engine/ado.js CHANGED
@@ -465,6 +465,11 @@ async function pollPrStatus(config) {
465
465
  } catch (e) { log('warn', `ADO build query for ${pr.id}: ${e.message}`); }
466
466
  }
467
467
 
468
+ // Record actual poll time — makes lastBuildCheck reflect when the engine last
469
+ // talked to ADO, not when the agent was dispatched. Issue #1233.
470
+ pr.lastBuildCheck = ts();
471
+ updated = true;
472
+
468
473
  if (pr.buildStatus !== buildStatus) {
469
474
  log('info', `PR ${pr.id} build: ${pr.buildStatus || 'none'} → ${buildStatus}${buildFailReason ? ' (' + buildFailReason + ')' : ''}`);
470
475
  pr.buildStatus = buildStatus;
@@ -475,9 +480,17 @@ async function pollPrStatus(config) {
475
480
  if (buildStatus === 'failing') delete pr._autoCompleted;
476
481
  if (buildStatus !== 'failing') {
477
482
  delete pr._buildFailNotified;
478
- delete pr.buildErrorLog;
479
- // Reset build fix retry counter on recovery allows fresh auto-fix cycles if build breaks again
480
- if (pr.buildFixAttempts) { delete pr.buildFixAttempts; delete pr.buildFixEscalated; }
483
+ // Preserve buildErrorLog + buildFixAttempts through transient 'none'/'running'
484
+ // transitions only clear on confirmed 'passing' recovery. Issue #1232: 'none'
485
+ // can also occur when ADO recomputes the merge commit after a target-branch
486
+ // update but no new builds have been triggered yet (filter by sourceVersion
487
+ // returns []), which previously wiped the last known error log and caused
488
+ // fix agents to be dispatched blind.
489
+ if (buildStatus === 'passing') {
490
+ delete pr.buildErrorLog;
491
+ // Reset build fix retry counter on recovery — allows fresh auto-fix cycles if build breaks again
492
+ if (pr.buildFixAttempts) { delete pr.buildFixAttempts; delete pr.buildFixEscalated; }
493
+ }
481
494
  }
482
495
  updated = true;
483
496
 
package/engine/github.js CHANGED
@@ -422,6 +422,10 @@ async function pollPrStatus(config) {
422
422
  if (prData.state === 'open' && prData.head?.sha) {
423
423
  const checksData = await ghApi(`/commits/${prData.head.sha}/check-runs`, slug);
424
424
  if (checksData && checksData.check_runs) {
425
+ // Record actual poll time — makes lastBuildCheck reflect when the engine last
426
+ // talked to GitHub, not when the agent was dispatched. Issue #1233.
427
+ pr.lastBuildCheck = ts();
428
+ updated = true;
425
429
  const runs = checksData.check_runs;
426
430
  let buildStatus = 'none';
427
431
  let buildFailReason = '';
@@ -452,9 +456,15 @@ async function pollPrStatus(config) {
452
456
  if (buildStatus === 'failing') delete pr._autoCompleted; // allow re-merge after fix
453
457
  if (buildStatus !== 'failing') {
454
458
  delete pr._buildFailNotified;
455
- delete pr.buildErrorLog;
456
- // Reset build fix retry counter on recovery allows fresh auto-fix cycles if build breaks again
457
- if (pr.buildFixAttempts) { delete pr.buildFixAttempts; delete pr.buildFixEscalated; }
459
+ // Preserve buildErrorLog + buildFixAttempts through transient 'none'/'running'
460
+ // transitions only clear on confirmed 'passing' recovery. Issue #1232:
461
+ // clearing on every non-failing transition blinded the next fix agent
462
+ // while a queued build was still running.
463
+ if (buildStatus === 'passing') {
464
+ delete pr.buildErrorLog;
465
+ // Reset build fix retry counter on recovery — allows fresh auto-fix cycles if build breaks again
466
+ if (pr.buildFixAttempts) { delete pr.buildFixAttempts; delete pr.buildFixEscalated; }
467
+ }
458
468
  }
459
469
  updated = true;
460
470
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.1105",
3
+ "version": "0.1.1106",
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"