@yemi33/minions 0.1.234 → 0.1.236

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,10 +1,14 @@
1
1
  # Changelog
2
2
 
3
- ## 0.1.234 (2026-04-03)
3
+ ## 0.1.236 (2026-04-03)
4
4
 
5
5
  ### Fixes
6
+ - CLI audit — kill dashboard on restart, expose kill/complete, update help
6
7
  - clean _pendingReason on all status→done transitions, not just updateWorkItemStatus
7
8
 
9
+ ### Other
10
+ - docs: fix outdated references across all documentation
11
+
8
12
  ## 0.1.233 (2026-04-03)
9
13
 
10
14
  ### Fixes
package/README.md CHANGED
@@ -354,18 +354,14 @@ When an agent fails (timeout, crash, error), the engine marks the work item as `
354
354
 
355
355
  ## Auto-Discovery Pipeline
356
356
 
357
- The engine discovers work from 5 sources, in priority order:
357
+ The engine discovers work from 4 sources, in priority order:
358
358
 
359
359
  | Priority | Source | Dispatch Type |
360
360
  |----------|--------|---------------|
361
- | 1 | PRs with changes-requested | `fix` |
362
- | 2 | PRs with human `@minions` feedback | `fix` |
363
- | 3 | PRs with build failures | `fix` |
364
- | 4 | PRs pending review | `review` |
365
- | 5 | PRs needing build/test verification | `test` |
366
- | 6 | Plan items (`plans/*.json`, approved) | `implement` |
367
- | 7 | Per-project work items | item's `type` |
368
- | 8 | Central work items | item's `type` |
361
+ | 1 | Pull requests (changes-requested, human feedback, build failures, pending review) | `fix`, `review`, `test` |
362
+ | 2 | Plan items (`plans/*.json`, approved) | `implement` |
363
+ | 3 | Per-project work items | item's `type` |
364
+ | 4 | Central work items (project-agnostic tasks) | item's `type` |
369
365
 
370
366
  Each item passes through: dedup (checks pending, active, AND recently completed), cooldown, and agent availability gates. See `docs/auto-discovery.md` for the full pipeline.
371
367
 
package/bin/minions.js CHANGED
@@ -431,6 +431,7 @@ const engineCmds = new Set([
431
431
  'start', 'stop', 'status', 'pause', 'resume',
432
432
  'queue', 'sources', 'discover', 'dispatch',
433
433
  'spawn', 'work', 'cleanup', 'mcp-sync', 'plan',
434
+ 'kill', 'complete',
434
435
  ]);
435
436
 
436
437
  if (!cmd || cmd === 'help' || cmd === '--help' || cmd === '-h') {
@@ -454,9 +455,13 @@ if (!cmd || cmd === 'help' || cmd === '--help' || cmd === '-h') {
454
455
  minions pause / resume Pause/resume dispatching
455
456
  minions dispatch Force a dispatch cycle
456
457
  minions discover Dry-run work discovery
458
+ minions queue Show dispatch queue (pending/active/completed)
459
+ minions sources Show work source status per project
457
460
  minions work <title> [opts] Add a work item
458
461
  minions spawn <agent> <prompt> Manually spawn an agent
459
462
  minions plan <file|text> [proj] Run a plan
463
+ minions kill Kill all active agents and reset to pending
464
+ minions complete <dispatch-id> Manually mark a dispatch as completed
460
465
  minions cleanup Clean temp files, worktrees, zombies
461
466
  minions nuke --confirm Factory reset (delete state, reset config to defaults)
462
467
 
@@ -484,8 +489,22 @@ if (!cmd || cmd === 'help' || cmd === '--help' || cmd === '-h') {
484
489
  } else if (cmd === 'up' || cmd === 'restart') {
485
490
  // Start both engine and dashboard — the go-to command after a reboot
486
491
  ensureInstalled();
487
- // Stop engine if running (ignore errors)
492
+ // Stop engine if running
488
493
  try { execSync(`node "${path.join(MINIONS_HOME, 'engine.js')}" stop`, { stdio: 'ignore', cwd: MINIONS_HOME }); } catch {}
494
+ // Kill existing dashboard
495
+ try {
496
+ if (process.platform === 'win32') {
497
+ const out = execSync('wmic process where "name=\'node.exe\'" get processid,commandline /format:csv', { encoding: 'utf8', timeout: 10000, windowsHide: true });
498
+ for (const line of out.split('\n')) {
499
+ if (line.includes('dashboard.js') && line.includes('minions')) {
500
+ const pid = line.split(',').pop()?.trim();
501
+ if (pid && pid !== String(process.pid)) try { process.kill(parseInt(pid)); } catch {}
502
+ }
503
+ }
504
+ } else {
505
+ try { execSync('lsof -ti:7331 | xargs kill -9 2>/dev/null', { timeout: 5000 }); } catch {}
506
+ }
507
+ } catch {}
489
508
  const engineProc = spawn(process.execPath, [path.join(MINIONS_HOME, 'engine.js'), 'start'], {
490
509
  cwd: MINIONS_HOME, stdio: 'ignore', detached: true, windowsHide: true
491
510
  });
@@ -20,7 +20,7 @@ tick()
20
20
 
21
21
  ## Work Discovery
22
22
 
23
- `discoverWork()` iterates every project in `config.projects[]` and runs three core discovery sources. Results are prioritized: fixes > reviews > implements > work-items.
23
+ `discoverWork()` iterates every project in `config.projects[]` and runs four core discovery sources: pull requests, per-project work items, central work items, and pipeline/scheduled tasks. Results are prioritized: fixes > reviews > implements > work-items.
24
24
 
25
25
  Before scanning, the engine materializes plans and specs into project work items (side-effect writes to `work-items.json`), so they're picked up by the work items source below.
26
26
 
@@ -13,7 +13,7 @@ CC maintains a true multi-turn session using Claude CLI's `--resume` flag. Unlik
13
13
  **Session lifecycle:**
14
14
  - **Created** on first message (or after expiry/new-session)
15
15
  - **Resumed** on subsequent messages via `--resume <sessionId>`
16
- - **Expires** after 2 hours of inactivity or 50 turns
16
+ - **Expires** after 2 hours of inactivity
17
17
  - **Persisted** to `engine/cc-session.json` — survives dashboard restarts
18
18
  - **Frontend messages** saved to `localStorage` — survive page refresh
19
19
 
@@ -108,7 +108,7 @@ User message (CC panel, doc modal, or steer)
108
108
 
109
109
  POST /api/command-center (or /api/doc-chat, /api/steer-document)
110
110
 
111
- ├── Validate session (expiry, turn limit)
111
+ ├── Validate session (expiry check)
112
112
  ├── Build dynamic state preamble (buildCCStatePreamble)
113
113
  ├── callLLM() with sessionId (resume) or without (new)
114
114
  │ model: sonnet
@@ -1 +1,10 @@
1
- []
1
+ [
2
+ {
3
+ "id": "evaluate-work-type",
4
+ "summary": "evaluate work type removed — eval loop uses review exclusively",
5
+ "deprecated": "2026-04-02",
6
+ "reason": "Consolidated into review + evalLoop config. No separate evaluate dispatch.",
7
+ "locations": ["routing.md: evaluate row removed", "CLAUDE.md: evaluate references removed"],
8
+ "cleanup": "Already cleaned — routing.md and CLAUDE.md updated 2026-04-02"
9
+ }
10
+ ]
@@ -92,5 +92,4 @@ git checkout master
92
92
  git branch -D dist-clean
93
93
  ```
94
94
 
95
- The full workflow is documented in `.claude/skills/sync-to-personal/SKILL.md`.
96
95
 
package/engine/cli.js CHANGED
@@ -37,8 +37,9 @@ function handleCommand(cmd, args) {
37
37
  console.log(' spawn <a> <p> Manually spawn agent with prompt');
38
38
  console.log(' work <title> [o] Add to work-items.json queue');
39
39
  console.log(' plan <src> [p] Generate PRD from a plan (file or text)');
40
- console.log(' complete <id> Mark dispatch as done');
41
- console.log(' cleanup Clean temp files, worktrees, zombies');
40
+ console.log(' kill Kill all active agents, reset to pending');
41
+ console.log(' complete <id> Mark a dispatch as done');
42
+ console.log(' cleanup Clean temp files, worktrees, zombies');
42
43
  console.log(' mcp-sync Sync MCP servers from ~/.claude.json');
43
44
  console.log(' doctor Check prerequisites and runtime health');
44
45
  process.exit(1);
@@ -567,11 +568,19 @@ const commands = {
567
568
 
568
569
  complete(id) {
569
570
  if (!id) {
570
- console.log('Usage: node .minions/engine.js complete <dispatch-id>');
571
+ console.log('Usage: minions complete <dispatch-id>');
572
+ return;
573
+ }
574
+ const dispatch = getDispatch();
575
+ const found = (dispatch.active || []).some(d => d.id === id);
576
+ if (!found) {
577
+ console.log(` Dispatch "${id}" not found in active queue.`);
578
+ const pending = (dispatch.pending || []).some(d => d.id === id);
579
+ if (pending) console.log(' (It is in pending — it hasn\'t started yet.)');
571
580
  return;
572
581
  }
573
582
  engine().completeDispatch(id, 'success');
574
- console.log(`Marked ${id} as completed.`);
583
+ console.log(` Marked ${id} as completed.`);
575
584
  },
576
585
 
577
586
  dispatch() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.234",
3
+ "version": "0.1.236",
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"
package/routing.md CHANGED
@@ -17,7 +17,6 @@ How the engine decides who handles what. Parsed by engine.js — keep the table
17
17
  | test | dallas | ralph |
18
18
  | ask | ripley | rebecca |
19
19
  | verify | dallas | ralph |
20
- | evaluate | ripley | rebecca |
21
20
  | decompose | ripley | rebecca |
22
21
  | meeting | ripley | rebecca |
23
22