@yemi33/minions 0.1.944 → 0.1.946
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 +3 -2
- package/dashboard.js +2 -8
- package/engine/ado.js +19 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.946 (2026-04-14)
|
|
4
4
|
|
|
5
5
|
### Features
|
|
6
6
|
- make ADO poll frequency configurable and ungate reconcilePrs
|
|
@@ -25,6 +25,7 @@
|
|
|
25
25
|
- bump plan-to-prd max turns from 20 to 35
|
|
26
26
|
|
|
27
27
|
### Fixes
|
|
28
|
+
- tighten build query guard to require mergeCommitId
|
|
28
29
|
- restore sourceVersion filter after refs/pull merge ref switch
|
|
29
30
|
- use refs/pull/{id}/merge for build status scoping
|
|
30
31
|
- use repositoryId+reasonFilter for ADO build query
|
|
@@ -44,9 +45,9 @@
|
|
|
44
45
|
- 429 retry on abort race applies to all sends, not just queued
|
|
45
46
|
- show actionable failure context instead of Unknown error (#1003)
|
|
46
47
|
- prioritize error_max_turns over permission-blocked in classifyFailure (#1001)
|
|
47
|
-
- optimistic archive hides both PRD and linked source plan simultaneously
|
|
48
48
|
|
|
49
49
|
### Other
|
|
50
|
+
- refactor(ado): move PR enrichment fetch into fetchAdoPrMetadata helper
|
|
50
51
|
- refactor: Make renderLiveChatMessage a thin wrapper over renderAgentOutput
|
|
51
52
|
- test(preflight): add unit tests for findClaudeBinary, runPreflight, printPreflight, checkOrExit (#953)
|
|
52
53
|
- test(meeting): add unit tests for key functions (#957)
|
package/dashboard.js
CHANGED
|
@@ -4228,14 +4228,8 @@ What would you like to discuss or change? When you're happy, say "approve" and I
|
|
|
4228
4228
|
} else if (adoMatch) {
|
|
4229
4229
|
const [, adoOrg, adoProj, adoRepo] = adoMatch;
|
|
4230
4230
|
try {
|
|
4231
|
-
const {
|
|
4232
|
-
|
|
4233
|
-
if (token) {
|
|
4234
|
-
const apiUrl = `https://dev.azure.com/${adoOrg}/${adoProj}/_apis/git/repositories/${adoRepo}/pullrequests/${prNum}?api-version=7.1`;
|
|
4235
|
-
const result = await shared.execAsync(`curl -s --max-time 10 -H "Authorization: Bearer ${token}" "${apiUrl}"`, { encoding: 'utf-8', timeout: 15000, windowsHide: true });
|
|
4236
|
-
const d = JSON.parse(result);
|
|
4237
|
-
prData = { title: d.title, description: d.description, branch: d.sourceRefName?.replace('refs/heads/', ''), author: d.createdBy?.displayName };
|
|
4238
|
-
}
|
|
4231
|
+
const { fetchAdoPrMetadata } = require('./engine/ado');
|
|
4232
|
+
prData = await fetchAdoPrMetadata(prNum, adoOrg, adoProj, adoRepo);
|
|
4239
4233
|
} catch { /* ADO token may not be available */ }
|
|
4240
4234
|
}
|
|
4241
4235
|
if (!prData) return;
|
package/engine/ado.js
CHANGED
|
@@ -379,7 +379,7 @@ async function pollPrStatus(config) {
|
|
|
379
379
|
let buildStatuses = []; // for error log fetching
|
|
380
380
|
|
|
381
381
|
const mergeCommitId = prData.lastMergeCommit?.commitId;
|
|
382
|
-
if (prNumber) {
|
|
382
|
+
if (prNumber && mergeCommitId) {
|
|
383
383
|
try {
|
|
384
384
|
// branchName=refs/pull/{id}/merge scopes server-side to this PR's builds.
|
|
385
385
|
// sourceVersion filter then narrows to the current merge commit — a PR updated
|
|
@@ -387,7 +387,7 @@ async function pollPrStatus(config) {
|
|
|
387
387
|
const mergeRef = encodeURIComponent(`refs/pull/${prNumber}/merge`);
|
|
388
388
|
const buildsUrl = `${orgBase}/${project.adoProject}/_apis/build/builds?branchName=${mergeRef}&repositoryId=${project.repositoryId}&repositoryType=TfsGit&$top=25&api-version=7.1`;
|
|
389
389
|
const buildsData = await adoFetch(buildsUrl, token);
|
|
390
|
-
const prBuilds = (buildsData?.value || []).filter(b =>
|
|
390
|
+
const prBuilds = (buildsData?.value || []).filter(b => b.sourceVersion === mergeCommitId);
|
|
391
391
|
|
|
392
392
|
if (prBuilds.length > 0) {
|
|
393
393
|
// partiallySucceeded = warnings, not failures — counts as passing
|
|
@@ -768,6 +768,22 @@ async function checkLiveReviewStatus(pr, project) {
|
|
|
768
768
|
}
|
|
769
769
|
}
|
|
770
770
|
|
|
771
|
+
// Fetch basic PR metadata (title, description, branch, author) for a manually-linked ADO PR.
|
|
772
|
+
// Uses adoFetch so retry logic and circuit breaker apply — dashboard.js PR enrichment calls this.
|
|
773
|
+
async function fetchAdoPrMetadata(prNum, adoOrg, adoProj, adoRepo) {
|
|
774
|
+
const token = await getAdoToken();
|
|
775
|
+
if (!token) return null;
|
|
776
|
+
const url = `https://dev.azure.com/${adoOrg}/${adoProj}/_apis/git/repositories/${adoRepo}/pullrequests/${prNum}?api-version=7.1`;
|
|
777
|
+
const d = await adoFetch(url, token);
|
|
778
|
+
if (!d) return null;
|
|
779
|
+
return {
|
|
780
|
+
title: d.title || '',
|
|
781
|
+
description: d.description || '',
|
|
782
|
+
branch: d.sourceRefName?.replace('refs/heads/', '') || '',
|
|
783
|
+
author: d.createdBy?.displayName || '',
|
|
784
|
+
};
|
|
785
|
+
}
|
|
786
|
+
|
|
771
787
|
module.exports = {
|
|
772
788
|
getAdoToken,
|
|
773
789
|
adoFetch,
|
|
@@ -777,5 +793,6 @@ module.exports = {
|
|
|
777
793
|
checkLiveReviewStatus,
|
|
778
794
|
needsAdoPollRetry,
|
|
779
795
|
isAdoAuthError, // exported for testing
|
|
796
|
+
fetchAdoPrMetadata,
|
|
780
797
|
};
|
|
781
798
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.946",
|
|
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"
|