Skip to content

ci: pin Node 26.13.0, which fixes a worker teardown crash - #1908

Merged
simonklee merged 1 commit into
mainfrom
harden/407-ci-node-26-13
Nov 1, 2026
Merged

simonklee merged 1 commit into
mainfrom
harden/407-ci-node-26-13

Conversation

@simonklee

Copy link
Copy Markdown
Member

CI pins Node 26.7.0. On Windows, the Node run of the Yoga default-config worker test sometimes crashed with an access violation at process exit. A minidump showed the fault inside Node, not OpenTUI: after a worker exits, Node 26.7.0 can write one byte into the freed worker Realm, and here that byte broke V8's page pool, which then crashed in V8::Dispose. No OpenTUI code was loaded at the time. Node fixed this in nodejs/node#65778, released in 26.10.0.

This pins the current LTS, 26.13.0, in every workflow that pinned 26.7.0. It needed #1907 first: since Node 26.9.0, FileHandle.sync() throws under the Permission Model, which the core Node lane uses, and that broke audio recording. The engines floor stays at >=26.4.0.

Tested on Linux under 26.13.0 with the core and Solid Node lanes and the core, Solid, SSH and Keymap packed-consumer tests; on Windows, this PR's CI and later runs are the evidence. The crash hit about 1 in 175 Windows jobs, so one green run proves little.

Node 26.7.0 can write into a freed worker Realm after the worker exits
(nodejs/node#65778, fixed in 26.10.0). A Windows minidump of the Yoga
default-config worker test showed the stray byte breaking V8's page pool,
so the child crashed with 0xC0000005 in V8::Dispose at process exit.

Pin the current LTS, 26.13.0, in every workflow that pinned 26.7.0.

Issue: 407
@simonklee
simonklee requested a review from kommander as a code owner November 1, 2026 05:14
@simonklee
simonklee merged commit 7d9f54f into main Nov 1, 2026
27 checks passed
@simonklee
simonklee deleted the harden/407-ci-node-26-13 branch November 1, 2026 15:28
Dicklesworthstone added a commit to Dicklesworthstone/opentui that referenced this pull request Nov 3, 2026
…pend fixes

Upstream main moved from e43fdc1 to 5453279. Local main stayed 80e4ded, 71 ahead. The eight incoming commits are:

- 7d9f54f ci: pin Node 26.13.0, which fixes a worker teardown crash (anomalyco#1908)
- 6d707f4 native: measure text height without the at-most clamp (anomalyco#1906)
- e43fdc1 core: leave raw mode when suspend() settles (anomalyco#1905)
- b7d9797 Release v0.8.2
- 1034082 core: keep a typed U+FEFF in native key events (anomalyco#1915)
- 26d6aac native: drag the held button in URxvt motion after a wheel tick (anomalyco#1917)
- 82b3710 native: keep the first resize across hook republishes (anomalyco#1918)
- 5453279 native: tell typed private-use characters from functional keys (anomalyco#1919)

merge-tree 8389620 is one clean tree. Against local main it is 25 files, +199/−98, and 0 path deletions. The local fork commits stay. anomalyco/opentui is not pushed. fork/main and fork/master were even with local main and are fast-forwarded.
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