@yemi33/minions 0.1.1862 → 0.1.1863

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.1863 (2026-05-11)
4
+
5
+ ### Fixes
6
+ - push early + targeted-only verify, fully avoid runtime CLI crash trigger
7
+
3
8
  ## 0.1.1862 (2026-05-11)
4
9
 
5
10
  ### Fixes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.1862",
3
+ "version": "0.1.1863",
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"
@@ -59,21 +59,23 @@ Deliver this as if the user asked you directly in a CLI:
59
59
  You are already running in a git worktree on branch `{{branch_name}}`. Do NOT create additional worktrees — the engine pre-created one for you.
60
60
  Do NOT remove the worktree — the engine handles cleanup automatically.
61
61
 
62
- ## Validation
62
+ ## Validation — TARGETED ONLY, before publish
63
63
 
64
- Before publishing, prove the change with the repo's own documented checks:
64
+ Prove the change with the repo's own documented checks, BUT keep the
65
+ verification surface narrow:
65
66
 
66
67
  - Use the project's source of truth for commands: `CLAUDE.md`, README, package scripts, Makefile, or equivalent build config.
67
- - Run the checks that are relevant to this task, including tests that cover the changed behavior. Prefer the full suite when practical.
68
- - Capture the exact commands run and the meaningful result in the PR description or completion report. Do not summarize validation as "tests passed" without naming what ran.
69
- - Fix regressions you introduced. If failures are pre-existing or outside the task, capture the evidence and make that explicit in the PR.
70
- - Do not publish changes with a broken build or failing tests that you introduced.
68
+ - **Run only TARGETED tests covering the code you changed.** A single test file or a single test name is enough. Examples: `node test/unit/<my-file>.test.js`, `python -m pytest tests/test_my_module.py::test_my_case`, `cargo test --test my_test`.
69
+ - **Do NOT run the full project test suite (`node test/unit.test.js`, `npm test`, `yarn test`, etc.) as a verification step.** The full-suite run in a long agent session is the primary trigger for the runtime CLI crash documented in shared-rules.md. The engine and PR CI handle full-suite regression detection your job is to verify the code you wrote works, not to re-prove the entire suite.
70
+ - Use a quick `node --check <file>` (or equivalent) for syntax validation cheap and never crashes.
71
+ - Capture the exact targeted commands run and the meaningful result in the PR description or completion report.
72
+ - Do not publish changes with a broken build or failing tests that you introduced; if your targeted check fails, fix it before pushing.
71
73
 
72
74
  Long builds, dependency installs, and tests may be quiet for several minutes. Let the normal CLI command run naturally; do not add artificial heartbeat output or split commands just to show progress.
73
75
 
74
- ## Publish
76
+ ## Publish — push EARLY, before any expansion of verification scope
75
77
 
76
- After the change is validated or any unavoidable limitation is clearly documented, commit only the relevant files and push this branch:
78
+ After targeted validation passes, commit only the relevant files and push this branch IMMEDIATELY. This protects the work product: a runtime CLI crash on any later command cannot lose code that's already on the remote.
77
79
 
78
80
  ```bash
79
81
  git add <specific files>
@@ -74,36 +74,48 @@ Use `status: "failed"` plus an accurate `failure_class`, `retryable`, and `needs
74
74
 
75
75
  **No-op completions:** when you correctly decline to do the work — the change was already shipped on master, the dispatch premise is wrong, the flagged review comment is your own author-notes, etc. — write `status: "success"`, `pr: "N/A"`, AND add `"noop": true`. The engine treats `noop: true` as the canonical signal that no PR was expected, marks the work item done with the rationale surfaced in `_noopReason` for the dashboard, and skips the missing-PR-attachment failure. Without `noop: true`, an empty PR will still be flagged as a silent failure and auto-retried up to `maxRetries` times.
76
76
 
