Skip to content

fix(process): enumerate newly assigned Windows environment variables - #81

Merged
steipete merged 1 commit into
mainfrom
w94/windows-env-enumeration
Oct 3, 2026
Merged

steipete merged 1 commit into
mainfrom
w94/windows-env-enumeration

Conversation

@steipete

@steipete steipete commented Oct 2, 2026 •

Copy link
Copy Markdown

Assigning a startup-absent native environment variable such as TZ on Windows added its name to the proxy's key list but left its accessor non-enumerable. Environment copies omitted the value, and children created with those copies lost it.

Make written properties enumerable while retaining their native getter/setter and SHARE_ENV promotion behavior. Adapts the enumeration fix from oven-sh#35254 (closed), credited to @robobun, at the current Windows proxy boundary.

Fork PR CI has Linux and macOS lanes and no Windows lane. Native Windows Server 2022 proof uses Node 24.21.0 as oracle:

Check Node 24 Fork baseline 6a5d9c721f Patched 470f0015ab
Environment regression fixture pass fail pass
OpenClaw diagnostic environment test 10 pass 9 pass / 1 fail 10 pass
Full W86 32-envelope selection — 2,525 pass / 49 fail 2,526 pass / 48 fail

The matrix preserves every previously passing assertion, every envelope exit status, and all unhandled-error counts. Both runs have 276 skips and 22 pending assertions behind the existing lazy-alias crash, addressed separately by #83. All 32 envelopes completed; 23 have exit status zero. The remaining failures are the existing W86 baseline failures. The actual Windows proxy also has two new regressions that fail before and pass after on macOS; its full file passes 12 tests with two native-Windows skips.

Unpublished build 37077657615 passed cross-build, native Windows smoke, and manifest; Publish was skipped. ZIP SHA-256: 43ea5bbe455acca40867207c9f7827fa1066741f047f691a835028422f2a7869; executable SHA-256: 182bef0b54165a488b2aa5b5d97c500946b733fa3d11c437af6cd6ee40433860. Both matched locally and on Windows. The executable is unsigned and was not published.

Head fc8cc67aa75510a7e90f4297a1e140080fd47d22 rebases the unchanged runtime patch onto #80. Linux and macOS CI pass on that exact head in 37081121367; the refreshed branch P2 review is scoped-clean. The final combined Windows qualification will also include #80 and the other Windows fixes. The unrelated Claude duplicate-finder action fails because its provider credentials are not configured.

Adapt the native-accessor enumeration fix from oven-sh#35254 at the Windows proxy boundary, preserving its native setters and SHARE_ENV promotion.

Co-authored-by: robobun <117481402+robobun@users.noreply.github.com>
@steipete
steipete force-pushed the w94/windows-env-enumeration branch from 470f001 to fc8cc67 Compare October 3, 2026 00:13
@steipete
steipete marked this pull request as ready for review October 3, 2026 00:45
@steipete
steipete merged commit a9a27de into main Oct 3, 2026
6 checks passed
@steipete
steipete deleted the w94/windows-env-enumeration branch October 3, 2026 00:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant