@yemi33/minions 0.1.380 → 0.1.382
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 +7 -1
- package/engine/ado.js +2 -2
- package/engine/github.js +1 -1
- package/engine/lifecycle.js +2 -2
- package/engine/timeout.js +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.382 (2026-04-06)
|
|
4
4
|
|
|
5
5
|
### Fixes
|
|
6
|
+
- branch regex missed W- and PL- work item IDs — wrong PR agent attribution
|
|
7
|
+
|
|
8
|
+
## 0.1.381 (2026-04-06)
|
|
9
|
+
|
|
10
|
+
### Fixes
|
|
11
|
+
- clear failReason on all retry-to-pending paths
|
|
6
12
|
- clear failReason and noPr on no-PR retry reset
|
|
7
13
|
- PR duplicate race condition — convert safeWrite to mutateJsonFileLocked (#240)
|
|
8
14
|
|
package/engine/ado.js
CHANGED
|
@@ -379,8 +379,8 @@ async function reconcilePrs(config) {
|
|
|
379
379
|
const branch = (adoPr.sourceRefName || '').replace('refs/heads/', '');
|
|
380
380
|
const title = adoPr.title || '';
|
|
381
381
|
// Extract item ID from branch name or PR title (e.g., feat(P-2cafdc2a): ...)
|
|
382
|
-
const branchMatch = branch.match(/(P-[a-z0-9]{6,})/i) || branch.match(/(PL-
|
|
383
|
-
const titleMatch = title.match(/\((P-[a-z0-9]{6,})\)/) || title.match(/\((
|
|
382
|
+
const branchMatch = branch.match(/(P-[a-z0-9]{6,})/i) || branch.match(/(W-[a-z0-9]{6,})/i) || branch.match(/(PL-[a-z0-9]{6,})/i);
|
|
383
|
+
const titleMatch = title.match(/\((P-[a-z0-9]{6,})\)/) || title.match(/\((W-[a-z0-9]{6,})\)/) || title.match(/\((W-[a-z0-9]{6,})\)/) || title.match(/\((PL-[a-z0-9]{6,})\)/);
|
|
384
384
|
const linkedItemId = branchMatch?.[1] || titleMatch?.[1] || null;
|
|
385
385
|
const linkedItem = linkedItemId ? allItems.find(i => i.id === linkedItemId) : null;
|
|
386
386
|
const confirmedItemId = linkedItem ? linkedItemId : null;
|
package/engine/github.js
CHANGED
|
@@ -379,7 +379,7 @@ async function reconcilePrs(config) {
|
|
|
379
379
|
for (const ghPr of ghPrs) {
|
|
380
380
|
const prId = `PR-${ghPr.number}`;
|
|
381
381
|
const branch = ghPr.head?.ref || '';
|
|
382
|
-
const wiMatch = branch.match(/(P-[a-z0-9]{6,})/i) || branch.match(/(PL-
|
|
382
|
+
const wiMatch = branch.match(/(P-[a-z0-9]{6,})/i) || branch.match(/(W-[a-z0-9]{6,})/i) || branch.match(/(PL-[a-z0-9]{6,})/i);
|
|
383
383
|
const linkedItemId = wiMatch ? wiMatch[1] : null;
|
|
384
384
|
const linkedItem = linkedItemId ? allItems.find(i => i.id === linkedItemId) : null;
|
|
385
385
|
const confirmedItemId = linkedItem ? linkedItemId : null;
|
package/engine/lifecycle.js
CHANGED
|
@@ -805,7 +805,7 @@ async function handlePostMerge(pr, project, config, newStatus) {
|
|
|
805
805
|
// Resolve linked work item from pr-links or PR branch name
|
|
806
806
|
let mergedItemId = getPrLinks()[pr.id];
|
|
807
807
|
if (!mergedItemId && pr.branch) {
|
|
808
|
-
const branchMatch = pr.branch.match(/(P-[a-z0-9]{6,})/i) || pr.branch.match(/(W-[a-z0-9]
|
|
808
|
+
const branchMatch = pr.branch.match(/(P-[a-z0-9]{6,})/i) || pr.branch.match(/(W-[a-z0-9]{6,})/i) || pr.branch.match(/(PL-[a-z0-9]{6,})/i);
|
|
809
809
|
if (branchMatch) mergedItemId = branchMatch[1];
|
|
810
810
|
}
|
|
811
811
|
|
|
@@ -1193,7 +1193,7 @@ function runPostCompletionHooks(dispatchItem, agentId, code, stdout, config) {
|
|
|
1193
1193
|
if (wi.status === WI_STATUS.DONE || wi.completedAt) {
|
|
1194
1194
|
log('info', `Skip retry for ${meta.item.id} — already completed`);
|
|
1195
1195
|
} else {
|
|
1196
|
-
wi._retryCount = retries + 1; wi.status = WI_STATUS.PENDING; delete wi.dispatched_at; delete wi.dispatched_to;
|
|
1196
|
+
wi._retryCount = retries + 1; wi.status = WI_STATUS.PENDING; delete wi.dispatched_at; delete wi.dispatched_to; delete wi.failReason;
|
|
1197
1197
|
if (type === WORK_TYPE.DECOMPOSE) delete wi._decomposing;
|
|
1198
1198
|
shared.safeWrite(wiPath, items);
|
|
1199
1199
|
}
|
package/engine/timeout.js
CHANGED
|
@@ -254,6 +254,7 @@ function checkTimeouts(config) {
|
|
|
254
254
|
delete item.dispatched_at;
|
|
255
255
|
delete item.dispatched_to;
|
|
256
256
|
delete item._pendingReason;
|
|
257
|
+
delete item.failReason;
|
|
257
258
|
} else {
|
|
258
259
|
log('warn', `Reconcile: work item ${item.id} failed after ${retries} retries — marking as failed`);
|
|
259
260
|
item.status = WI_STATUS.FAILED;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.382",
|
|
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"
|