@yemi33/minions 0.1.557 → 0.1.559

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,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.559 (2026-04-08)
4
+
5
+ ### Features
6
+ - max retry cap and escalation for build fix cycles (#488)
7
+
8
+ ### Fixes
9
+ - protect pinned KB items from sweep deduplication
10
+
3
11
  ## 0.1.557 (2026-04-08)
4
12
 
5
13
  ### Features
@@ -144,7 +144,7 @@ async function kbSweep() {
144
144
  btn.textContent = 'sweeping...';
145
145
  btn.style.color = 'var(--blue)';
146
146
  try {
147
- const res = await fetch('/api/knowledge/sweep', { method: 'POST', signal: AbortSignal.timeout(300000) });
147
+ const res = await fetch('/api/knowledge/sweep', { method: 'POST', signal: AbortSignal.timeout(300000), headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ pinnedKeys: getPinnedItems().filter(function(k) { return k.startsWith('knowledge/'); }) }) });
148
148
  const data = await res.json();
149
149
  if (data.ok) {
150
150
  btn.textContent = 'done';
@@ -51,6 +51,7 @@ async function openSettings() {
51
51
  '<div style="display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px">' +
52
52
  settingsField('Eval Max Iterations', 'set-evalMaxIterations', e.evalMaxIterations || 3, '', 'Max review→fix cycles before escalating (1-10)') +
53
53
  settingsField('Eval Max Cost', 'set-evalMaxCost', e.evalMaxCost === null || e.evalMaxCost === undefined ? '' : e.evalMaxCost, '$', 'USD ceiling per work item across all eval iterations (blank = no limit)') +
54
+ settingsField('Max Build Fix Attempts', 'set-maxBuildFixAttempts', e.maxBuildFixAttempts || 3, '', 'Max auto-fix dispatches per PR before escalating to human (1-10)') +
54
55
  settingsField('Version Check Interval', 'set-versionCheckInterval', e.versionCheckInterval || 3600000, 'ms', 'How often to check npm for updates (default: 1 hour)') +
55
56
  '</div>' +
56
57
 
@@ -169,6 +170,7 @@ async function saveSettings() {
169
170
  allowTempAgents: document.getElementById('set-allowTempAgents').checked,
170
171
  evalMaxIterations: document.getElementById('set-evalMaxIterations').value,
171
172
  evalMaxCost: document.getElementById('set-evalMaxCost').value || null,
173
+ maxBuildFixAttempts: document.getElementById('set-maxBuildFixAttempts').value,
172
174
  versionCheckInterval: document.getElementById('set-versionCheckInterval').value,
173
175
  };
174
176
 
package/dashboard.js CHANGED
@@ -1766,12 +1766,15 @@ const server = http.createServer(async (req, res) => {
1766
1766
  global._kbSweepInFlight = true;
1767
1767
  global._kbSweepStartedAt = Date.now();
1768
1768
  try {
1769
+ const body = await readBody(req).catch(() => ({}));
1769
1770
  const entries = getKnowledgeBaseEntries();
1770
1771
  if (entries.length < 2) return jsonReply(res, 200, { ok: true, summary: 'nothing to sweep (< 2 entries)' });
1771
1772
 
1772
- // Build a manifest of all KB entries with their content
1773
+ // Build a manifest of all KB entries with their content (skip pinned — user wants to keep them)
1774
+ const pinnedKeys = new Set(body.pinnedKeys || []);
1773
1775
  const manifest = [];
1774
1776
  for (const e of entries) {
1777
+ if (pinnedKeys.has('knowledge/' + e.cat + '/' + e.file)) continue;
1775
1778
  const content = safeRead(path.join(MINIONS_DIR, 'knowledge', e.cat, e.file));
1776
1779
  if (!content) continue;
1777
1780
  manifest.push({ category: e.cat, file: e.file, title: e.title, agent: e.agent, date: e.date, content: content.slice(0, 3000) });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.557",
3
+ "version": "0.1.559",
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"