@yemi33/minions 0.1.885 → 0.1.887

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,11 +1,13 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.885 (2026-04-11)
3
+ ## 0.1.887 (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
10
+ - CC queued message silently retries on 429 after abort
9
11
  - track e2e/ and fix/ branches in PR reconciler
10
12
  - show stale banner on paused PRDs (#905) (#909)
11
13
  - regenerate-plan now dispatches diff-aware plan-to-prd agent
@@ -531,6 +531,14 @@ async function _ccDoSend(message, skipUserMsg) {
531
531
  });
532
532
 
533
533
  if (!res.ok) {
534
+ // 429 = server still processing previous request (abort race) — retry silently up to 3 times
535
+ if (res.status === 429 && (!activeTab._429retries || activeTab._429retries < 3)) {
536
+ activeTab._429retries = (activeTab._429retries || 0) + 1;
537
+ _cleanupStreamDiv();
538
+ await new Promise(function(r) { setTimeout(r, 1500); });
539
+ return await _ccDoSend(message, true);
540
+ }
541
+ activeTab._429retries = 0;
534
542
  _cleanupStreamDiv();
535
543
  var errText = await res.text();
536
544
  addMsg('assistant', '<span style="color:var(--red)">' + escHtml(errText || 'CC error') + '</span>' +
@@ -648,7 +656,7 @@ async function _ccDoSend(message, skipUserMsg) {
648
656
  ' <button onclick="ccNewTab()" style="margin-top:6px;padding:4px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:4px;color:var(--muted);cursor:pointer;font-size:11px">New Session</button>');
649
657
  }
650
658
  } finally {
651
- if (activeTab) { activeTab._sending = false; activeTab._abortController = null; delete activeTab._streamedText; delete activeTab._toolsUsed; delete activeTab._sendStartedAt; }
659
+ if (activeTab) { activeTab._sending = false; activeTab._abortController = null; activeTab._429retries = 0; delete activeTab._streamedText; delete activeTab._toolsUsed; delete activeTab._sendStartedAt; }
652
660
  _ccSending = (_ccTabs.some(function(t) { return t._sending; }));
653
661
  ccRenderTabBar();
654
662
  try { clearInterval(phaseTimer); } catch { /* may not be defined if error before reader */ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.885",
3
+ "version": "0.1.887",
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"
@@ -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 — Comment AND Vote on PR
43
+ ## Post Review — Two required actions, both mandatory
44
44
 
45
- Do both of the following:
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: Leave a detailed review comment
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: Set your vote on the PR
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
- - pullRequestId: `{{pr_number}}`
58
- - If your verdict is **APPROVE**: vote `10` (approved)
59
- - If your verdict is **REQUEST_CHANGES**: vote `-10` (rejected)
60
- - If you have minor non-blocking suggestions: vote `5` (approved with suggestions)
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
- This vote is visible to human reviewers in the PR UI and helps them understand the minions's assessment.
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 once you have: (1) posted your review comment on the PR, and (2) cast your vote. Do NOT continue reading unrelated files or performing additional analysis. Stop after voting.
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