@yemi33/minions 0.1.836 → 0.1.838

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,8 +1,9 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.836 (2026-04-11)
3
+ ## 0.1.838 (2026-04-11)
4
4
 
5
5
  ### Features
6
+ - per-item Re-open button on done PRD items (deterministic fallback)
6
7
  - stale PRD shows Regenerate PRD + Resume as-is buttons
7
8
 
8
9
  ### Fixes
@@ -193,6 +193,12 @@ function renderPrdProgress(prog) {
193
193
  requeueBtn = '<span onclick="event.stopPropagation();prdItemRequeue(\'' + escHtml(wi ? wi.id : i.id) + '\',\'' + escHtml(wi ? (wi._source || '') : '') + '\',\'' + escHtml(i.source || '') + '\')" style="color:var(--green);cursor:pointer;font-size:9px;padding:1px 5px;background:rgba(63,185,80,0.1);border:1px solid rgba(63,185,80,0.3);border-radius:3px" title="Requeue this work item">retry</span>';
194
194
  }
195
195
 
196
+ // Re-open button for done items — sets PRD item to "updated" so engine re-dispatches
197
+ const isDone = i.status === 'done' || (wi && wi.status === 'done');
198
+ const reopenBtn = isDone
199
+ ? '<span onclick="event.stopPropagation();prdItemReopen(\'' + escHtml(i.source || '') + '\',\'' + escHtml(i.id) + '\')" style="color:var(--blue);cursor:pointer;font-size:9px;padding:1px 5px;background:rgba(56,139,253,0.1);border:1px solid rgba(56,139,253,0.3);border-radius:3px" title="Re-open: set to updated so engine re-dispatches on existing branch">re-open</span>'
200
+ : '';
201
+
196
202
  return '<div class="prd-item-row st-' + (i.status || 'missing') + '" style="flex-wrap:wrap;cursor:pointer" onclick="prdItemEdit(\'' + src + '\',\'' + iid + '\')">' +
197
203
  statusBadge(i.status, i.id) +
198
204
  '<span class="prd-item-id">' + escHtml(i.id) + '</span>' +
@@ -200,6 +206,7 @@ function renderPrdProgress(prog) {
200
206
  wiLabel +
201
207
  agentLabel +
202
208
  requeueBtn +
209
+ reopenBtn +
203
210
  (projBadges ? '<span>' + projBadges + '</span>' : '') +
204
211
  (prLinks ? '<span>' + prLinks + '</span>' : '') +
205
212
  branchLabel +
@@ -766,6 +773,29 @@ async function prdItemRequeue(workItemId, source, prdFile) {
766
773
  }
767
774
  }
768
775
 
776
+ async function prdItemReopen(source, itemId) {
777
+ if (!confirm('Re-open this item? It will be set to "updated" and the engine will re-dispatch it on the existing branch.')) return;
778
+ try {
779
+ // Set item to "updated" + clear stale flag + approve so materializer picks it up
780
+ const res = await fetch('/api/prd-items/update', {
781
+ method: 'POST', headers: { 'Content-Type': 'application/json' },
782
+ body: JSON.stringify({ source, itemId, status: 'updated' })
783
+ });
784
+ if (res.ok) {
785
+ // Also approve the plan (clears planStale so materializer runs)
786
+ await fetch('/api/plans/approve', {
787
+ method: 'POST', headers: { 'Content-Type': 'application/json' },
788
+ body: JSON.stringify({ file: source, skipRegen: true })
789
+ });
790
+ showToast('cmd-toast', 'Item re-opened — will dispatch on next tick', true);
791
+ refresh();
792
+ } else {
793
+ const d = await res.json().catch(() => ({}));
794
+ alert('Re-open failed: ' + (d.error || 'unknown'));
795
+ }
796
+ } catch (e) { alert('Error: ' + e.message); }
797
+ }
798
+
769
799
  async function _planApproveAction(prdFile, skipRegen, confirmMsg, successMsg) {
770
800
  if (!confirm(confirmMsg)) return;
771
801
  try {
@@ -866,4 +896,4 @@ function openArchive(i) {
866
896
  document.getElementById('modal').classList.add('open');
867
897
  }
868
898
 
869
- window.MinionsPrd = { renderPrd, renderPrdProgress, openArchivedPrdModal, showArchivedPrdDetail, prdItemEdit, prdItemSave, prdItemRemove, prdItemRequeue, prdRegenerate, openArchive };
899
+ window.MinionsPrd = { renderPrd, renderPrdProgress, openArchivedPrdModal, showArchivedPrdDetail, prdItemEdit, prdItemSave, prdItemRemove, prdItemRequeue, prdItemReopen, prdRegenerate, openArchive };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.836",
3
+ "version": "0.1.838",
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"