@yemi33/minions 0.1.815 → 0.1.816

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,6 +1,6 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.815 (2026-04-11)
3
+ ## 0.1.816 (2026-04-11)
4
4
 
5
5
  ### Features
6
6
  - Bidirectional Teams integration for Command Center (#764)
@@ -13,6 +13,7 @@
13
13
  - cap review→fix cycles at evalMaxIterations (default 3)
14
14
 
15
15
  ### Fixes
16
+ - handle local-only dependency branches in dep merge (closes #782) (#825)
16
17
  - reset PRD item status when work item is deleted (closes #779) (#823)
17
18
  - add smoke test for checkTimeouts ReferenceError regression (closes #775) (#822)
18
19
  - replace safeWrite with mutateDispatch in CLI kill handler (#654)
@@ -32,7 +33,6 @@
32
33
  - remove redundant 'PR' prefix from dispatch labels (id already has it)
33
34
  - include PR title in all dispatch labels and escalation alerts
34
35
  - never downgrade reviewStatus from 'approved' unless explicitly rejected
35
- - warn on invalid pipeline JSON instead of silently dropping + add test
36
36
 
37
37
  ## 0.1.782 (2026-04-10)
38
38
 
package/engine.js CHANGED
@@ -471,22 +471,39 @@ async function spawnAgent(dispatchItem, config) {
471
471
  );
472
472
  const hasFetchFailures = fetchResults.some(r => r.status === 'rejected');
473
473
  const allPrsForFetch = hasFetchFailures ? shared.getProjects(config).reduce((acc, p) => acc.concat(safeJson(shared.projectPrPath(p)) || []), []) : [];
474
+ // Track branches recovered by local-only push so they can be merged
475
+ const recoveredBranches = new Set();
474
476
  for (let i = 0; i < fetchResults.length; i++) {
475
477
  if (fetchResults[i].status === 'rejected') {
476
478
  const failedBranch = fetchable[i].branch;
477
479
  const failedPrId = fetchable[i].prId;
480
+ const errMsg = fetchResults[i].reason?.message || '';
478
481
  const pr = allPrsForFetch.find(p => p.id === failedPrId);
479
482
  if (pr && (pr.status === 'merged' || pr.status === 'closed')) {
480
483
  log('info', `Dependency ${failedBranch} (${failedPrId}) already merged — skipping, changes already in main`);
481
484
  continue;
482
485
  }
486
+ // If remote ref missing, check if branch exists locally and push it (#782)
487
+ if (errMsg.includes('couldn\'t find remote ref') || errMsg.includes('not found in upstream')) {
488
+ try {
489
+ await execAsync(`git rev-parse --verify "refs/heads/${failedBranch}"`, { ..._gitOpts, cwd: rootDir });
490
+ // Branch exists locally — push it to origin
491
+ log('info', `Dependency ${failedBranch} exists locally but not on remote — pushing to origin`);
492
+ await execAsync(`git push origin "${failedBranch}"`, { ..._gitOpts, cwd: rootDir, timeout: 60000 });
493
+ log('info', `Successfully pushed local-only dependency branch ${failedBranch} to origin`);
494
+ recoveredBranches.add(failedBranch);
495
+ continue;
496
+ } catch (localErr) {
497
+ log('warn', `Dependency ${failedBranch} not found locally or push failed: ${localErr.message}`);
498
+ }
499
+ }
483
500
  _failedRefCache.add(failedBranch);
484
- log('warn', `Failed to fetch dependency ${failedBranch}: ${fetchResults[i].reason?.message}`);
501
+ log('warn', `Failed to fetch dependency ${failedBranch}: ${errMsg}`);
485
502
  depMergeFailed = true;
486
503
  }
487
504
  }
488
- // Merge successfully-fetched branches sequentially (merges modify the worktree)
489
- const fetched = fetchable.filter((_, i) => fetchResults[i].status === 'fulfilled');
505
+ // Merge successfully-fetched + recovered (local-only pushed) branches sequentially
506
+ const fetched = fetchable.filter((_, i) => fetchResults[i].status === 'fulfilled' || recoveredBranches.has(fetchable[i].branch));
490
507
  if (!depMergeFailed) {
491
508
  for (const { branch: depBranch, prId } of fetched) {
492
509
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.815",
3
+ "version": "0.1.816",
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"