@yemi33/minions 0.1.892 → 0.1.894
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 +10 -0
- package/bin/minions.js +19 -7
- package/engine/ado.js +1 -0
- package/engine/github.js +1 -0
- package/engine.js +17 -2
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.1.894 (2026-04-11)
|
|
4
|
+
|
|
5
|
+
### Fixes
|
|
6
|
+
- handle dev/symlink installs and pass MINIONS_HOME to init --force
|
|
7
|
+
|
|
8
|
+
## 0.1.893 (2026-04-11)
|
|
9
|
+
|
|
10
|
+
### Fixes
|
|
11
|
+
- suppress conflict-fix re-dispatch during ADO mergeStatus recompute lag (#921)
|
|
12
|
+
|
|
3
13
|
## 0.1.892 (2026-04-11)
|
|
4
14
|
|
|
5
15
|
### Features
|
package/bin/minions.js
CHANGED
|
@@ -524,14 +524,26 @@ if (!cmd || cmd === 'help' || cmd === '--help' || cmd === '-h') {
|
|
|
524
524
|
init();
|
|
525
525
|
} else if (cmd === 'update') {
|
|
526
526
|
console.log('\n Updating Minions...\n');
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
527
|
+
// Dev/symlink installs: PKG_ROOT === MINIONS_HOME — npm update is a no-op (symlink already
|
|
528
|
+
// points to the repo), and `minions init --force` would fail (cwd/.minions is inside PKG_ROOT).
|
|
529
|
+
// Just sync the version file and restart.
|
|
530
|
+
const isSymlinkedDevInstall = path.resolve(PKG_ROOT) === path.resolve(MINIONS_HOME);
|
|
531
|
+
if (isSymlinkedDevInstall) {
|
|
532
|
+
saveInstalledVersion(getPkgVersion());
|
|
533
|
+
console.log(` Version synced to ${getPkgVersion()} (dev/symlink install — pull from git to update code)`);
|
|
534
|
+
} else {
|
|
535
|
+
try {
|
|
536
|
+
execSync('npm install -g @yemi33/minions@latest', { stdio: 'inherit', timeout: 120000 });
|
|
537
|
+
} catch (e) {
|
|
538
|
+
console.error(' npm install failed:', e.message);
|
|
539
|
+
process.exit(1);
|
|
540
|
+
}
|
|
541
|
+
// Pass MINIONS_HOME explicitly so init updates the right directory, not cwd/.minions
|
|
542
|
+
execSync('minions init --force', {
|
|
543
|
+
stdio: 'inherit', timeout: 120000,
|
|
544
|
+
env: { ...process.env, MINIONS_HOME },
|
|
545
|
+
});
|
|
532
546
|
}
|
|
533
|
-
// Re-exec the NEW binary (just installed) so the updated code runs init --force
|
|
534
|
-
execSync('minions init --force', { stdio: 'inherit', timeout: 120000 });
|
|
535
547
|
// Restart engine + dashboard so they pick up the new code
|
|
536
548
|
console.log('\n Restarting engine and dashboard...\n');
|
|
537
549
|
execSync('minions restart', { stdio: 'inherit', timeout: 60000 });
|
package/engine/ado.js
CHANGED
package/engine/github.js
CHANGED
package/engine.js
CHANGED
|
@@ -1899,14 +1899,29 @@ async function discoverFromPrs(config, project) {
|
|
|
1899
1899
|
// PRs with merge conflicts — dispatch fix to resolve
|
|
1900
1900
|
if (pr.status === PR_STATUS.ACTIVE && pr._mergeConflict && !fixDispatched) {
|
|
1901
1901
|
const key = `conflict-fix-${project?.name || 'default'}-${pr.id}`;
|
|
1902
|
-
|
|
1902
|
+
// Suppress re-dispatch for 10 min after last attempt — ADO/GitHub recomputes
|
|
1903
|
+
// mergeStatus asynchronously (1–5 min lag), so the flag may stay set even after
|
|
1904
|
+
// a successful push. _conflictFixedAt is cleared when the poller confirms clean status.
|
|
1905
|
+
const conflictFixedAt = pr._conflictFixedAt;
|
|
1906
|
+
const withinLag = conflictFixedAt && Date.now() - new Date(conflictFixedAt).getTime() < 10 * 60 * 1000;
|
|
1907
|
+
if (!withinLag && !isAlreadyDispatched(key) && !isOnCooldown(key, cooldownMs)) {
|
|
1903
1908
|
const agentId = resolveAgent('fix', config, pr.agent);
|
|
1904
1909
|
if (agentId) {
|
|
1905
1910
|
const item = buildPrDispatch(agentId, config, project, pr, 'fix', {
|
|
1906
1911
|
pr_id: pr.id, pr_branch: pr.branch || '',
|
|
1907
1912
|
review_note: `This PR has merge conflicts with the target branch. Resolve the conflicts:\n\n1. Pull latest from main/master\n2. Resolve all conflicts (prefer PR branch changes unless main has critical fixes)\n3. Build and test after resolving\n4. Push the resolved branch`,
|
|
1908
1913
|
}, `Fix merge conflicts on ${pr.id}: ${pr.title || ''}`, { dispatchKey: key, source: 'pr', pr, branch: pr.branch, project: projMeta });
|
|
1909
|
-
if (item) {
|
|
1914
|
+
if (item) {
|
|
1915
|
+
newWork.push(item);
|
|
1916
|
+
setCooldown(key);
|
|
1917
|
+
// Record dispatch timestamp so re-dispatch is suppressed during ADO lag window
|
|
1918
|
+
try {
|
|
1919
|
+
mutatePullRequests(projectPrPath(project), prs => {
|
|
1920
|
+
const target = prs.find(p => p.id === pr.id);
|
|
1921
|
+
if (target) target._conflictFixedAt = new Date().toISOString();
|
|
1922
|
+
});
|
|
1923
|
+
} catch (e) { log('warn', `conflict-fix timestamp: ${e.message}`); }
|
|
1924
|
+
}
|
|
1910
1925
|
}
|
|
1911
1926
|
}
|
|
1912
1927
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.894",
|
|
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"
|