@yemi33/minions 0.1.884 → 0.1.886

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.884 (2026-04-11)
3
+ ## 0.1.886 (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
+ - CC queued message silently retries on 429 after abort
10
+ - track e2e/ and fix/ branches in PR reconciler
9
11
  - show stale banner on paused PRDs (#905) (#909)
10
12
  - regenerate-plan now dispatches diff-aware plan-to-prd agent
11
13
  - suppress false [steering-failed] banner when agent responded (closes #894) (#896)
@@ -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/engine/github.js CHANGED
@@ -562,7 +562,7 @@ async function pollPrHumanComments(config) {
562
562
 
563
563
  async function reconcilePrs(config) {
564
564
  const projects = getProjects(config).filter(isGitHub);
565
- const branchPatterns = [/^work\//i, /^feat\//i, /^user\/yemishin\//i];
565
+ const branchPatterns = [/^work\//i, /^feat\//i, /^fix\//i, /^e2e\//i, /^user\/yemishin\//i];
566
566
  let totalAdded = 0;
567
567
 
568
568
  for (const project of projects) {
@@ -633,8 +633,11 @@ async function reconcilePrs(config) {
633
633
  continue;
634
634
  }
635
635
 
636
+ // E2E branches are always Minions-generated (verify tasks) — track even without a work item ID in the branch name
637
+ const isE2eBranch = /^e2e\//i.test(branch);
638
+
636
639
  // Only auto-track PRs linked to a minions work item — skip human-authored PRs
637
- if (!confirmedItemId) continue;
640
+ if (!confirmedItemId && !isE2eBranch) continue;
638
641
 
639
642
  const prUrl = project.prUrlBase ? project.prUrlBase + ghPr.number : ghPr.html_url || '';
640
643
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.884",
3
+ "version": "0.1.886",
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"