[GH-ISSUE #6308] [Docs] Windows source checkouts: say the general source suite is not expected to pass on Windows #3809

Closed
opened 2026-10-31 00:44:17 +00:00 by bsakaguchi · 0 comments
Owner

Originally created by @mpratsaki on GitHub (Oct 22, 2026).
Original GitHub issue: https://github.com/morluto/rea/issues/6308

Before submitting

  • I searched the existing issues for a related documentation report.
  • I removed credentials, tokens, private paths, and sensitive target data.

Documentation location

CONTRIBUTING.md → "Windows source checkouts" (and the developer commands in docs/testing.md)

Problem

"Windows source checkouts" explains that the native addon is missing from a source checkout, but not that the general source suite (npm run test:fast, test:changed, test:local) is not expected to pass on Windows. CI runs that suite on Linux and only a curated lane on Windows (docs/testing.md, CI lane selection), so this looks intended. A Windows contributor cannot tell that from the contributing guide.

While preparing a PR from Windows, npm run test:changed reported dozens of failures in files the change did not touch. I only established that they were pre-existing by stashing the change and rerunning the same files on the base revision.

Expected content

A short note in "Windows source checkouts", for example:

The general source suite runs on Linux in CI; Windows CI runs a curated lane. On a Windows checkout, some source tests fail because they use POSIX fixture paths, #!/bin/sh tool stubs, or POSIX rename semantics. Compare failures against the base revision, or run the suite on Linux or WSL, before attributing them to a change.

If maintainers would rather make these tests portable or skip them on win32, that would also resolve it. This report only asks that the expectation be documented.

Supporting evidence

Executed on Windows 11 Home 10.0.26200 (x64), Node 24.18.0, npm 11.16.0, clean npm ci of main at 31dc03504, with the matching rea-agents@6.7.0 native addon restored as documented:

npx vitest run --project domain --project services --project adapters --project composition --project conformance --project evaluation

Result: 98 failed, 13,957 passed (14,318 total) in 26 files. The same change-independent failures appeared on an earlier base (1417bf943): 57 failures in 14 files from test:changed, identical with and without the change.

Representative causes (first failure per file):

Cause Example files Example failure
POSIX fixture paths src/config.test.ts, src/application/Doctor.test.ts, tests/composition/reverseEngineering.test.ts, src/hopper/HopperTargetLease.test.ts expected '/usr/bin/hopper' to be '/fixture/home/.local/share/rea/hopper…'; mkdtemp '\tmp\rea-hl-XXXXXX' ENOENT
#!/bin/sh tool stubs / launchers src/wasm/WabtArtifactProvider.test.ts (26), src/ghidra/GhidraLanguageOverride.test.ts, src/ghidra/GhidraSnapshotCache.test.ts Provider ghidra adapter failed during resolve_analysis_profile
POSIX rename semantics src/artifacts/GodotPckArtifactReader.test.ts, src/application/binaryDiagnostics/ByteEntropyService.test.ts EPERM: operation not permitted, rename …
Other host-specific expectations src/browser/ElectronFileScope.cleanup.test.ts, src/electron/ElectronFuseProvider.test.ts, src/adb/AdbHostFileName.test.ts, src/javascript/sourceMaps/SourceMapCommand.test.ts temp-path equality, expected { ok: false } to deeply equal { ok: true, fileName: 'a\b' }

Boundary projects show the same pattern: tests/boundary/mcp/advertisedPatternsVMode.test.ts fails on Windows on main (2452efa92) because the advertised Windows absolute-path pattern ^(?:[\\/]|[A-Za-z]:[\\/]) is rejected in v mode ("Invalid character in character class"); CI runs it on Linux, where that pattern is not produced. Unlike the source tests above, this one may describe a real Windows-only schema issue rather than a POSIX-only test.

On Linux (Ubuntu 24.04, Node 24.18.0), test:changed on the same branch showed none of these failures (one unrelated vi.waitFor timing failure passed on rerun).

Not established: whether every one of the 26 files is intentionally POSIX-only; I did not inspect each failure beyond the first message.

Additional context

Found while preparing #5597 and #6148 from Windows. The full list of 26 files and first messages is available if useful.

🤖 Drafted with Claude Code, posted with my OK

Originally created by @mpratsaki on GitHub (Oct 22, 2026). Original GitHub issue: https://github.com/morluto/rea/issues/6308 ### Before submitting - [x] I searched the existing issues for a related documentation report. - [x] I removed credentials, tokens, private paths, and sensitive target data. ### Documentation location `CONTRIBUTING.md` → "Windows source checkouts" (and the developer commands in `docs/testing.md`) ### Problem "Windows source checkouts" explains that the native addon is missing from a source checkout, but not that the general source suite (`npm run test:fast`, `test:changed`, `test:local`) is not expected to pass on Windows. CI runs that suite on Linux and only a curated lane on Windows (`docs/testing.md`, CI lane selection), so this looks intended. A Windows contributor cannot tell that from the contributing guide. While preparing a PR from Windows, `npm run test:changed` reported dozens of failures in files the change did not touch. I only established that they were pre-existing by stashing the change and rerunning the same files on the base revision. ### Expected content A short note in "Windows source checkouts", for example: > The general source suite runs on Linux in CI; Windows CI runs a curated lane. On a Windows checkout, some source tests fail because they use POSIX fixture paths, `#!/bin/sh` tool stubs, or POSIX rename semantics. Compare failures against the base revision, or run the suite on Linux or WSL, before attributing them to a change. If maintainers would rather make these tests portable or skip them on `win32`, that would also resolve it. This report only asks that the expectation be documented. ### Supporting evidence Executed on Windows 11 Home 10.0.26200 (x64), Node 24.18.0, npm 11.16.0, clean `npm ci` of `main` at 31dc03504, with the matching `rea-agents@6.7.0` native addon restored as documented: ``` npx vitest run --project domain --project services --project adapters --project composition --project conformance --project evaluation ``` Result: 98 failed, 13,957 passed (14,318 total) in 26 files. The same change-independent failures appeared on an earlier base (1417bf943): 57 failures in 14 files from `test:changed`, identical with and without the change. Representative causes (first failure per file): | Cause | Example files | Example failure | |---|---|---| | POSIX fixture paths | `src/config.test.ts`, `src/application/Doctor.test.ts`, `tests/composition/reverseEngineering.test.ts`, `src/hopper/HopperTargetLease.test.ts` | `expected '/usr/bin/hopper' to be '/fixture/home/.local/share/rea/hopper…'`; `mkdtemp '\tmp\rea-hl-XXXXXX'` ENOENT | | `#!/bin/sh` tool stubs / launchers | `src/wasm/WabtArtifactProvider.test.ts` (26), `src/ghidra/GhidraLanguageOverride.test.ts`, `src/ghidra/GhidraSnapshotCache.test.ts` | `Provider ghidra adapter failed during resolve_analysis_profile` | | POSIX rename semantics | `src/artifacts/GodotPckArtifactReader.test.ts`, `src/application/binaryDiagnostics/ByteEntropyService.test.ts` | `EPERM: operation not permitted, rename …` | | Other host-specific expectations | `src/browser/ElectronFileScope.cleanup.test.ts`, `src/electron/ElectronFuseProvider.test.ts`, `src/adb/AdbHostFileName.test.ts`, `src/javascript/sourceMaps/SourceMapCommand.test.ts` | temp-path equality, `expected { ok: false } to deeply equal { ok: true, fileName: 'a\b' }` | Boundary projects show the same pattern: `tests/boundary/mcp/advertisedPatternsVMode.test.ts` fails on Windows on `main` (2452efa92) because the advertised Windows absolute-path pattern `^(?:[\\/]|[A-Za-z]:[\\/])` is rejected in `v` mode ("Invalid character in character class"); CI runs it on Linux, where that pattern is not produced. Unlike the source tests above, this one may describe a real Windows-only schema issue rather than a POSIX-only test. On Linux (Ubuntu 24.04, Node 24.18.0), `test:changed` on the same branch showed none of these failures (one unrelated `vi.waitFor` timing failure passed on rerun). Not established: whether every one of the 26 files is intentionally POSIX-only; I did not inspect each failure beyond the first message. ### Additional context Found while preparing #5597 and #6148 from Windows. The full list of 26 files and first messages is available if useful. 🤖 Drafted with Claude Code, posted with my OK
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#3809
No description provided.