@yemi33/minions 0.1.1630 → 0.1.1632

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,9 +1,12 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.1630 (2026-04-29)
3
+ ## 0.1.1632 (2026-04-30)
4
4
 
5
5
  ### Features
6
- - isolate live integration tests
6
+ - guard malformed PR context
7
+ - clear stale pending reason on retry
8
+
9
+ ## 0.1.1629 (2026-04-29)
7
10
 
8
11
  ### Other
9
12
  - test(cli): add unit tests for runtime-flag helpers
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "runtime": "copilot",
3
3
  "models": null,
4
- "cachedAt": "2026-04-29T18:10:31.030Z"
4
+ "cachedAt": "2026-04-30T08:44:52.884Z"
5
5
  }
@@ -263,6 +263,7 @@ function completeDispatch(id, result = DISPATCH_RESULT.SUCCESS, reason = '', res
263
263
  delete wi.failedAt;
264
264
  delete wi.dispatched_at;
265
265
  delete wi.dispatched_to;
266
+ delete wi._pendingReason;
266
267
  }
267
268
  });
268
269
  }
@@ -1701,6 +1701,7 @@ async function runPostCompletionHooks(dispatchItem, agentId, code, stdout, confi
1701
1701
  w._lastRetryReason = 'no review verdict';
1702
1702
  delete w.dispatched_at;
1703
1703
  delete w.completedAt;
1704
+ delete w._pendingReason;
1704
1705
  log('warn', `Review ${meta.item.id} completed without verdict — auto-retry ${retries + 1}/${ENGINE_DEFAULTS.maxRetries}`);
1705
1706
  } else {
1706
1707
  w.status = WI_STATUS.FAILED;
@@ -570,7 +570,7 @@ function buildAgentContext(agentId, config, project) {
570
570
  } catch (e) { log('warn', 'read central pull-requests: ' + e.message); }
571
571
  if (allPrs.length > 0) {
572
572
  const prLines = allPrs.map(pr =>
573
- `- **${pr.id}** (${pr._project}): ${(pr.title || '').slice(0, 80)} [${(pr.reviewStatus || 'pending')}${pr.buildStatus === 'failing' ? ', BUILD FAILING' : ''}]${pr.branch ? ' branch: `' + pr.branch + '`' : ''}${pr._context ? ' — ' + pr._context.slice(0, 100) : ''}`
573
+ `- **${pr.id}** (${pr._project}): ${(pr.title || '').slice(0, 80)} [${(pr.reviewStatus || 'pending')}${pr.buildStatus === 'failing' ? ', BUILD FAILING' : ''}]${pr.branch ? ' branch: `' + pr.branch + '`' : ''}${formatPrContextSuffix(pr)}`
574
574
  );
575
575
  context += `## Active Pull Requests\n\n${prLines.join('\n')}\n\n`;
576
576
  }
@@ -589,6 +589,18 @@ function buildAgentContext(agentId, config, project) {
589
589
  return context;
590
590
  }
591
591
 
592
+ function formatPrContextSuffix(pr) {
593
+ if (!Object.prototype.hasOwnProperty.call(pr, '_context')) return '';
594
+ const value = pr._context;
595
+ if (value === undefined || value === '') return '';
596
+ if (typeof value === 'string') return ` — ${value.slice(0, 100)}`;
597
+
598
+ const type = value === null ? 'null' : Array.isArray(value) ? 'array' : typeof value;
599
+ const serialized = (value !== null && typeof value === 'object') ? JSON.stringify(value) : String(value);
600
+ const preview = serialized ? `: ${serialized.slice(0, 100)}` : '';
601
+ return ` — [invalid _context: expected string, got ${type}${preview}]`;
602
+ }
603
+
592
604
  // ─── Work Discovery Helpers ──────────────────────────────────────────────────
593
605
 
594
606
  function buildBaseVars(agentId, config, project) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.1630",
3
+ "version": "0.1.1632",
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"