@yemi33/minions 0.1.886 → 0.1.888
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 -1
- package/engine/shared.js +14 -0
- package/engine.js +4 -6
- package/package.json +1 -1
- package/playbooks/review.md +17 -11
package/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.888 (2026-04-11)
|
|
4
4
|
|
|
5
5
|
### Features
|
|
6
6
|
- add 13 missing CC action types for full dashboard parity
|
|
7
7
|
|
|
8
8
|
### Fixes
|
|
9
|
+
- require explicit vote step in review playbook
|
|
9
10
|
- CC queued message silently retries on 429 after abort
|
|
10
11
|
- track e2e/ and fix/ branches in PR reconciler
|
|
11
12
|
- show stale banner on paused PRDs (#905) (#909)
|
|
@@ -17,6 +18,7 @@
|
|
|
17
18
|
- include started_at in done/error agent status so duration renders
|
|
18
19
|
|
|
19
20
|
### Other
|
|
21
|
+
- refactor: extract reopenWorkItem helper to shared.js
|
|
20
22
|
- simplify: fix CC regenerate-plan field name, remove dead revise-and-regenerate handler
|
|
21
23
|
- remove doc-chat plan auto-pause in favour of stale banner only
|
|
22
24
|
- simplify: CC actions cleanup — missing wakeEngine, redundant refresh, hardened fallback
|
package/engine/shared.js
CHANGED
|
@@ -910,6 +910,19 @@ function mutateWorkItems(filePath, mutator) {
|
|
|
910
910
|
}, { defaultValue: [] });
|
|
911
911
|
}
|
|
912
912
|
|
|
913
|
+
/**
|
|
914
|
+
* Reset a done work item for re-dispatch. Clears completion/dispatch metadata.
|
|
915
|
+
* Caller must set description/title separately.
|
|
916
|
+
*/
|
|
917
|
+
function reopenWorkItem(wi) {
|
|
918
|
+
wi.status = WI_STATUS.PENDING;
|
|
919
|
+
wi._reopened = true;
|
|
920
|
+
delete wi.completedAt;
|
|
921
|
+
delete wi.dispatched_at;
|
|
922
|
+
delete wi.dispatched_to;
|
|
923
|
+
wi._retryCount = 0;
|
|
924
|
+
}
|
|
925
|
+
|
|
913
926
|
/**
|
|
914
927
|
* Atomic read-modify-write for pull-requests JSON files.
|
|
915
928
|
* Wraps mutateJsonFileLocked with defaultValue of [].
|
|
@@ -1043,6 +1056,7 @@ module.exports = {
|
|
|
1043
1056
|
withFileLock,
|
|
1044
1057
|
mutateJsonFileLocked,
|
|
1045
1058
|
mutateWorkItems,
|
|
1059
|
+
reopenWorkItem,
|
|
1046
1060
|
mutatePullRequests,
|
|
1047
1061
|
uid,
|
|
1048
1062
|
uniquePath,
|
package/engine.js
CHANGED
|
@@ -1520,12 +1520,11 @@ function materializePlansAsWorkItems(config) {
|
|
|
1520
1520
|
|
|
1521
1521
|
mutateWorkItems(wiPath, existingItems => {
|
|
1522
1522
|
for (const item of projItems) {
|
|
1523
|
-
// Re-open:
|
|
1523
|
+
// Re-open: 'updated' or 'missing' re-opens a done work item (#906)
|
|
1524
1524
|
const existingWi = existingItems.find(w => w.id === item.id);
|
|
1525
|
-
const shouldReopen = item.status === PRD_ITEM_STATUS.UPDATED;
|
|
1525
|
+
const shouldReopen = item.status === PRD_ITEM_STATUS.UPDATED || item.status === PRD_ITEM_STATUS.MISSING;
|
|
1526
1526
|
if (existingWi && DONE_STATUSES.has(existingWi.status) && shouldReopen) {
|
|
1527
|
-
existingWi
|
|
1528
|
-
existingWi._reopened = true;
|
|
1527
|
+
shared.reopenWorkItem(existingWi);
|
|
1529
1528
|
existingWi.description = buildWiDescription(item, file);
|
|
1530
1529
|
existingWi.title = `Implement: ${item.name}`;
|
|
1531
1530
|
created++;
|
|
@@ -1609,8 +1608,7 @@ function materializePlansAsWorkItems(config) {
|
|
|
1609
1608
|
mutateWorkItems(rPath, items => {
|
|
1610
1609
|
const target = items.find(w => w.id === itemId);
|
|
1611
1610
|
if (target && DONE_STATUSES.has(target.status)) {
|
|
1612
|
-
target
|
|
1613
|
-
target._reopened = true;
|
|
1611
|
+
shared.reopenWorkItem(target);
|
|
1614
1612
|
target.description = buildWiDescription(rItem, file);
|
|
1615
1613
|
target.title = `Implement: ${rItem.name}`;
|
|
1616
1614
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.888",
|
|
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"
|
package/playbooks/review.md
CHANGED
|
@@ -40,26 +40,28 @@ Use subagents only for genuinely parallel, independent tasks (e.g., reviewing un
|
|
|
40
40
|
- Verdict: **APPROVE**
|
|
41
41
|
- Note any minor non-blocking suggestions
|
|
42
42
|
|
|
43
|
-
## Post Review —
|
|
43
|
+
## Post Review — Two required actions, both mandatory
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
You MUST complete BOTH steps below. The review is NOT done until both are confirmed. A comment without a vote is an incomplete review.
|
|
46
46
|
|
|
47
|
-
### Step 1:
|
|
47
|
+
### Step 1: Post a detailed review comment
|
|
48
48
|
|
|
49
49
|
{{pr_comment_instructions}}
|
|
50
|
-
- pullRequestId: `{{pr_number}}`
|
|
51
50
|
- content: Your full review with verdict, findings, and sign-off
|
|
52
51
|
- Sign: `Review by Minions ({{agent_name}} — {{agent_role}})`
|
|
53
52
|
|
|
54
|
-
### Step 2:
|
|
53
|
+
### Step 2: Submit a formal review vote — THIS IS REQUIRED
|
|
54
|
+
|
|
55
|
+
**This is a separate action from Step 1.** Posting a comment does NOT submit a vote. You must explicitly run the vote command:
|
|
55
56
|
|
|
56
57
|
{{pr_vote_instructions}}
|
|
57
|
-
-
|
|
58
|
-
- If your verdict is **
|
|
59
|
-
- If
|
|
60
|
-
|
|
58
|
+
- If your verdict is **APPROVE**: use `--approve`
|
|
59
|
+
- If your verdict is **REQUEST_CHANGES**: use `--request-changes`
|
|
60
|
+
- If you have minor non-blocking suggestions only: use `--approve` with a note
|
|
61
|
+
|
|
62
|
+
**Do not stop after Step 1.** The task is incomplete until Step 2 is done.
|
|
61
63
|
|
|
62
|
-
|
|
64
|
+
After running the vote command, confirm it succeeded (check the command output for errors). If it fails, retry once.
|
|
63
65
|
|
|
64
66
|
## Handling Merge Conflicts
|
|
65
67
|
If you encounter merge conflicts (e.g., the PR shows conflicts):
|
|
@@ -69,5 +71,9 @@ If you encounter merge conflicts (e.g., the PR shows conflicts):
|
|
|
69
71
|
|
|
70
72
|
## When to Stop
|
|
71
73
|
|
|
72
|
-
Your task is complete
|
|
74
|
+
Your task is complete only when BOTH of these are true:
|
|
75
|
+
1. Review comment posted (Step 1)
|
|
76
|
+
2. Formal vote submitted via `gh pr review --approve` or `--request-changes` (Step 2)
|
|
77
|
+
|
|
78
|
+
Do NOT stop after only posting a comment. Do NOT continue reading unrelated files after voting.
|
|
73
79
|
|