@yemi33/minions 0.1.2161 → 0.1.2163

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.
@@ -146,7 +146,7 @@ const RENDER_VERSIONS = {
146
146
  dispatch: 2,
147
147
  engineLog: 2,
148
148
  metrics: 1,
149
- workItems: 2,
149
+ workItems: 3,
150
150
  skills: 1,
151
151
  mcpServers: 1,
152
152
  schedules: 1,
@@ -35,12 +35,13 @@ const _WI_ENRICHMENT_FIELDS = [
35
35
  //
36
36
  // Triggers:
37
37
  // * _preDispatchEval.valid === false (pre-dispatch acceptance gate rejected)
38
- // * _pendingReason in { pr_not_found, no_agent, budget_exceeded, dependency_unmet }
38
+ // * _pendingReason in { pr_not_found, no_agent, budget_exceeded }
39
39
  //
40
40
  // Does NOT trigger for transient reasons that auto-clear:
41
41
  // * cooldown / retry_cooldown — wait it out
42
42
  // * already_dispatched — engine reconciles on next tick
43
43
  // * branch_locked — wait for the holding dispatch
44
+ // * dependency_unmet — auto-clears when upstream dep finishes (engine discovery loop + DEPENDENCY_MET watch)
44
45
  //
45
46
  // Returns { kind, short, full } when the item needs attention, else null.
46
47
  // Pure helper (no DOM / escapeHtml deps) so it can be unit-tested in Node.
@@ -74,13 +75,6 @@ function needsAttentionInfo(item) {
74
75
  var budgetMsg = 'Assigned agent ' + agent + ' is over its maxBudgetUsd cap.';
75
76
  return { kind: 'budget_exceeded', short: budgetMsg, full: budgetMsg };
76
77
  }
77
- if (reason === 'dependency_unmet') {
78
- var deps = Array.isArray(item.depends_on) && item.depends_on.length
79
- ? item.depends_on.join(', ')
80
- : '<unknown>';
81
- var depMsg = 'Waiting on dependencies: ' + deps + '. (One or more are not yet done.)';
82
- return { kind: 'dependency_unmet', short: depMsg, full: depMsg };
83
- }
84
78
  return null;
85
79
  }
86
80
 
@@ -0,0 +1,43 @@
1
+ # Preflight & Doctor
2
+
3
+ `minions doctor` (and the lighter `minions preflight` that runs on every CLI
4
+ invocation) inspects the local environment for the conditions Minions needs
5
+ to dispatch agents reliably. Every row is one of: `OK`, `WARN`, `FAIL`.
6
+
7
+ This page documents the rows that are not self-explanatory from their message.
8
+
9
+ ## "Permission bypass: \<runtime\>"
10
+
11
+ Minions dispatches agents in **headless** mode — no human is sitting at the
12
+ terminal to answer "Allow this tool to run X?" permission prompts. Every
13
+ agent runtime adapter therefore declares a `permissionBypassFlags` list (the
14
+ flag set that tells the underlying CLI to skip every interactive permission
15
+ prompt). At doctor time we shell out to `<runtime> --help` and confirm those
16
+ flags still appear in the help text.
17
+
18
+ The check emits **WARN** (not FAIL) so an outdated or unusual CLI install
19
+ doesn't block existing dispatches — Minions still passes the flags, the
20
+ agent just risks hanging on a prompt if the CLI doesn't honor them.
21
+
22
+ WARN cases and remedies:
23
+
24
+ | Case | Meaning | Fix |
25
+ |------|---------|-----|
26
+ | `adapter did not declare permissionBypassFlags` | The runtime adapter is missing its declared bypass-flag list. Internal bug — open an issue. | Code change in `engine/runtimes/<name>.js`. |
27
+ | `could not invoke <runtime> --help` | The runtime binary was found but `--help` failed (exit non-zero, timeout, or no output). | Re-install the CLI; verify `<runtime> --help` works in a fresh shell. |
28
+ | `--help does not list expected flag(s): <flags>` | The installed CLI version is older than the flags Minions expects, **or** the resolved binary is a different CLI with the same name. | Update the CLI: `npm i -g @anthropic-ai/claude-code` for Claude, `winget upgrade Microsoft.CopilotCLI` (Windows) or `npm i -g @github/copilot` for the Copilot CLI. |
29
+
30
+ ### The `gh copilot` vs Copilot-CLI gotcha
31
+
32
+ On Linux CI agents, `which copilot` often resolves to `/usr/bin/gh` — the
33
+ GitHub CLI's **`gh copilot`** extension, not the standalone **Copilot CLI**
34
+ (`@github/copilot`). They share the binary name but have completely
35
+ different flag sets. The `gh copilot` extension does NOT accept
36
+ `--autopilot`, `--allow-all`, or `--no-ask-user`, so the WARN row will fire
37
+ even though the binary "works".
38
+
39
+ The warn is legitimate — dispatched agents using that binary would hang on
40
+ permission prompts. Install the standalone Copilot CLI (`npm i -g
41
+ @github/copilot`) ahead of `gh` in `$PATH`, or configure
42
+ `agents.<id>.cli` to point at the absolute path of the real Copilot CLI
43
+ binary.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.2161",
3
+ "version": "0.1.2163",
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"