@yemi33/minions 0.1.2416 → 0.1.2417

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/docs/README.md CHANGED
@@ -44,6 +44,7 @@ Architecture, design proposals, and lifecycle references for people working on t
44
44
  - [deprecated-process.md](deprecated-process.md) — Schema for `docs/deprecated.json` and the weekly `cleanup-deprecated` audit walk that retires entries past their removal signal.
45
45
  - [design-inbox-entries-schema.md](design-inbox-entries-schema.md) — Implemented SQL schema and store contract for the future operator/agent inbox queue, including current indexes, mutators, event emission, and integration status.
46
46
  - [design-state-storage.md](design-state-storage.md) — Design proposal evaluating five database options for replacing Minions' file-based JSON state; recommends `node:sqlite` (accepted; implementation tracked in CHANGELOG.md Phases 0–10).
47
+ - [dev-composite-workflow.md](dev-composite-workflow.md) — The recurring "rebuild the composite branch from all my open PRs and relaunch the dev dashboard" workflow, and the `rebuild-composite` skill + `scripts/rebuild-composite.ps1` that automate it.
47
48
  - [harness-mode.md](harness-mode.md) — Tri-Agent Harness Mode (`harness_mode: "tri_agent"` on scheduled tasks): Planner → Generator → Evaluator loop that iterates a shared on-disk artifact until a rubric passes or the iteration cap fires.
48
49
  - [harness-propagation.md](harness-propagation.md) — The native runtime
49
50
  contract for repository instructions, skills, commands, and MCPs.
@@ -551,6 +551,28 @@ function _extractText(obj) {
551
551
  return '';
552
552
  }
553
553
 
554
+ // True turn-terminal detection (W-ms0mc2qf000ibd51). Codex streams both
555
+ // per-item events (`item.started` / `item.completed`) and turn-level terminals
556
+ // (`turn.completed` / `turn.failed` / `result` / `task_complete`). An assistant
557
+ // PROGRESS message arrives mid-turn as
558
+ // { type: 'item.completed', item: { type: 'agent_message', text: '…' } }
559
+ // which must stream as non-terminal progress. Only genuine turn/task/result
560
+ // completion may fire the early-resolve terminal signal (ctx.setText →
561
+ // onTerminalResult). The old `/complete|completed|final|result/` match treated
562
+ // `item.completed` as terminal and finalized the CC turn before subsequent tool
563
+ // calls (incident 2026-07-25 reason=done/tools=0/actions=0 after a progress
564
+ // message, then a function_call several seconds later).
565
+ function _isTurnTerminalType(type) {
566
+ const t = String(type || '');
567
+ if (!t) return false;
568
+ // item-scoped events (item.completed / item.started / item.updated …) are
569
+ // per-item progress, never a turn terminal.
570
+ if (/^item[._]/i.test(t)) return false;
571
+ return /(?:turn|task|response|session)[._]?(?:complete|completed|final|done)\b/i.test(t)
572
+ || /(?:^|[^a-z])result(?:[^a-z]|$)/i.test(t)
573
+ || /task_complete/i.test(t);
574
+ }
575
+
554
576
  function _extractDelta(obj) {
555
577
  const type = _eventType(obj);
556
578
  if (!/delta|chunk/i.test(type)) return '';
@@ -886,7 +908,12 @@ function createStreamConsumer(ctx) {
886
908
  if (eventText) {
887
909
  terminalText = eventText;
888
910
  deltaText = '';
889
- if (/complete|completed|final|result/i.test(type)) ctx.setText(eventText);
911
+ // Only genuine turn/task/result terminals fire the early-resolve terminal
912
+ // signal. item.completed agent_message events are streamed as non-terminal
913
+ // progress so subsequent tool calls in the same turn are not cut off
914
+ // (W-ms0mc2qf000ibd51). parseOutput() still owns final-answer extraction
915
+ // from the complete stdout at finalize() time.
916
+ if (_isTurnTerminalType(type)) ctx.setText(eventText);
890
917
  else ctx.pushText(eventText);
891
918
  }
892
919
  }
@@ -971,5 +998,6 @@ module.exports = {
971
998
  _readCatalogIds,
972
999
  _extractInvalidModelName,
973
1000
  _extractToolUse,
1001
+ _isTurnTerminalType,
974
1002
  CAPS_SCHEMA_VERSION,
975
1003
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.2416",
3
+ "version": "0.1.2417",
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"