Repository navigation
MP-B: require Node 22.18 and parse Node 24 test summaries - #2
Conversation
Review follow-ups on the Node baseline packet: - parseTestOutput: under Node's spec reporter, strip the "(N.NNNms)" suffix from failing-test names and skip the "failing tests:" section header, so a failing run reports the same names as TAP. Fixture tests for both formats, in their own describe (suite is now 485). - launch.ps1: compare Node major/minor instead of casting to [version], which threw on prerelease builds; fail closed on unparsable output; resolve -SummaryJson before the first possible Fail. - tools/README.md: both launcher prerequisites say Node 22.18+. - Worknote: review fixes, accepted Node 23.0-23.5 gap, verification. Written by the packet's Codex worker in a strict sandbox; verified outside the sandbox and committed by the coordinator (Foreman 485/485, tools 10/10). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01UTWx6KTPBs4koTLg8uZMHX
The verification table names the Gradle wrapper used on the machine that ran the checks. Add one sentence saying what it is. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017nnFLfHG1rVtWmS9c6mAQP
72edc63 to
f7b9923
Compare
main gained the CI workflow (.github/workflows/ci.yml). Nothing else changes on this branch. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017nnFLfHG1rVtWmS9c6mAQP
|
CI note, for the merge order.
The failing test is So merging this one first turns 🤖 Generated with Claude Code |
There was a problem hiding this comment.
Copilot review overview
🟢 Approval recommended
The runtime guards, documentation, parser behavior, and regression coverage are consistent and no unresolved defects were found.
Review effort: Balanced
Findings: None
What changed in this PR
Updates AgentCraft’s Node baseline and supports Node 24 test output.
Changes:
- Requires Node 22.18+ across launchers, manifests, and documentation.
- Parses TAP and Node spec-reporter summaries and failures.
- Adds parser regression fixtures and MP-B worknotes.
| File | Description |
|---|---|
README.md |
Updates the Node prerequisite. |
tools/README.md |
Updates launcher prerequisites. |
tools/package.json |
Raises the tools Node engine baseline. |
tools/mac.mjs |
Adds macOS launcher version validation. |
tools/launch.ps1 |
Adds early PowerShell version validation. |
foreman/package.json |
Raises the Foreman Node engine baseline. |
foreman/src/repos.ts |
Supports Node 24 test-reporter output. |
foreman/test/repos.test.ts |
Adds parser regression coverage. |
docs/multiplayer/worknotes/MP-B.md |
Records implementation and verification details. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Wave 0 packet MP-B of the multiplayer campaign (
docs/multiplayer/work-packets.md).foreman/package.json,tools/package.json:engines.nodeis now>=22.18(audit A-04/A-05).tools/launch.ps1,tools/mac.mjs: fail early with "Node 22.18 or newer is required (you have X)".README.md,tools/README.md: prerequisites say Node 22.18+.docs/multiplayer/worknotes/MP-B.md: root cause, commands, results, review fixes.Changes outside the packet's matrix row (coordinator-authorized)
On Node 24.18 the Foreman suite was 481/482, and not for the reason the audit describes.
parseTestOutputinforeman/src/repos.tsonly understood TAP output; Node 24's defaultnode --testreporter printsℹ pass 10summary lines and✖ name (1.234ms)failure lines under a✖ failing tests:header. The change, all inside that one pure function:ℹas well as#on the summary lines;Fixture tests for both formats live in their own
describe('parseTestOutput').repos.tsis one of the files CLAUDE.md lists for theagent-sandbox-guardianreview; that review found that pass/fail comes from the process exit code and that onlydirector.tsreadsfailures, so agent-controlled test output cannot influence a merge through these fields. Two prerequisite lines intools/README.mdwere also authorized.Review
Three independent reviewers (sandbox guardian, tests, launchers): no blocker or major findings. Fixed in the second commit: the failing-name parsing above;
launch.ps1no longer casts the Node version to[version](that threw on prerelease builds) and now resolves-SummaryJsonbefore the first possibleFail. Accepted and recorded in the worknote: engines and guards accept Node 23.0 to 23.5, an end-of-life line without default type stripping.package-lock.jsonengine fields were deliberately left untouched (npm cidoes not read them).Verification
Re-run by the coordinator outside the worker's sandbox, macOS, Node 24.18.0:
foreman:npm run checkis 485/485 (22 files), typecheck and protocol-doc freshness pass.tools:npm testis 10/10.launch.ps1guard logic, run on its own underpwsh7: accepts v22.18.0, v22.18.0-rc.1, v23.0.0, v24.18.0 and a v25 nightly; rejects v21.9.0, v22.17.9, non-version output and empty output with the required message.Not verified: Windows PowerShell 5.1 and a real Windows launch.
🤖 Generated with Claude Code
https://claude.ai/code/session_01UTWx6KTPBs4koTLg8uZMHX