@yemi33/minions 0.1.693 → 0.1.695

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,8 +1,10 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.693 (2026-04-09)
3
+ ## 0.1.695 (2026-04-09)
4
4
 
5
5
  ### Fixes
6
+ - verify/implement playbooks must include PR URL in final message
7
+ - ADO build error log fallback when targetUrl lacks buildId
6
8
  - syncPrsFromOutput missed PRs mentioned in assistant text blocks
7
9
 
8
10
  ## 0.1.692 (2026-04-09)
package/engine/ado.js CHANGED
@@ -99,16 +99,32 @@ const BUILD_ERROR_LOG_MAX_LINES = 150;
99
99
  * for failed tasks, and fetches their logs.
100
100
  * Returns truncated log text or null if unavailable.
101
101
  */
102
- async function fetchAdoBuildErrorLog(orgBase, project, failedStatus, token) {
102
+ async function fetchAdoBuildErrorLog(orgBase, project, failedStatus, token, pr) {
103
103
  try {
104
- // Extract buildId from the targetUrl (e.g. .../_build/results?buildId=12345)
104
+ // Try extracting buildId from targetUrl (e.g. .../_build/results?buildId=12345)
105
105
  const targetUrl = failedStatus?.targetUrl || '';
106
+ let buildId = null;
106
107
  const buildIdMatch = targetUrl.match(/buildId=(\d+)/);
107
- if (!buildIdMatch) {
108
- log('debug', `No buildId in targetUrl: ${targetUrl.slice(0, 120)}`);
108
+ if (buildIdMatch) {
109
+ buildId = buildIdMatch[1];
110
+ } else {
111
+ // Fallback: query recent failed builds for this PR's source branch
112
+ try {
113
+ const branch = pr?.branch || pr?.sourceRefName?.replace('refs/heads/', '');
114
+ if (branch) {
115
+ const buildsUrl = `${orgBase}/${project.adoProject}/_apis/build/builds?branchName=refs/heads/${encodeURIComponent(branch)}&statusFilter=completed&resultFilter=failed&$top=1&api-version=7.1`;
116
+ const builds = await adoFetch(buildsUrl, token);
117
+ if (builds?.value?.[0]?.id) {
118
+ buildId = String(builds.value[0].id);
119
+ log('debug', `Found buildId ${buildId} via branch query for ${branch}`);
120
+ }
121
+ }
122
+ } catch (e) { log('debug', `Branch-based build lookup failed: ${e.message}`); }
123
+ }
124
+ if (!buildId) {
125
+ log('debug', `No buildId from targetUrl or branch query: ${targetUrl.slice(0, 120)}`);
109
126
  return null;
110
127
  }
111
- const buildId = buildIdMatch[1];
112
128
 
113
129
  // Fetch build timeline to find failed tasks
114
130
  const timelineUrl = `${orgBase}/${project.adoProject}/_apis/build/builds/${buildId}/timeline?api-version=7.1`;
@@ -375,7 +391,7 @@ async function pollPrStatus(config) {
375
391
  // Fetch actual compiler/build error logs when transitioning to failing
376
392
  if (buildStatus === 'failing') {
377
393
  const failedStatusObj = buildStatuses.find(s => s.state === 'failed' || s.state === 'error');
378
- const errorLog = await fetchAdoBuildErrorLog(orgBase, project, failedStatusObj, token);
394
+ const errorLog = await fetchAdoBuildErrorLog(orgBase, project, failedStatusObj, token, pr);
379
395
  if (errorLog) {
380
396
  pr.buildErrorLog = errorLog;
381
397
  log('info', `PR ${pr.id}: fetched ${errorLog.split('\n').length} lines of build error log`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.693",
3
+ "version": "0.1.695",
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"
@@ -81,4 +81,4 @@ Include build/test status and run instructions in the PR description. If the pro
81
81
 
82
82
  ## When to Stop
83
83
 
84
- Your task is complete once you have: (1) confirmed build and tests pass, (2) pushed your branch, and (3) created the PR. Do NOT continue exploring, refactoring, or adding features beyond the task description. Stop immediately.
84
+ Your task is complete once you have: (1) confirmed build and tests pass, (2) pushed your branch, and (3) created the PR. Your final message MUST include the PR URL so the engine can track it. Stop immediately after.
@@ -153,4 +153,13 @@ Use subagents only for genuinely parallel, independent tasks (e.g., building sep
153
153
 
154
154
  ## When to Stop
155
155
 
156
- Your task is complete once you have: (1) merged dependency branches, (2) built and tested, (3) written the verification report to both locations, and (4) created the E2E PR(s). Stop after creating PRs.
156
+ Your task is complete once you have: (1) merged dependency branches, (2) built and tested, (3) written the verification report to both locations, and (4) created the E2E PR(s).
157
+
158
+ **IMPORTANT: Your final message MUST include the E2E PR URL(s) so the engine can track them.** Example final message:
159
+
160
+ ```
161
+ Verification complete. E2E PR created: https://github.com/org/repo/pull/123
162
+ Testing guide saved to prd/guides/verify-plan-name.md
163
+ ```
164
+
165
+ Stop after confirming the PR was created.