[PR #1926] [MERGED] test(clients): verify native Claude Code integration on Windows #4915

Closed
opened 2026-10-31 00:56:43 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/1926
Author: @pablodiazjorge
Created: 10/11/2026
Status: ✅ Merged
Merged: 10/11/2026
Merged by: @morluto

Base: main ← Head: feat/windows-claude-verifier


📝 Commits (1)

  • 800a0f9 test(clients): verify native Claude Code integration on Windows

📊 Changes

2 files changed (+13 additions, -9 deletions)

View changed files

📝 docs/testing.md (+7 -4)
📝 scripts/verify-claude-client.mjs (+6 -5)

📄 Description

Summary

Fixes #1923. verify:claude-client asserted POSIX, so the native Claude Code lane never ran on Windows, although nothing in it depends on POSIX. This removes the assertion and documents how to select Claude Code on Windows.

Problem and expected behavior

On win32 the verifier stopped before doing anything ("Native Claude Code verifier requires POSIX; Windows is unverified"). Expected: the same lane runs on native Windows. With the assertion removed, both modes pass there unchanged. The one Windows-specific trap is the default command: an npm install puts only a claude.cmd shim on PATH, which execFile cannot spawn, so the preflight fails with spawn claude ENOENT unless REA_VERIFY_CLAUDE_COMMAND points at claude.exe.

Change and scope

  • scripts/verify-claude-client.mjs: remove the POSIX assertion; on win32 the preflight error now says to select claude.exe and where npm installs keep it.
  • docs/testing.md: record that 2.1.296 is verified on native Windows too, explain how to select claude.exe, and drop native Windows from the unverified list of this lane.

Not included: resolving the npm shim automatically (an explicit REA_VERIFY_CLAUDE_COMMAND, as for every other client lane, keeps the verifier simple), and the other client verifiers that still assert POSIX.

Contract and boundary impact

  • Semantic owner and earliest changed stage: the Claude Code client verifier script and its testing documentation.
  • CLI and MCP/tool-catalog contract: none.
  • Provider, bridge, target-format, or platform compatibility: the Claude Code client lane now runs on native Windows; no product code changes.
  • Evidence, artifact, provenance, or reconstruction contract: none.
  • Process execution, authorization, cleanup, or containment impact: none; the lane keeps its isolated CLAUDE_CONFIG_DIR, Git workspace and loopback model fixture.
  • Generated metadata, package, or installation impact: none.

Evidence and regression coverage

  • Tests added or updated: none; the change is the verifier itself, executed below on native Windows.
  • Base reproduction or other evidence: on 9d8e42bd the verifier exits on win32 at the assertion. With it removed, every run below passed.
  • User-visible CLI/MCP output (if applicable): receipt fields from the Windows runs below.
  • Remaining proof gaps: live Anthropic API and bare-mode skill activation stay unverified, as on POSIX.

Validation performed

Windows 11 x64 (26H2), non-elevated, Node 22.22.3, on 9d8e42bd (the branch was then rebased onto dfe31172; none of the 10 new commits touch the verifier, its model fixture, verify-package-core.mjs, docs/testing.md or the client setup code):

  • npm ci, npm run build:cached — passed
  • node scripts/verify-claude-client.mjs call and chat with REA_VERIFY_CLAUDE_COMMAND set to the npm-installed Claude Code 2.1.296 claude.exe — passed: catalogSize 172, schemasChecked 172, evidenceSeen true, skillLoaded true (call)
  • REA_VERIFY_CLAUDE_COMMAND=<npm>\node_modules\@anthropic-ai\claude-code\bin\claude.exe npm run verify:claude-client (Claude Code 2.1.261) — passed: catalogSize 172, schemasChecked 172, evidenceSeen true, skillLoaded true
  • node scripts/verify-claude-client.mjs chat with 2.1.261 — passed
  • node scripts/verify-claude-client.mjs call and chat with the standalone Claude Code 2.1.295 claude.exe — passed, same checks
  • node scripts/verify-claude-client.mjs call without REA_VERIFY_CLAUDE_COMMAND (npm install, only claude.cmd on PATH) — fails at the preflight with spawn claude ENOENT and the new Windows hint

WSL Ubuntu, Node 24.18.0:

  • npm run check:fast — passed
  • npx oxfmt --check scripts/verify-claude-client.mjs docs/testing.md — passed

Compatibility, safety, and release

  • Breaking changes or migration steps: none.
  • Real Hopper/Ghidra, browser, or OS coverage: native Windows 11 x64 for the Claude Code client lane.
  • Package or release metadata impact: none.
  • Security, privacy, process, or containment review: no new process launches; the verifier still uses a loopback model fixture and an isolated configuration folder.

Review checklist

  • This PR addresses a concrete problem or an agreed enhancement.
  • The PR has one focused outcome and the title follows type(scope): outcome.
  • Related issue is linked, or the reason for not linking one is stated above.
  • Tests cover changed observable behavior and meaningful failure paths.
  • Owning docs, contracts, and generated metadata are updated where needed.
  • User-visible CLI/MCP changes include representative output.
  • I checked the final diff for secrets, unrelated cleanup, and unsupported claims.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/1926 **Author:** [@pablodiazjorge](https://github.com/pablodiazjorge) **Created:** 10/11/2026 **Status:** ✅ Merged **Merged:** 10/11/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `feat/windows-claude-verifier` --- ### 📝 Commits (1) - [`800a0f9`](https://github.com/morluto/rea/commit/800a0f93996cf472780fcd63bbf274017c3b6c3b) test(clients): verify native Claude Code integration on Windows ### 📊 Changes **2 files changed** (+13 additions, -9 deletions) <details> <summary>View changed files</summary> 📝 `docs/testing.md` (+7 -4) 📝 `scripts/verify-claude-client.mjs` (+6 -5) </details> ### 📄 Description ## Summary Fixes #1923. `verify:claude-client` asserted POSIX, so the native Claude Code lane never ran on Windows, although nothing in it depends on POSIX. This removes the assertion and documents how to select Claude Code on Windows. ## Problem and expected behavior On win32 the verifier stopped before doing anything ("Native Claude Code verifier requires POSIX; Windows is unverified"). Expected: the same lane runs on native Windows. With the assertion removed, both modes pass there unchanged. The one Windows-specific trap is the default command: an npm install puts only a `claude.cmd` shim on `PATH`, which `execFile` cannot spawn, so the preflight fails with `spawn claude ENOENT` unless `REA_VERIFY_CLAUDE_COMMAND` points at `claude.exe`. ## Change and scope - `scripts/verify-claude-client.mjs`: remove the POSIX assertion; on win32 the preflight error now says to select `claude.exe` and where npm installs keep it. - `docs/testing.md`: record that 2.1.296 is verified on native Windows too, explain how to select `claude.exe`, and drop native Windows from the unverified list of this lane. Not included: resolving the npm shim automatically (an explicit `REA_VERIFY_CLAUDE_COMMAND`, as for every other client lane, keeps the verifier simple), and the other client verifiers that still assert POSIX. ## Contract and boundary impact - Semantic owner and earliest changed stage: the Claude Code client verifier script and its testing documentation. - CLI and MCP/tool-catalog contract: none. - Provider, bridge, target-format, or platform compatibility: the Claude Code client lane now runs on native Windows; no product code changes. - Evidence, artifact, provenance, or reconstruction contract: none. - Process execution, authorization, cleanup, or containment impact: none; the lane keeps its isolated `CLAUDE_CONFIG_DIR`, Git workspace and loopback model fixture. - Generated metadata, package, or installation impact: none. ## Evidence and regression coverage - Tests added or updated: none; the change is the verifier itself, executed below on native Windows. - Base reproduction or other evidence: on `9d8e42bd` the verifier exits on win32 at the assertion. With it removed, every run below passed. - User-visible CLI/MCP output (if applicable): receipt fields from the Windows runs below. - Remaining proof gaps: live Anthropic API and bare-mode skill activation stay unverified, as on POSIX. ## Validation performed Windows 11 x64 (26H2), non-elevated, Node 22.22.3, on `9d8e42bd` (the branch was then rebased onto `dfe31172`; none of the 10 new commits touch the verifier, its model fixture, `verify-package-core.mjs`, `docs/testing.md` or the client setup code): - `npm ci`, `npm run build:cached` — passed - `node scripts/verify-claude-client.mjs call` and `chat` with `REA_VERIFY_CLAUDE_COMMAND` set to the npm-installed Claude Code 2.1.296 `claude.exe` — passed: `catalogSize` 172, `schemasChecked` 172, `evidenceSeen` true, `skillLoaded` true (call) - `REA_VERIFY_CLAUDE_COMMAND=<npm>\node_modules\@anthropic-ai\claude-code\bin\claude.exe npm run verify:claude-client` (Claude Code 2.1.261) — passed: `catalogSize` 172, `schemasChecked` 172, `evidenceSeen` true, `skillLoaded` true - `node scripts/verify-claude-client.mjs chat` with 2.1.261 — passed - `node scripts/verify-claude-client.mjs call` and `chat` with the standalone Claude Code 2.1.295 `claude.exe` — passed, same checks - `node scripts/verify-claude-client.mjs call` without `REA_VERIFY_CLAUDE_COMMAND` (npm install, only `claude.cmd` on `PATH`) — fails at the preflight with `spawn claude ENOENT` and the new Windows hint WSL Ubuntu, Node 24.18.0: - `npm run check:fast` — passed - `npx oxfmt --check scripts/verify-claude-client.mjs docs/testing.md` — passed ## Compatibility, safety, and release - Breaking changes or migration steps: none. - Real Hopper/Ghidra, browser, or OS coverage: native Windows 11 x64 for the Claude Code client lane. - Package or release metadata impact: none. - Security, privacy, process, or containment review: no new process launches; the verifier still uses a loopback model fixture and an isolated configuration folder. ## Review checklist - [x] This PR addresses a concrete problem or an agreed enhancement. - [x] The PR has one focused outcome and the title follows `type(scope): outcome`. - [x] Related issue is linked, or the reason for not linking one is stated above. - [x] Tests cover changed observable behavior and meaningful failure paths. - [x] Owning docs, contracts, and generated metadata are updated where needed. - [x] User-visible CLI/MCP changes include representative output. - [x] I checked the final diff for secrets, unrelated cleanup, and unsupported claims. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 00:56:43 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#4915
No description provided.