@yemi33/minions 0.1.117 → 0.1.119

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,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.119 (2026-04-01)
4
+
5
+ ### Dashboard
6
+ - dashboard.js
7
+ - dashboard/js/settings.js
8
+
9
+ ## 0.1.118 (2026-04-01)
10
+
11
+ ### Playbooks
12
+ - plan-to-prd.md
13
+
3
14
  ## 0.1.117 (2026-04-01)
4
15
 
5
16
  ### Dashboard
@@ -31,6 +31,11 @@ async function openSettings() {
31
31
  settingsField('Heartbeat Timeout', 'set-heartbeatTimeout', e.heartbeatTimeout || 300000, 'ms', 'No output = dead after this') +
32
32
  settingsField('Worktree Create Timeout', 'set-worktreeCreateTimeout', e.worktreeCreateTimeout || 300000, 'ms', 'Timeout for git worktree add (increase for large repos/Windows)') +
33
33
  settingsField('Worktree Create Retries', 'set-worktreeCreateRetries', e.worktreeCreateRetries || 1, '', 'Retry count for transient worktree add failures (0-3)') +
34
+ settingsField('Worktree Root', 'set-worktreeRoot', e.worktreeRoot || '../worktrees', '', 'Relative path for git worktrees') +
35
+ settingsField('Idle Alert', 'set-idleAlertMinutes', e.idleAlertMinutes || 15, 'min', 'Alert after agent idle this long') +
36
+ settingsField('Shutdown Timeout', 'set-shutdownTimeout', e.shutdownTimeout || 300000, 'ms', 'Max wait for agents during graceful shutdown') +
37
+ settingsField('Restart Grace Period', 'set-restartGracePeriod', e.restartGracePeriod || 1200000, 'ms', 'Grace period before orphan detection on restart') +
38
+ settingsField('Meeting Round Timeout', 'set-meetingRoundTimeout', e.meetingRoundTimeout || 600000, 'ms', 'Auto-advance meeting round after this') +
34
39
  '</div>' +
35
40
  '<div style="display:flex;flex-direction:column;gap:6px;margin-bottom:16px">' +
36
41
  settingsToggle('Auto-approve Plans', 'set-autoApprovePlans', !!e.autoApprovePlans, 'PRDs are approved automatically without human review') +
@@ -108,6 +113,11 @@ async function saveSettings() {
108
113
  heartbeatTimeout: document.getElementById('set-heartbeatTimeout').value,
109
114
  worktreeCreateTimeout: document.getElementById('set-worktreeCreateTimeout').value,
110
115
  worktreeCreateRetries: document.getElementById('set-worktreeCreateRetries').value,
116
+ worktreeRoot: document.getElementById('set-worktreeRoot').value,
117
+ idleAlertMinutes: document.getElementById('set-idleAlertMinutes').value,
118
+ shutdownTimeout: document.getElementById('set-shutdownTimeout').value,
119
+ restartGracePeriod: document.getElementById('set-restartGracePeriod').value,
120
+ meetingRoundTimeout: document.getElementById('set-meetingRoundTimeout').value,
111
121
  autoApprovePlans: document.getElementById('set-autoApprovePlans').checked,
112
122
  autoDecompose: document.getElementById('set-autoDecompose').checked,
113
123
  allowTempAgents: document.getElementById('set-allowTempAgents').checked,
package/dashboard.js CHANGED
@@ -3071,6 +3071,11 @@ What would you like to discuss or change? When you're happy, say "approve" and I
3071
3071
  if (e.heartbeatTimeout !== undefined) config.engine.heartbeatTimeout = Math.max(60000, Number(e.heartbeatTimeout) || D.heartbeatTimeout);
3072
3072
  if (e.worktreeCreateTimeout !== undefined) config.engine.worktreeCreateTimeout = Math.max(60000, Number(e.worktreeCreateTimeout) || D.worktreeCreateTimeout);
3073
3073
  if (e.worktreeCreateRetries !== undefined) config.engine.worktreeCreateRetries = Math.max(0, Math.min(3, Number(e.worktreeCreateRetries) || D.worktreeCreateRetries));
3074
+ if (e.worktreeRoot !== undefined) config.engine.worktreeRoot = String(e.worktreeRoot || D.worktreeRoot);
3075
+ if (e.idleAlertMinutes !== undefined) config.engine.idleAlertMinutes = Math.max(1, Number(e.idleAlertMinutes) || D.idleAlertMinutes);
3076
+ if (e.shutdownTimeout !== undefined) config.engine.shutdownTimeout = Math.max(30000, Number(e.shutdownTimeout) || D.shutdownTimeout);
3077
+ if (e.restartGracePeriod !== undefined) config.engine.restartGracePeriod = Math.max(60000, Number(e.restartGracePeriod) || D.restartGracePeriod);
3078
+ if (e.meetingRoundTimeout !== undefined) config.engine.meetingRoundTimeout = Math.max(60000, Number(e.meetingRoundTimeout) || D.meetingRoundTimeout);
3074
3079
  if (e.autoApprovePlans !== undefined) config.engine.autoApprovePlans = !!e.autoApprovePlans;
3075
3080
  if (e.autoDecompose !== undefined) config.engine.autoDecompose = !!e.autoDecompose;
3076
3081
  if (e.allowTempAgents !== undefined) config.engine.allowTempAgents = !!e.allowTempAgents;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.117",
3
+ "version": "0.1.119",
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"
@@ -25,7 +25,7 @@ A user has provided a plan. Analyze it against the codebase and produce a struct
25
25
 
26
26
  Write the PRD to: `{{team_root}}/prd/{{project_name_lower}}-{{date}}.json`
27
27
 
28
- **If that file already exists**, append a counter: `{{project_name_lower}}-{{date}}-2.json`, `-3.json`, etc. Do NOT overwrite an existing PRD file — the engine tracks work items by filename.
28
+ **If that file already exists** (check BOTH `prd/` AND `prd/archive/`), append a counter: `{{project_name_lower}}-{{date}}-2.json`, `-3.json`, etc. Do NOT overwrite or reuse a filename from an archived PRD — the engine tracks work items by filename and will collide with old items.
29
29
 
30
30
  This file is NOT checked into the repo. The engine reads it on every tick and dispatches implementation work automatically.
31
31