@yemi33/minions 0.1.514 → 0.1.516

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,17 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.514 (2026-04-07)
3
+ ## 0.1.516 (2026-04-07)
4
+
5
+ ### Fixes
6
+ - graph view shows decomposed items as green with children listed
7
+
8
+ ## 0.1.515 (2026-04-07)
4
9
 
5
10
  ### Features
6
11
  - PRD view shows decomposed children inline under parent item
7
12
 
8
13
  ### Fixes
14
+ - decomposed dependencies check children status, not just parent
9
15
  - retroactively recover failed work items that have linked PRs
10
16
  - decomposed items count as done in PRD progress and plan status
11
17
 
@@ -326,7 +326,7 @@ function renderPrdProgress(prog) {
326
326
  });
327
327
 
328
328
  const statusColor = (s) => {
329
- if (s === 'done') return 'var(--green)';
329
+ if (s === 'done' || s === 'decomposed') return 'var(--green)';
330
330
  if (s === 'dispatched') return 'var(--yellow)';
331
331
  if (s === 'failed') return 'var(--red)';
332
332
  if (s === 'paused') return 'var(--muted)';
@@ -381,6 +381,20 @@ function renderPrdProgress(prog) {
381
381
  ((i.prs || []).length ? '<div style="margin-top:3px">' + (i.prs || []).map(function(pr) {
382
382
  return '<a href="' + escHtml(pr.url || '#') + '" target="_blank" rel="noopener" onclick="event.stopPropagation()" style="font-size:9px;color:var(--green);text-decoration:underline;cursor:pointer" title="' + escHtml(pr.title || '') + '">' + escHtml(pr.id) + '</a>';
383
383
  }).join(' ') + '</div>' : '') +
384
+ (i.status === 'decomposed' ? (function() {
385
+ var children = (window._lastWorkItems || []).filter(function(w) { return w.parent_id === i.id; });
386
+ if (!children.length) return '';
387
+ return '<div style="margin-top:4px;border-top:1px solid var(--border);padding-top:4px">' +
388
+ children.map(function(c) {
389
+ var cAgent = c.dispatched_to ? (agentData.find(function(a) { return a.id === c.dispatched_to; }) || {}) : null;
390
+ return '<div style="font-size:9px;display:flex;align-items:center;gap:4px;padding:1px 0">' +
391
+ statusBadge(c.status) +
392
+ '<span style="flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap">' + escHtml((c.title || '').replace('Implement: ', '').slice(0, 40)) + '</span>' +
393
+ (cAgent ? '<span style="font-size:8px;color:var(--muted)">' + (cAgent.emoji || '') + '</span>' : '') +
394
+ '</div>';
395
+ }).join('') +
396
+ '</div>';
397
+ })() : '') +
384
398
  '</div>';
385
399
  }
386
400
  html += '</div>';
package/engine.js CHANGED
@@ -834,7 +834,14 @@ function areDependenciesMet(item, config) {
834
834
  return false;
835
835
  }
836
836
  if (depItem.status === WI_STATUS.FAILED) return 'failed';
837
- if (!PRD_MET_STATUSES.has(depItem.status)) return false; // Pending, dispatched, or retrying — wait (legacy aliases accepted)
837
+ if (depItem.status === WI_STATUS.DECOMPOSED) {
838
+ // Decomposed: check if all children are done
839
+ const children = allWorkItems.filter(w => w.parent_id === depId);
840
+ if (children.length > 0 && children.every(c => PRD_MET_STATUSES.has(c.status))) continue; // all children done
841
+ if (children.length > 0) return false; // children still in progress
842
+ continue; // no children found — treat as met (decomposition may be in flight)
843
+ }
844
+ if (!PRD_MET_STATUSES.has(depItem.status)) return false; // Pending, dispatched, or retrying — wait
838
845
  }
839
846
  return true;
840
847
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.514",
3
+ "version": "0.1.516",
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"