[PR #6782] docs(contributing): document restoring the Windows native addon from the verified npm tarball #7412

Open
opened 2026-11-01 21:47:41 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/6782
Author: @agnaylor
Created: 10/23/2026
Status: 🔄 Open

Base: main ← Head: pr/windows-addon-restore-note


📝 Commits (4)

  • 9a7e8c4 docs(contributing): document restoring the Windows native addon from the verified npm tarball
  • df8e497 docs(contributing): say which part of dist.integrity the openssl digest must match
  • 40bc379 Merge upstream main e9b21aadc into pr/windows-addon-restore-note
  • f6dc135 docs(contributing): name Git Bash, openssl and GNU tar as the Windows restore prerequisites

📊 Changes

1 file changed (+22 additions, -0 deletions)

View changed files

📝 CONTRIBUTING.md (+22 -0)

📄 Description

Summary

A Windows source checkout cannot build the Windows native addon (it builds only on Linux with MinGW-w64), and without native/windows/build/manifest.json and rea-windows-x64.node the build lock refuses to start npm run build:cached. CONTRIBUTING already says to keep the generated addon uncommitted but not how a Windows contributor obtains it. This adds a short, digest-verified procedure: take the two files from the same-version rea-agents tarball after checking its sha512 against the registry.

Problem and expected behavior

Trigger: npm ci && npm run build:cached in a fresh Windows 11 source checkout. Observed: the build lock (run-exclusive) refuses because it cannot own descendants without the native controls. Expected: CONTRIBUTING tells the contributor how to proceed without a Linux build lane when their checkout matches a published release.

Change and scope

Docs only: one paragraph and a five-line command block in CONTRIBUTING.md, placed after the existing note on the Linux build lane. The paragraph names the prerequisites: Git Bash from Git for Windows, which provides openssl and GNU tar; on Windows 11 the built-in tar.exe (bsdtar 3.8.9) rejected --force-local. It keeps the existing statement that a checkout whose version differs from every published release still needs that lane. No issue is linked; none was found for this setup question.

Contract and boundary impact

  • Semantic owner and earliest changed stage: contributor documentation.
  • Contribution scope fit and linked maintainer decision: not applicable.
  • CLI and MCP/tool-catalog contract: none.
  • Provider, bridge, target-format, or platform compatibility: Windows contributor workflow only.
  • Evidence, artifact, provenance, or reconstruction contract: the procedure verifies the tarball's sha512 against the registry before extracting; the loader's own manifest checks are unchanged.
  • Target selection, authority, upstream behavior, and cleanup details: not applicable.
  • Generated metadata, package, or installation impact: none.

Expected effects:

  • Documentation or usability only; no target interaction.

Evidence and regression coverage

  • Base reproduction: on Windows 11 (Git 2.55.0.windows.4, Node 24.19.0), a fresh checkout at rea-agents 6.7.0 refused npm run build:cached without the addon files; the refusal read REA Windows native controls are unavailable: Missing packaged Windows native file native/windows/build/manifest.json. After restoring the two files from the 6.7.0 tarball, whose base64 sha512 matched npm view rea-agents@6.7.0 dist.integrity after its sha512- prefix, npm run build:cached exited 0. Plain tar -xzf on a C: path failed in Git Bash, which is why the block uses --force-local.
  • Remaining proof gaps: the procedure was followed once, by hand, for one version; the digest was computed with a script rather than the exact openssl line shown, which produces the same base64 sha512.

Validation performed

  • npm run docs:check on this branch after merging upstream main e9b21aadc (Node 24.22.1, fresh npm ci) — exit 0.
  • The restore for rea-agents@6.7.0 on Windows 11 — digests matched, then npm run build:cached exited 0.

Compatibility, safety, and release

  • Breaking changes or migration steps: none.
  • Real Hopper/Ghidra, browser, or OS coverage: Windows 11.
  • Package or release metadata impact: none.
  • Security, privacy, process, or containment review: the files come only from the official registry tarball and are used only after the digest check.

Author readiness

Human owner: @agnaylor

  • I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work.
  • I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps.
  • I declare this PR ready for initial maintainer review.

Before merge

  • This PR addresses a concrete problem or an agreed enhancement.
  • Material scope and authority questions are resolved, and any required maintainer scope decision covers the final diff.
  • 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.

🤖 Generated with Claude Code


🔄 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/6782 **Author:** [@agnaylor](https://github.com/agnaylor) **Created:** 10/23/2026 **Status:** 🔄 Open **Base:** `main` ← **Head:** `pr/windows-addon-restore-note` --- ### 📝 Commits (4) - [`9a7e8c4`](https://github.com/morluto/rea/commit/9a7e8c405a3d08baff53292f74d75ca7b0a9d857) docs(contributing): document restoring the Windows native addon from the verified npm tarball - [`df8e497`](https://github.com/morluto/rea/commit/df8e49714162463012c65c5f045649d9ff4604df) docs(contributing): say which part of dist.integrity the openssl digest must match - [`40bc379`](https://github.com/morluto/rea/commit/40bc37950b3fa33f63adb3da01fb0350ccdfb36a) Merge upstream main e9b21aadc into pr/windows-addon-restore-note - [`f6dc135`](https://github.com/morluto/rea/commit/f6dc13567edefdc6a0e33c12253dbb4c9e39781b) docs(contributing): name Git Bash, openssl and GNU tar as the Windows restore prerequisites ### 📊 Changes **1 file changed** (+22 additions, -0 deletions) <details> <summary>View changed files</summary> 📝 `CONTRIBUTING.md` (+22 -0) </details> ### 📄 Description ## Summary A Windows source checkout cannot build the Windows native addon (it builds only on Linux with MinGW-w64), and without `native/windows/build/manifest.json` and `rea-windows-x64.node` the build lock refuses to start `npm run build:cached`. CONTRIBUTING already says to keep the generated addon uncommitted but not how a Windows contributor obtains it. This adds a short, digest-verified procedure: take the two files from the same-version `rea-agents` tarball after checking its sha512 against the registry. ## Problem and expected behavior Trigger: `npm ci && npm run build:cached` in a fresh Windows 11 source checkout. Observed: the build lock (`run-exclusive`) refuses because it cannot own descendants without the native controls. Expected: CONTRIBUTING tells the contributor how to proceed without a Linux build lane when their checkout matches a published release. ## Change and scope Docs only: one paragraph and a five-line command block in `CONTRIBUTING.md`, placed after the existing note on the Linux build lane. The paragraph names the prerequisites: Git Bash from Git for Windows, which provides `openssl` and GNU `tar`; on Windows 11 the built-in `tar.exe` (bsdtar 3.8.9) rejected `--force-local`. It keeps the existing statement that a checkout whose version differs from every published release still needs that lane. No issue is linked; none was found for this setup question. ## Contract and boundary impact - Semantic owner and earliest changed stage: contributor documentation. - Contribution scope fit and linked maintainer decision: not applicable. - CLI and MCP/tool-catalog contract: none. - Provider, bridge, target-format, or platform compatibility: Windows contributor workflow only. - Evidence, artifact, provenance, or reconstruction contract: the procedure verifies the tarball's sha512 against the registry before extracting; the loader's own manifest checks are unchanged. - Target selection, authority, upstream behavior, and cleanup details: not applicable. - Generated metadata, package, or installation impact: none. Expected effects: - [x] Documentation or usability only; no target interaction. ## Evidence and regression coverage - Base reproduction: on Windows 11 (Git 2.55.0.windows.4, Node 24.19.0), a fresh checkout at rea-agents 6.7.0 refused `npm run build:cached` without the addon files; the refusal read `REA Windows native controls are unavailable: Missing packaged Windows native file native/windows/build/manifest.json`. After restoring the two files from the 6.7.0 tarball, whose base64 sha512 matched `npm view rea-agents@6.7.0 dist.integrity` after its `sha512-` prefix, `npm run build:cached` exited 0. Plain `tar -xzf` on a `C:` path failed in Git Bash, which is why the block uses `--force-local`. - Remaining proof gaps: the procedure was followed once, by hand, for one version; the digest was computed with a script rather than the exact `openssl` line shown, which produces the same base64 sha512. ## Validation performed - `npm run docs:check` on this branch after merging upstream main e9b21aadc (Node 24.22.1, fresh `npm ci`) — exit 0. - The restore for `rea-agents@6.7.0` on Windows 11 — digests matched, then `npm run build:cached` exited 0. ## Compatibility, safety, and release - Breaking changes or migration steps: none. - Real Hopper/Ghidra, browser, or OS coverage: Windows 11. - Package or release metadata impact: none. - Security, privacy, process, or containment review: the files come only from the official registry tarball and are used only after the digest check. ## Author readiness Human owner: @agnaylor - [x] I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work. - [x] I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps. - [x] I declare this PR ready for initial maintainer review. ## Before merge - [ ] This PR addresses a concrete problem or an agreed enhancement. - [ ] Material scope and authority questions are resolved, and any required maintainer scope decision covers the final diff. - [ ] 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. 🤖 Generated with [Claude Code](https://claude.com/claude-code) --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
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#7412
No description provided.