@yemi33/minions 0.1.1787 → 0.1.1788

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,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.1788 (2026-05-08)
4
+
5
+ ### Other
6
+ - Fix Copilot CC session persistence
7
+
3
8
  ## 0.1.1787 (2026-05-08)
4
9
 
5
10
  ### Features
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "runtime": "copilot",
3
3
  "models": null,
4
- "cachedAt": "2026-05-08T01:35:12.713Z"
4
+ "cachedAt": "2026-05-08T04:24:46.560Z"
5
5
  }
package/engine/llm.js CHANGED
@@ -22,7 +22,7 @@ const { resolveRuntime } = require('./runtimes');
22
22
 
23
23
  const MINIONS_DIR = shared.MINIONS_DIR;
24
24
  const ENGINE_DIR = path.join(MINIONS_DIR, 'engine');
25
- const COPILOT_TASK_COMPLETE_GRACE_MS = 3000;
25
+ const COPILOT_TASK_COMPLETE_GRACE_MS = 15000;
26
26
  const MISSING_RUNTIME_EXIT_CODE = 78;
27
27
  // When the spawned process emits 'exit' but 'close' is delayed (a detached
28
28
  // grandchild inherited stdio), wait this long for trailing stdout data to
@@ -817,11 +817,15 @@ function createStreamConsumer(ctx) {
817
817
  // inspect...") is progress text only — terminal text comes from non-tool
818
818
  // assistant messages or trailing deltas.
819
819
  let copilotMessageBuffer = '';
820
+ let terminalText = '';
820
821
 
821
822
  function _captureTaskComplete(summary, success = true) {
822
823
  if (typeof summary !== 'string' || !summary) return;
823
824
  copilotMessageBuffer = '';
824
- ctx.pushText(summary);
825
+ if (!terminalText) {
826
+ terminalText = summary;
827
+ ctx.pushText(summary);
828
+ }
825
829
  ctx.notifyTaskComplete(summary, success !== false);
826
830
  }
827
831
 
@@ -830,6 +834,10 @@ function createStreamConsumer(ctx) {
830
834
 
831
835
  if (obj.type === 'result' && typeof obj.sessionId === 'string') {
832
836
  ctx.setSessionId(obj.sessionId);
837
+ // The result event is the first Copilot event that contains the resumable
838
+ // sessionId. Do not mark the earlier assistant.message as terminal or
839
+ // Minions can resolve before session persistence data is available.
840
+ if (terminalText) ctx.setText(terminalText);
833
841
  }
834
842
 
835
843
  if (obj.type === 'session.task_complete') {
@@ -859,7 +867,10 @@ function createStreamConsumer(ctx) {
859
867
  // Tool-request narration is progress text only — don't let it become
860
868
  // the terminal answer. A non-tool assistant.message overrides any
861
869
  // streamed deltas (Copilot's authoritative final text for the turn).
862
- if (content && !hasTools) ctx.setText(content);
870
+ if (content && !hasTools) {
871
+ terminalText = content;
872
+ ctx.pushText(content);
873
+ }
863
874
  copilotMessageBuffer = '';
864
875
  }
865
876
  if (Array.isArray(data.toolRequests)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.1787",
3
+ "version": "0.1.1788",
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"