@yemi33/minions 0.1.599 → 0.1.600

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,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.600 (2026-04-08)
4
+
5
+ ### Fixes
6
+ - restore pendingFix on failed human-feedback dispatch (closes #540) (#550)
7
+
3
8
  ## 0.1.599 (2026-04-08)
4
9
 
5
10
  ### Fixes
@@ -10,7 +10,7 @@ const queries = require('./queries');
10
10
  const { setCooldownFailure } = require('./cooldown');
11
11
 
12
12
  const { safeJson, safeWrite, safeReadDir, mutateJsonFileLocked, mutateWorkItems,
13
- getProjects, projectWorkItemsPath, log, ts, dateStamp,
13
+ mutatePullRequests, getProjects, projectWorkItemsPath, projectPrPath, log, ts, dateStamp,
14
14
  WI_STATUS, DISPATCH_RESULT, ENGINE_DEFAULTS } = shared;
15
15
  const { getConfig, getDispatch, DISPATCH_PATH, INBOX_DIR } = queries;
16
16
 
@@ -187,6 +187,31 @@ function completeDispatch(id, result = DISPATCH_RESULT.SUCCESS, reason = '', res
187
187
  } catch (e) { log('warn', 'write failure alert: ' + e.message); }
188
188
  }
189
189
  }
190
+
191
+ // Restore pendingFix on failed human-feedback fix so engine re-dispatches on next tick
192
+ if (result === DISPATCH_RESULT.ERROR && item.meta?.source === 'pr-human-feedback') {
193
+ const prId = item.meta.pr?.id;
194
+ const project = item.meta.project;
195
+ if (prId && project) {
196
+ try {
197
+ const prsPath = projectPrPath(project);
198
+ mutatePullRequests(prsPath, prs => {
199
+ const target = prs.find(p => p.id === prId);
200
+ if (target?.humanFeedback) target.humanFeedback.pendingFix = true;
201
+ });
202
+ log('info', `Restored pendingFix=true on ${prId} after failed human-feedback fix`);
203
+ } catch (e) { log('warn', `restore pendingFix: ${e.message}`); }
204
+ }
205
+ // Clear completed dispatch entry so dedup doesn't block re-dispatch
206
+ if (item.meta?.dispatchKey) {
207
+ try {
208
+ mutateDispatch((dp) => {
209
+ dp.completed = Array.isArray(dp.completed) ? dp.completed.filter(d => d.meta?.dispatchKey !== item.meta.dispatchKey) : [];
210
+ return dp;
211
+ });
212
+ } catch (e) { log('warn', 'clear human-feedback dispatch for retry: ' + e.message); }
213
+ }
214
+ }
190
215
  }
191
216
  }
192
217
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.599",
3
+ "version": "0.1.600",
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"