77
- ## Test Invocation direct binary, not `.cmd` shims
78
-
79
- When running tests via the shell/PowerShell tool, invoke the underlying
80
- runner binary **directly** instead of going through a package-manager
81
- wrapper. The runtime CLIs (Copilot CLI, Claude Code CLI) deterministically
82
- crash on Windows when invoking `.cmd` shims (`npm`, `yarn`, `pnpm`, `npx`,
83
- `mocha`, `jest`, `vitest`) for substantial test commands inside a real
84
- agent-prompt session (confirmed 2026-05-11 by controlled reproduction).
85
- The crash signature: silent exit with OS code 1, no result event, no error
86
- message the engine surfaces it as "phantom completion."
87
-
88
- For test verification, prefer:
89
-
90
- - `npm test`, `yarn test`, `pnpm test`, `npx vitest`, `npx jest`, `npx mocha`
91
- - `node test/<file>.test.js` (Node projects with custom runners)
92
- - `node node_modules/<runner>/bin/<runner>.js <args>` (resolve the runner manually)
93
- - ✅ `python -m pytest tests/test_foo.py` (Python — `.exe`, not `.cmd`)
94
- - `cargo test --test foo` (Rust)
95
- - `dotnet test path/to/Project.Tests.csproj` (.NET)
96
- - `go test ./...` (Go)
97
-
98
- To map a package-manager wrapper to its direct invocation, check the
99
- project's `package.json` `scripts` section (Node), `pyproject.toml` (Python),
100
- `Cargo.toml` (Rust), or the project's CLAUDE.md / README. Direct invocations
101
- are also significantly faster (no shim overhead).
102
-
103
- If the project's test setup *requires* the wrapper (e.g., it sets env vars
104
- or installs dependencies in a hook), report this in your completion block
105
- and use targeted node invocations for verification anyway the wrapper
106
- crashes the agent before the test results land.
77
+ ## CRITICAL RULE: Never run `npm`/`yarn`/`pnpm` test scripts via the shell tool
78
+
79
+ **You will crash silently if you run `npm test`, `npm run <anything>`, `yarn test`,
80
+ `pnpm test`, `npx mocha`, `npx jest`, `npx vitest`, or any package-manager
81
+ script wrapper from your shell/PowerShell tool.** The runtime CLI (whether
82
+ Copilot CLI or Claude Code CLI) deterministically exits with OS code 1 mid-
83
+ conversation when invoking a `.cmd` shim that spawns a child node process
84
+ producing substantial stdout. This is confirmed by controlled reproductions
85
+ on both runtimes (2026-05-11) including with full memory dumps. You will
86
+ NOT see an error message; the engine will mark your work as "phantom
87
+ completion" and the WI will fail with no PR.
88
+
89
+ This rule overrides any contradictory guidance you might find elsewhere
90
+ (including playbook instructions to "run the full suite"). The playbook
91
+ wants the test signal; it does NOT want you to crash trying to get it.
92
+ Use direct binary invocations every time:
93
+
94
+ | never | instead |
95
+ | --- | --- |
96
+ | `npm test` | `node test/unit.test.js` (or whatever the project's `test` script wraps) |
97
+ | `npm run <script>` | The underlying command — check `package.json` `scripts.<script>` |
98
+ | `yarn test`, `pnpm test` | Same find the underlying `node ...` invocation |
99
+ | `npx mocha tests/` | `node node_modules/mocha/bin/mocha.js tests/` |
100
+ | `npx jest <file>` | `node node_modules/jest/bin/jest.js <file>` |
101
+ | `npx vitest run` | `node node_modules/vitest/vitest.mjs run` |
102
+
103
+ Non-`.cmd` test runners are safe (no shim chain):
104
+
105
+ - `python -m pytest tests/test_foo.py` ← Python uses `.exe`, not `.cmd`
106
+ - `cargo test --test foo` ← Rust cargo is `.exe`
107
+ - `dotnet test path/to/Project.Tests.csproj` ← .NET dotnet is `.exe`
108
+ - `go test ./...` ← Go is `.exe`
109
+
110
+ **Targeted single-file tests are STRONGLY preferred over full-suite runs**
111
+ regardless of how you invoke them. They're faster, smaller in output, and
112
+ produce the same regression signal for the code you actually changed.
113
+
114
+ If the project's test setup truly requires `npm test` (e.g., it sets env
115
+ vars in a hook), report this in your completion block and use the closest
116
+ direct equivalent anyway. Do not invoke the wrapper — verification you
117
+ don't get because you crashed is worse than verification you skipped
118
+ deliberately.
107
119
 
108
120
  ## Long-Running Commands
109
121