@yemi33/minions 0.1.574 → 0.1.575

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,11 +1,12 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.574 (2026-04-08)
3
+ ## 0.1.575 (2026-04-08)
4
4
 
5
5
  ### Fixes
6
6
  - remove dead stdin prepend path, clean up spawn-agent cache logic
7
7
 
8
8
  ### Other
9
+ - perf: slim preamble, async PID write, remove dead API routes code
9
10
  - perf: skip preamble on streaming session resume
10
11
 
11
12
  ## 0.1.572 (2026-04-08)
package/dashboard.js CHANGED
@@ -644,25 +644,10 @@ function buildCCStatePreamble() {
644
644
  const planFiles = [...safeReadDir(PLANS_DIR), ...safeReadDir(PRD_DIR)].filter(f => f.endsWith('.md') || f.endsWith('.json'));
645
645
 
646
646
  const schedules = CONFIG.schedules || [];
647
- const schedSummary = schedules.length > 0
648
- ? schedules.map(s => `- ${s.id}: "${s.title}" (cron: ${s.cron}, type: ${s.type || 'implement'}, ${s.enabled === false ? 'disabled' : 'enabled'})`).join('\n')
649
- : '(none configured)';
647
+ const enabledSchedules = schedules.filter(s => s.enabled !== false).length;
650
648
 
651
- let pipelineSummary = '(none configured)';
652
- try {
653
- const { getPipelines, getPipelineRuns } = require('./engine/pipeline');
654
- const pipelines = getPipelines();
655
- if (pipelines.length > 0) {
656
- const runs = getPipelineRuns();
657
- pipelineSummary = pipelines.map(p => {
658
- const pRuns = runs[p.id] || [];
659
- const lastRun = pRuns.length > 0 ? pRuns[pRuns.length - 1] : null;
660
- const lastStatus = lastRun ? ` (last run: ${lastRun.status})` : '';
661
- const triggerInfo = p.trigger && p.trigger.cron ? `, cron: ${p.trigger.cron}` : ', manual';
662
- return `- ${p.id}: "${p.title}" (${p.stages ? p.stages.length : 0} stages${triggerInfo}, ${p.enabled === false ? 'disabled' : 'enabled'})${lastStatus}`;
663
- }).join('\n');
664
- }
665
- } catch {}
649
+ let pipelineCount = 0;
650
+ try { pipelineCount = require('./engine/pipeline').getPipelines().length; } catch {}
666
651
 
667
652
  const result = `### Agents
668
653
  ${agents}
@@ -672,21 +657,13 @@ ${active}
672
657
  Pending: ${pending}
673
658
 
674
659
  ### Quick Counts
675
- PRs: ${prCount} | Work items: ${wiCount} | Plans/PRDs on disk: ${planFiles.length} | Schedules: ${schedules.length}
660
+ PRs: ${prCount} | Work items: ${wiCount} | Plans/PRDs: ${planFiles.length} | Schedules: ${enabledSchedules}/${schedules.length} enabled | Pipelines: ${pipelineCount}
676
661
 
677
662
  ### Projects
678
663
  ${projects}
679
664
 
680
- ### Scheduled Tasks
681
- ${schedSummary}
682
-
683
- ### Pipelines
684
- ${pipelineSummary}
685
-
686
- ### Dashboard API
687
- Run \`curl http://localhost:7331/api/routes\` for full endpoint listing.
688
-
689
- For details on any of the above, use your tools to read files under \`${MINIONS_DIR}\`.`;
665
+ Use tools to read \`config.json\` (schedules), \`pipelines/\` dir, or \`curl http://localhost:7331/api/routes\` for details.
666
+ For all state files, look under \`${MINIONS_DIR}\`.`;
690
667
  _preambleCache = result;
691
668
  _preambleCacheTs = now;
692
669
  return result;
@@ -714,16 +691,6 @@ function parseCCActions(text) {
714
691
  return { text: displayText, actions };
715
692
  }
716
693
 
717
- // ── API routes reference for CC — populated by server setup ──────────────────
718
- let _apiRoutesRef = null; // set to ROUTES array once server initializes
719
- function _getApiRoutesSummary() {
720
- if (!_apiRoutesRef) return '(API routes not yet loaded — fetch GET /api/routes to discover endpoints)';
721
- return _apiRoutesRef
722
- .filter(r => r.path !== '/api/routes' && typeof r.path === 'string')
723
- .map(r => `- \`${r.method} ${r.path}\` — ${r.desc}${r.params ? ' | Params: ' + r.params : ''}`)
724
- .join('\n');
725
- }
726
-
727
694
  // ── Shared LLM call core — used by CC panel and doc modals ──────────────────
728
695
 
729
696
  // Session store for doc modals — keyed by filePath or title, persisted to disk
@@ -4255,8 +4222,6 @@ What would you like to discuss or change? When you're happy, say "approve" and I
4255
4222
  ];
4256
4223
 
4257
4224
  // Expose routes to CC preamble builder (once, on first request)
4258
- if (!_apiRoutesRef) _apiRoutesRef = ROUTES;
4259
-
4260
4225
  // ── Route Dispatcher ────────────────────────────────────────────────────────
4261
4226
 
4262
4227
  const pathname = req.url.split('?')[0];
@@ -126,9 +126,9 @@ const proc = claudeIsNative
126
126
 
127
127
  fs.appendFile(debugPath, `PID=${proc.pid || 'none'}\nargs=${actualArgs.join(' ').slice(0, 500)}\n`, () => {});
128
128
 
129
- // Write PID file for parent engine to verify spawn
129
+ // Write PID file for parent engine to verify spawn (async — engine checks after 5s)
130
130
  const pidFile = promptFile.replace(/prompt-/, 'pid-').replace(/\.md$/, '.pid');
131
- fs.writeFileSync(pidFile, String(proc.pid || ''));
131
+ fs.writeFile(pidFile, String(proc.pid || ''), () => {});
132
132
 
133
133
  // Send prompt via stdin
134
134
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.574",
3
+ "version": "0.1.575",
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"