@yemi33/minions 0.1.759 → 0.1.760
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 +2 -1
- package/dashboard.js +11 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.760 (2026-04-10)
|
|
4
4
|
|
|
5
5
|
### Features
|
|
6
6
|
- show branch strategy badge on PRD group header
|
|
7
7
|
|
|
8
8
|
### Fixes
|
|
9
|
+
- prevent completed SSE stream from aborting other tab's LLM process
|
|
9
10
|
- eliminate global ccSession corruption, clean up streaming state
|
|
10
11
|
- restore full streaming state (tools + partial text) on tab switch
|
|
11
12
|
- restored thinking UX matches original exactly (same bubble, layout)
|
package/dashboard.js
CHANGED
|
@@ -3325,8 +3325,15 @@ What would you like to discuss or change? When you're happy, say "approve" and I
|
|
|
3325
3325
|
|
|
3326
3326
|
res.writeHead(200, { 'Content-Type': 'text/event-stream', 'Cache-Control': 'no-cache', 'Connection': 'keep-alive' });
|
|
3327
3327
|
let _ccStreamAbort = null;
|
|
3328
|
+
let _ccStreamEnded = false;
|
|
3328
3329
|
// Kill LLM process immediately if client disconnects mid-stream
|
|
3329
|
-
req.on('close', () => {
|
|
3330
|
+
req.on('close', () => {
|
|
3331
|
+
ccInFlightTabs.delete(tabId);
|
|
3332
|
+
if (!_ccStreamEnded && _ccStreamAbort) {
|
|
3333
|
+
console.log(`[CC-stream] Client disconnected for tab ${tabId} — aborting LLM`);
|
|
3334
|
+
_ccStreamAbort();
|
|
3335
|
+
}
|
|
3336
|
+
});
|
|
3330
3337
|
|
|
3331
3338
|
try {
|
|
3332
3339
|
// Session management — per-tab: use sessionId from request, don't mutate global ccSession
|
|
@@ -3367,7 +3374,7 @@ What would you like to discuss or change? When you're happy, say "approve" and I
|
|
|
3367
3374
|
// Return null sessionId on resume failure so client clears the stale session
|
|
3368
3375
|
const errorSessionId = (wasResume && result.code !== 0) ? null : tabSessionId;
|
|
3369
3376
|
res.write('data: ' + JSON.stringify({ type: 'done', text: `I had trouble processing that ${debugInfo}. ${stderrTail ? 'Detail: ' + stderrTail : ''}\n\n${retryHint}`, actions: [], sessionId: errorSessionId }) + '\n\n');
|
|
3370
|
-
res.end();
|
|
3377
|
+
_ccStreamEnded = true; res.end();
|
|
3371
3378
|
return;
|
|
3372
3379
|
}
|
|
3373
3380
|
|
|
@@ -3396,14 +3403,14 @@ What would you like to discuss or change? When you're happy, say "approve" and I
|
|
|
3396
3403
|
// Send final result with actions
|
|
3397
3404
|
const { text: displayText, actions } = parseCCActions(result.text);
|
|
3398
3405
|
res.write('data: ' + JSON.stringify({ type: 'done', text: displayText, actions, sessionId: responseSessionId, newSession: !wasResume }) + '\n\n');
|
|
3399
|
-
res.end();
|
|
3406
|
+
_ccStreamEnded = true; res.end();
|
|
3400
3407
|
} finally {
|
|
3401
3408
|
ccInFlightTabs.delete(tabId);
|
|
3402
3409
|
}
|
|
3403
3410
|
} catch (e) {
|
|
3404
3411
|
ccInFlightTabs.delete(tabId);
|
|
3405
3412
|
try { res.write('data: ' + JSON.stringify({ type: 'error', error: e.message }) + '\n\n'); } catch {}
|
|
3406
|
-
try { res.end(); } catch {}
|
|
3413
|
+
_ccStreamEnded = true; try { res.end(); } catch {}
|
|
3407
3414
|
}
|
|
3408
3415
|
}
|
|
3409
3416
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.760",
|
|
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"
|