@yemi33/minions 0.1.1103 → 0.1.1104

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,11 +1,12 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.1103 (2026-04-18)
3
+ ## 0.1.1104 (2026-04-18)
4
4
 
5
5
  ### Features
6
6
  - seed realActivityMap at spawn time, stamp pid in live-output (#1200)
7
7
 
8
8
  ### Fixes
9
+ - preserve VERDICT marker by tail-slicing agent output (#1234) (#1270)
9
10
  - PRD info cache staleness and aggregate PR bleed-through (#1222)
10
11
  - avoid no-op work item writes
11
12
  - resilient claude binary resolution + surface spawn errors
package/engine/llm.js CHANGED
@@ -149,7 +149,9 @@ function _createStreamAccumulator({
149
149
  if (obj.session_id) sessionId = obj.session_id;
150
150
  if (obj.type === 'result') {
151
151
  if (typeof obj.result === 'string') {
152
- text = maxTextLength ? obj.result.slice(0, maxTextLength) : obj.result;
152
+ // Tail-slice: VERDICTs, completion blocks, and PR URLs live at the END
153
+ // of agent output. Head-slicing dropped them (#1234).
154
+ text = maxTextLength ? obj.result.slice(-maxTextLength) : obj.result;
153
155
  }
154
156
  if (obj.total_cost_usd || obj.usage) {
155
157
  usage = {
@@ -166,7 +168,8 @@ function _createStreamAccumulator({
166
168
  if (obj.type === 'assistant' && Array.isArray(obj.message?.content)) {
167
169
  for (const block of obj.message.content) {
168
170
  if (block?.type === 'text' && block.text) {
169
- text = maxTextLength ? block.text.slice(0, maxTextLength) : block.text;
171
+ // Tail-slice for consistency with the result branch (see #1234).
172
+ text = maxTextLength ? block.text.slice(-maxTextLength) : block.text;
170
173
  if (onChunk && block.text !== lastTextSent) {
171
174
  lastTextSent = block.text;
172
175
  onChunk(block.text);
package/engine/shared.js CHANGED
@@ -608,7 +608,11 @@ function parseStreamJsonOutput(raw, { maxTextLength = 0 } = {}) {
608
608
 
609
609
  function extractResult(obj) {
610
610
  if (obj.type !== 'result') return false;
611
- if (obj.result) text = maxTextLength ? obj.result.slice(0, maxTextLength) : obj.result;
611
+ // Slice from the tail, not the head — review VERDICTs, structured completion
612
+ // blocks, PR URLs, and agent conclusions all appear at the END of the output.
613
+ // Head-slicing truncated VERDICTs and caused review work items to be
614
+ // re-dispatched up to maxRetries times despite successful completion (#1234).
615
+ if (obj.result) text = maxTextLength ? obj.result.slice(-maxTextLength) : obj.result;
612
616
  if (obj.session_id) sessionId = obj.session_id;
613
617
  if (obj.total_cost_usd || obj.usage) {
614
618
  usage = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.1103",
3
+ "version": "0.1.1104",
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"