@yemi33/minions 0.1.1603 → 0.1.1605

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,12 +1,14 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.1603 (2026-04-28)
3
+ ## 0.1.1605 (2026-04-28)
4
4
 
5
5
  ### Features
6
6
  - match runtime tags to actual logos (pixel-crab Claude, mascot Copilot)
7
7
  - replace runtime text tag with inline SVG logos
8
8
 
9
9
  ### Fixes
10
+ - preserve reconnect stream state
11
+ - preserve copilot cc action blocks
10
12
  - improve copilot command center streaming
11
13
  - guard runtime model races
12
14
  - runtime-aware model picker + cross-runtime validation
@@ -612,7 +612,8 @@ async function _ccDoSend(message, skipUserMsg, forceTabId) {
612
612
  if (evt.sessionReset) {
613
613
  addMsg('system', '<div style="text-align:center;padding:6px 12px;font-size:11px;color:var(--muted);background:var(--surface2);border-radius:6px;margin:4px 0">Minions was updated — started a fresh session with latest context.</div>', false, activeTabId);
614
614
  }
615
- var rendered = renderMd(evt.text || streamedText || '');
615
+ var finalText = _ccMergeStreamText(streamedText, evt.text || '');
616
+ var rendered = renderMd(finalText || streamedText || '');
616
617
  addMsg('assistant', rendered + _ccElapsedFooter('{seconds}s'));
617
618
  if (evt.sessionId !== undefined) {
618
619
  var originTab = _ccTabs.find(function(t) { return t.id === activeTabId; });
@@ -683,8 +684,9 @@ async function _ccDoSend(message, skipUserMsg, forceTabId) {
683
684
  break;
684
685
  }
685
686
  reconnectAttempts++;
687
+ streamedText = '';
686
688
  toolsUsed = [];
687
- if (activeTab) activeTab._toolsUsed = [];
689
+ if (activeTab) { activeTab._streamedText = ''; activeTab._toolsUsed = []; }
688
690
  streamStatusNote = 'Connection interrupted — reattaching to the live response...';
689
691
  updateStreamDiv();
690
692
  await new Promise(function(r) { setTimeout(r, 1000 * reconnectAttempts); });
package/engine/llm.js CHANGED
@@ -294,12 +294,15 @@ function _createStreamAccumulator({
294
294
  const alreadySeen = copilotTaskCompleteSeen && copilotTaskCompleteSummary === finalSummary;
295
295
  copilotTaskCompleteSeen = true;
296
296
  copilotTaskCompleteSummary = finalSummary;
297
- copilotMessageBuffer = '';
298
- text = finalSummary;
299
- if (onChunk && finalSummary !== lastTextSent) {
300
- lastTextSent = finalSummary;
301
- onChunk(finalSummary);
297
+ const hadText = !!text;
298
+ if (!hadText) {
299
+ text = finalSummary;
300
+ if (onChunk && finalSummary !== lastTextSent) {
301
+ lastTextSent = finalSummary;
302
+ onChunk(finalSummary);
303
+ }
302
304
  }
305
+ copilotMessageBuffer = '';
303
306
  if (!alreadySeen && onTaskComplete) onTaskComplete({ summary: finalSummary, success: success !== false });
304
307
  }
305
308
 
@@ -415,6 +418,7 @@ function _createStreamAccumulator({
415
418
  if (copilotMessageBuffer && !copilotTaskCompleteSeen) {
416
419
  text = _streamText(copilotMessageBuffer);
417
420
  }
421
+ if (!text && copilotTaskCompleteSummary) text = copilotTaskCompleteSummary;
418
422
  // Reconciliation: if any field is still missing, ask the runtime adapter
419
423
  // to re-parse the whole stdout. parseOutput() may catch a result event
420
424
  // that was malformed when streamed in chunks.
@@ -390,7 +390,8 @@ function parseOutput(raw, { maxTextLength = 0 } = {}) {
390
390
  }
391
391
  }
392
392
 
393
- let text = taskCompleteSummary || (messageContents.join('') + pendingDeltaContent);
393
+ let text = messageContents.join('') + pendingDeltaContent;
394
+ if (!text && taskCompleteSummary) text = taskCompleteSummary;
394
395
  if (maxTextLength && text.length > maxTextLength) {
395
396
  text = text.slice(-maxTextLength);
396
397
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.1603",
3
+ "version": "0.1.1605",
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"