Repository navigation
fix(zcode): use patched Node for Windows acceptance - #2008
Merged
hidb4ai merged 1 commit intoOct 15, 2026
Merged
Conversation
knqiufan
requested review from
AlexStocks,
PsiACE and
yihong0618
as code owners
October 15, 2026 03:11
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Which issue or RFC does this PR close?
Refs #1999. Also addresses the Windows process-exit failure reported by the ZCode acceptance on #1972.
Rationale for this change
The linked job passes the plugin Node tests and one complete controlled CLI acceptance, then its second acceptance exits with
host_process_exit_3221226505in P3-03. This matches the native-exit failure tracked in #1999. #1972 changes only two RFC Markdown files; the workflow runs on every PR synchronization, including documentation changes.The passing run 38377096482 tested merge
4dd04f2dagainst masteree50b36d; the failing run tested merge644b5847against master7f38426e. GitHub tests the synthesized merge with the current base, so these CI runs also contain different master changes despite the documentation-only PR diff.The pinned Node 24.15.0 contains a Windows shutdown race fixed by nodejs/node#61999: a delayed worker task can post to an already-closing libuv async handle. On Windows, the upstream redirect/fetch/exit reproduction fails 40/40 times with
0xC0000409on 24.15.0 and exits normally 40/40 times on 24.21.0. Node 24.20.0 also fixes that reproduction, but the actual ZCode plugin host test aborts there with the separatefs-event.cpath assertion; 24.21.0 contains its fix, nodejs/node#65118.The original failing job retained no process stderr, so its exact native assertion cannot be recovered. This change removes verified runtime crash paths and retains content-free signatures to distinguish any recurrence. The same numeric return code alone cannot establish the failing native component.
What changes are included in this PR?
Are there any user-facing changes?
The acceptance runtime and failure summaries change. Each invocation must still exit successfully; no retry or exit-code suppression is added. Public APIs and persisted application data formats are unchanged.
How was this change tested?
Local execution used Windows, the pinned ZCode source
29628c9acdb81b703bbd4080c207a0e7ce5e276e/ CLI 0.16.9, and checksummed official Node binaries.Windows CI run 38674979962 passed on attempt 1 at commit
b450f854: a fresh host build, 81 Python harness tests, all 23 plugin Node tests, both independent controlled CLI acceptances, and all four Pi-to-ZCode cases. CI used Node 24.21.0 and pnpm 10.33.2; live-model cases were deselected.uv run --locked --no-sync pytest evaluation/zcode_guidance/tests tests/test_zcode_acceptance_protocol.py tests/test_zcode_acceptance_host.py -q: 81 passed with Python 3.12.node --test integrations/zcode/plugins/powercontext/tests/*.test.mjswith Node 24.21.0 andZCODE_CLI_BIN: all 23 passed, including actual native host discovery and controlled HTTP fixtures.uv run --locked --no-sync pytest tests/e2e/test_zcode_host_acceptance.py -m 'zcode_host_acceptance and not zcode_live_model' --zcode-acceptance-output <temporary-directory> -q: two independent actual CLI + real SQLite Server acceptances passed, with two live-model cases deselected. Each completed P3-01 through P3-09 with a fresh profile, Scope and database.uv run --locked --no-sync pytest tests/e2e/test_cross_host_work_continuity.py -m cross_host_acceptance --cross-host-acceptance-output <temporary-directory> -q: all four actual Pi-to-ZCode cases passed with controlled inference and real persistence.python -m evaluation.zcode_guidance.pin --check,python scripts/check_workflow_actions.py, Ruff andgit diff --checkpassed.uv run prek run -a: all hooks except native Windowsty-checkpassed. That check reports existing POSIX-only attributes such asos.O_NOFOLLOW,fcntl.flockandos.mkfifo;uv run --locked --no-sync ty check --python-platform linuxpassed separately.AI usage statement
OpenAI Codex assisted with CI investigation, implementation and validation. The author is responsible for the changes.