@yemi33/minions 0.1.2130 → 0.1.2131
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.
|
@@ -136,7 +136,11 @@ function _ccMergeStreamText(prev, incoming) {
|
|
|
136
136
|
if (next === current) return current;
|
|
137
137
|
if (next.startsWith(current)) return next;
|
|
138
138
|
if (current.startsWith(next)) return current;
|
|
139
|
-
|
|
139
|
+
// Overlap >= 3 only — a 1- or 2-char tail/head match is statistically a
|
|
140
|
+
// false positive (e.g. trailing 's' or '.' against a leading capital
|
|
141
|
+
// letter) and welds back-to-back assistant messages into `...prev.next...`
|
|
142
|
+
// with no separator (W-mq1jwwqo000f20d9 — CC chunk welding fix).
|
|
143
|
+
for (var overlap = Math.min(current.length, next.length); overlap >= 3; overlap--) {
|
|
140
144
|
if (current.slice(-overlap) === next.slice(0, overlap)) {
|
|
141
145
|
return current + next.slice(overlap);
|
|
142
146
|
}
|
|
@@ -1080,6 +1080,12 @@ function createStreamConsumer(ctx) {
|
|
|
1080
1080
|
let copilotMessageBuffer = '';
|
|
1081
1081
|
let terminalText = '';
|
|
1082
1082
|
let taskCompleteSummary = '';
|
|
1083
|
+
// Tracks whether a non-tool `assistant.message` has already pushed terminal
|
|
1084
|
+
// text in this stream. Used to insert a `\n\n` paragraph break between
|
|
1085
|
+
// back-to-back terminating messages so consumers don't render the welded
|
|
1086
|
+
// form `...prev.next...`. First push is NEVER prefixed (would leave every
|
|
1087
|
+
// reply with a leading blank line). Reset by reset() on stream restart.
|
|
1088
|
+
let _hadPriorAssistantMessage = false;
|
|
1083
1089
|
|
|
1084
1090
|
function _captureTaskComplete(summary, success = true, { clearBuffer = false } = {}) {
|
|
1085
1091
|
if (typeof summary !== 'string' || !summary) return;
|
|
@@ -1131,8 +1137,17 @@ function createStreamConsumer(ctx) {
|
|
|
1131
1137
|
// the terminal answer. A non-tool assistant.message overrides any
|
|
1132
1138
|
// streamed deltas (Copilot's authoritative final text for the turn).
|
|
1133
1139
|
if (content && !hasTools) {
|
|
1134
|
-
|
|
1135
|
-
|
|
1140
|
+
// Second-and-later terminating message in a single turn: prefix the
|
|
1141
|
+
// pushed text with `\n\n` so the dashboard merge sees a clean
|
|
1142
|
+
// paragraph boundary instead of welding `<prev>.<next>` together
|
|
1143
|
+
// (W-mq1jwwqo000f20d9 — CC chunk welding fix). The first push must
|
|
1144
|
+
// NOT be prefixed or every reply starts with a blank line. Tool-use
|
|
1145
|
+
// boundaries are skipped — those get rendered as visible chips
|
|
1146
|
+
// client-side and already act as natural separators.
|
|
1147
|
+
const pushed = _hadPriorAssistantMessage ? '\n\n' + content : content;
|
|
1148
|
+
terminalText = _hadPriorAssistantMessage ? terminalText + '\n\n' + content : content;
|
|
1149
|
+
ctx.pushText(pushed);
|
|
1150
|
+
_hadPriorAssistantMessage = true;
|
|
1136
1151
|
}
|
|
1137
1152
|
copilotMessageBuffer = '';
|
|
1138
1153
|
}
|
|
@@ -1168,6 +1183,7 @@ function createStreamConsumer(ctx) {
|
|
|
1168
1183
|
copilotMessageBuffer = '';
|
|
1169
1184
|
terminalText = '';
|
|
1170
1185
|
taskCompleteSummary = '';
|
|
1186
|
+
_hadPriorAssistantMessage = false;
|
|
1171
1187
|
}
|
|
1172
1188
|
|
|
1173
1189
|
return { consume, reset };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2131",
|
|
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"
|