@yemi33/minions 0.1.1668 → 0.1.1670

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,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.1670 (2026-05-02)
4
+
5
+ ### Features
6
+ - make ADO PR titles authoritative (#1965)
7
+ - gate pendingFix clear (#1964)
8
+
3
9
  ## 0.1.1668 (2026-05-01)
4
10
 
5
11
  ### Fixes
package/engine/ado.js CHANGED
@@ -138,16 +138,7 @@ function clearBuildStatusStale(pr) {
138
138
  if (pr._buildStatusDetail) delete pr._buildStatusDetail;
139
139
  }
140
140
 
141
- function isPlaceholderPrTitle(title, prNum) {
142
- const text = String(title || '').trim();
143
- if (!text) return true;
144
- if (/\bpolling\.\.\./i.test(text)) return true;
145
- if (String(prNum || '') && (text === `PR #${prNum}` || text === `PR-${prNum}`)) return true;
146
- if (/[{}"\[\]]/.test(text)) return true;
147
- return /^[0-9a-f-]{8,}$/i.test(text);
148
- }
149
-
150
- function applyAdoPrMetadata(pr, prData, prNum) {
141
+ function applyAdoPrMetadata(pr, prData) {
151
142
  if (!pr || !prData) return false;
152
143
  let updated = false;
153
144
 
@@ -160,8 +151,9 @@ function applyAdoPrMetadata(pr, prData, prNum) {
160
151
  }
161
152
 
162
153
  const title = String(prData.title || '').trim();
163
- if (title && isPlaceholderPrTitle(pr.title, prNum) && pr.title !== title.slice(0, 120)) {
164
- pr.title = title.slice(0, 120);
154
+ const storedTitle = title.slice(0, 120);
155
+ if (storedTitle && pr.title !== storedTitle) {
156
+ pr.title = storedTitle;
165
157
  updated = true;
166
158
  }
167
159
 
@@ -496,7 +488,7 @@ async function pollPrStatus(config) {
496
488
 
497
489
  const prData = await adoFetch(`${repoBase}?api-version=7.1`, token);
498
490
 
499
- if (applyAdoPrMetadata(pr, prData, prNum)) updated = true;
491
+ if (applyAdoPrMetadata(pr, prData)) updated = true;
500
492
 
501
493
  let newStatus = pr.status;
502
494
  if (prData.status === 'completed') newStatus = PR_STATUS.MERGED;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "runtime": "copilot",
3
3
  "models": null,
4
- "cachedAt": "2026-05-01T23:20:43.938Z"
4
+ "cachedAt": "2026-05-02T00:03:38.474Z"
5
5
  }
@@ -1416,9 +1416,8 @@ function updatePrAfterFix(pr, project, source) {
1416
1416
  if (!target) return prs;
1417
1417
  // Never downgrade from approved — fix was dispatched but PR is already approved
1418
1418
  if (target.reviewStatus !== 'approved') target.reviewStatus = 'waiting';
1419
- // Always clear pendingFix — a fix dispatch (regardless of source) addresses all pending feedback
1420
- if (target.humanFeedback) target.humanFeedback.pendingFix = false;
1421
1419
  if (source === 'pr-human-feedback') {
1420
+ if (target.humanFeedback) target.humanFeedback.pendingFix = false;
1422
1421
  target.minionsReview = { ...target.minionsReview, note: 'Fixed human feedback, awaiting re-review', fixedAt: ts() };
1423
1422
  log('info', `Updated ${pr.id} → cleared humanFeedback.pendingFix, reset to waiting for re-review`);
1424
1423
  } else {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.1668",
3
+ "version": "0.1.1670",
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"