@yemi33/minions 0.1.919 → 0.1.921
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/dashboard/js/render-plans.js +5 -0
- package/engine/lifecycle.js +8 -6
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.921 (2026-04-13)
|
|
4
4
|
|
|
5
5
|
### Features
|
|
6
6
|
- CC tab unread dot + reopened badge on work items
|
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
- add red dot notification on CC tab when response completes (#934) (#946)
|
|
19
19
|
|
|
20
20
|
### Fixes
|
|
21
|
+
- prioritize error_max_turns over permission-blocked in classifyFailure (#1001)
|
|
22
|
+
- optimistic archive hides both PRD and linked source plan simultaneously
|
|
21
23
|
- align CC tab unread dot to same position as working dot
|
|
22
24
|
- pipeline artifact links use pushModalBack instead of setTimeout race (#993)
|
|
23
25
|
- close unclosed code fences and lone backticks in renderMd (#991)
|
|
@@ -601,6 +601,11 @@ async function planArchive(file, btn) {
|
|
|
601
601
|
if (!confirm(confirmMsg)) return;
|
|
602
602
|
_stopPlanPoll();
|
|
603
603
|
markDeleted('plan:' + file);
|
|
604
|
+
// Also optimistically hide the linked source plan (server archives both)
|
|
605
|
+
if (isPrd) {
|
|
606
|
+
var linkedPlan = (window._lastPlans || []).find(function(p) { return p.file === file && p.sourcePlan; });
|
|
607
|
+
if (linkedPlan) markDeleted('plan:' + linkedPlan.sourcePlan);
|
|
608
|
+
}
|
|
604
609
|
try { closeModal(); } catch { /* may not be open */ }
|
|
605
610
|
showToast('cmd-toast', 'Archiving...', true);
|
|
606
611
|
try {
|
package/engine/lifecycle.js
CHANGED
|
@@ -1910,6 +1910,14 @@ function classifyFailure(code, stdout = '', stderr = '') {
|
|
|
1910
1910
|
// Exit code 78 — configuration error (Claude CLI not found, bad setup)
|
|
1911
1911
|
if (code === 78) return FAILURE_CLASS.CONFIG_ERROR;
|
|
1912
1912
|
|
|
1913
|
+
// Max turns exhausted (error_max_turns) — definitive stop reason, retryable
|
|
1914
|
+
// Must be checked FIRST — hook startup failures (e.g. curl exit code 28) can inject
|
|
1915
|
+
// permission/auth text into stderr, but if the agent ran to turn exhaustion that's the
|
|
1916
|
+
// real cause. Checked before PERMISSION_BLOCKED and OUT_OF_CONTEXT.
|
|
1917
|
+
if (/error_max_turns|"subtype"\s*:\s*"error_max_turns"|terminal_reason.*max_turns|max.*turns.*reached/i.test(combined)) {
|
|
1918
|
+
return FAILURE_CLASS.MAX_TURNS;
|
|
1919
|
+
}
|
|
1920
|
+
|
|
1913
1921
|
// Permission / trust / auth failures
|
|
1914
1922
|
if (/permission denied|access denied|unauthorized|403 forbidden|trust.*blocked|auth.*fail/i.test(combined)) {
|
|
1915
1923
|
return FAILURE_CLASS.PERMISSION_BLOCKED;
|
|
@@ -1920,12 +1928,6 @@ function classifyFailure(code, stdout = '', stderr = '') {
|
|
|
1920
1928
|
return FAILURE_CLASS.MERGE_CONFLICT;
|
|
1921
1929
|
}
|
|
1922
1930
|
|
|
1923
|
-
// Max turns exhausted (error_max_turns) — work in progress, retryable
|
|
1924
|
-
// Must be checked BEFORE OUT_OF_CONTEXT to avoid misclassification as non-retryable
|
|
1925
|
-
if (/error_max_turns|"subtype"\s*:\s*"error_max_turns"|terminal_reason.*max_turns|max.*turns.*reached/i.test(combined)) {
|
|
1926
|
-
return FAILURE_CLASS.MAX_TURNS;
|
|
1927
|
-
}
|
|
1928
|
-
|
|
1929
1931
|
// Context window exhausted (token limit, context length — NOT max turns)
|
|
1930
1932
|
if (/context window|token limit|conversation.*too long|context.*length.*exceeded/i.test(combined)) {
|
|
1931
1933
|
return FAILURE_CLASS.OUT_OF_CONTEXT;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.921",
|
|
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"
|