@yemi33/minions 0.1.151 → 0.1.152

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.152 (2026-04-02)
4
+
5
+ ### Dashboard
6
+ - dashboard.js
7
+
3
8
  ## 0.1.151 (2026-04-02)
4
9
 
5
10
  ### Engine
package/dashboard.js CHANGED
@@ -3078,30 +3078,33 @@ What would you like to discuss or change? When you're happy, say "approve" and I
3078
3078
  if (!config.agents) config.agents = {};
3079
3079
 
3080
3080
  if (body.engine) {
3081
- // Validate and apply engine settings
3082
3081
  const e = body.engine;
3083
3082
  const D = shared.ENGINE_DEFAULTS;
3084
- if (e.tickInterval !== undefined) config.engine.tickInterval = Math.max(10000, Number(e.tickInterval) || D.tickInterval);
3085
- if (e.maxConcurrent !== undefined) config.engine.maxConcurrent = Math.max(1, Math.min(10, Number(e.maxConcurrent) || D.maxConcurrent));
3086
- if (e.inboxConsolidateThreshold !== undefined) config.engine.inboxConsolidateThreshold = Math.max(1, Number(e.inboxConsolidateThreshold) || D.inboxConsolidateThreshold);
3087
- if (e.agentTimeout !== undefined) config.engine.agentTimeout = Math.max(60000, Number(e.agentTimeout) || D.agentTimeout);
3088
- if (e.maxTurns !== undefined) config.engine.maxTurns = Math.max(5, Math.min(500, Number(e.maxTurns) || D.maxTurns));
3089
- if (e.heartbeatTimeout !== undefined) config.engine.heartbeatTimeout = Math.max(60000, Number(e.heartbeatTimeout) || D.heartbeatTimeout);
3090
- if (e.worktreeCreateTimeout !== undefined) config.engine.worktreeCreateTimeout = Math.max(60000, Number(e.worktreeCreateTimeout) || D.worktreeCreateTimeout);
3091
- if (e.worktreeCreateRetries !== undefined) config.engine.worktreeCreateRetries = Math.max(0, Math.min(3, Number(e.worktreeCreateRetries) || D.worktreeCreateRetries));
3083
+ const numericFields = {
3084
+ tickInterval: [10000], maxConcurrent: [1, 10], inboxConsolidateThreshold: [1],
3085
+ agentTimeout: [60000], maxTurns: [5, 500], heartbeatTimeout: [60000],
3086
+ worktreeCreateTimeout: [60000], worktreeCreateRetries: [0, 3],
3087
+ idleAlertMinutes: [1], shutdownTimeout: [30000], restartGracePeriod: [60000],
3088
+ meetingRoundTimeout: [60000],
3089
+ };
3090
+ for (const [key, [min, max]] of Object.entries(numericFields)) {
3091
+ if (e[key] !== undefined) {
3092
+ let val = Number(e[key]) || D[key];
3093
+ val = Math.max(min, val);
3094
+ if (max !== undefined) val = Math.min(max, val);
3095
+ config.engine[key] = val;
3096
+ }
3097
+ }
3092
3098
  if (e.worktreeRoot !== undefined) config.engine.worktreeRoot = String(e.worktreeRoot || D.worktreeRoot);
3093
- if (e.idleAlertMinutes !== undefined) config.engine.idleAlertMinutes = Math.max(1, Number(e.idleAlertMinutes) || D.idleAlertMinutes);
3094
- if (e.shutdownTimeout !== undefined) config.engine.shutdownTimeout = Math.max(30000, Number(e.shutdownTimeout) || D.shutdownTimeout);
3095
- if (e.restartGracePeriod !== undefined) config.engine.restartGracePeriod = Math.max(60000, Number(e.restartGracePeriod) || D.restartGracePeriod);
3096
- if (e.meetingRoundTimeout !== undefined) config.engine.meetingRoundTimeout = Math.max(60000, Number(e.meetingRoundTimeout) || D.meetingRoundTimeout);
3097
- if (e.autoApprovePlans !== undefined) config.engine.autoApprovePlans = !!e.autoApprovePlans;
3098
- if (e.autoDecompose !== undefined) config.engine.autoDecompose = !!e.autoDecompose;
3099
- if (e.allowTempAgents !== undefined) config.engine.allowTempAgents = !!e.allowTempAgents;
3099
+ for (const key of ['autoApprovePlans', 'autoReview', 'autoDecompose', 'allowTempAgents']) {
3100
+ if (e[key] !== undefined) config.engine[key] = !!e[key];
3101
+ }
3100
3102
  }
3101
3103
 
3102
3104
  if (body.claude) {
3103
- if (body.claude.allowedTools !== undefined) config.claude.allowedTools = String(body.claude.allowedTools);
3104
- if (body.claude.outputFormat !== undefined) config.claude.outputFormat = String(body.claude.outputFormat);
3105
+ for (const key of ['allowedTools', 'outputFormat']) {
3106
+ if (body.claude[key] !== undefined) config.claude[key] = String(body.claude[key]);
3107
+ }
3105
3108
  }
3106
3109
 
3107
3110
  if (body.agents) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.151",
3
+ "version": "0.1.152",
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"