Background
The Node 22/24/26 workflow update landed in 23e7e4e8ba48adbe03e04012f49c427bced47d57, but the test workflow failed only on build (26.x, windows-latest) during npm ci:
The install tried to download a Node 26 Windows prebuilt binary for ABI node-v147, then fell back to source compilation. The source build generated a Visual Studio project that inherited clang ThinLTO flags from the Node 26.3.0 header common.gypi, and MSVC failed at link time:
cl : warning D9002: ignoring unknown option '-flto=thin'
LINK : warning LNK4044: unrecognized option '/flto=thin'; ignored
LINK : fatal error LNK1117: syntax error in option 'opt:lldltojobs=2'
PR #275 restored green CI by excluding only windows-latest + 26.x from test.yml and github_release.yml:
Why this needs follow-up
The matrix exclusion is a temporary workaround, not the final desired state. While Node 26 remains covered on Linux, ARM Linux, and macOS, the release workflow will not publish a Windows Node 26 prebuilt binary. Windows users on Node 26 may still fall back to local source compilation and hit the same MSVC/linker failure.
Goal
Restore windows-latest + 26.x in both workflows once the Node 26/node-gyp/MSVC ThinLTO flag issue has a reliable fix or workaround.
Suggested next steps
- Track whether a newer Node 26 release or node-gyp release stops injecting clang ThinLTO flags into MSVC builds.
- Test removing the matrix exclusion after the upstream toolchain behavior changes.
- Confirm
npm ci, npm test, and node-pre-gyp package pass on Windows Node 26.
- Restore Windows Node 26 prebuilt binary publishing in
github_release.yml.
Background
The Node 22/24/26 workflow update landed in
23e7e4e8ba48adbe03e04012f49c427bced47d57, but thetestworkflow failed only onbuild (26.x, windows-latest)duringnpm ci:build (26.x, windows-latest)The install tried to download a Node 26 Windows prebuilt binary for ABI
node-v147, then fell back to source compilation. The source build generated a Visual Studio project that inherited clang ThinLTO flags from the Node 26.3.0 headercommon.gypi, and MSVC failed at link time:PR #275 restored green CI by excluding only
windows-latest+26.xfromtest.ymlandgithub_release.yml:6f79992d93c4963a6a9b36e0291e113502689537Why this needs follow-up
The matrix exclusion is a temporary workaround, not the final desired state. While Node 26 remains covered on Linux, ARM Linux, and macOS, the release workflow will not publish a Windows Node 26 prebuilt binary. Windows users on Node 26 may still fall back to local source compilation and hit the same MSVC/linker failure.
Goal
Restore
windows-latest+26.xin both workflows once the Node 26/node-gyp/MSVC ThinLTO flag issue has a reliable fix or workaround.Suggested next steps
npm ci,npm test, andnode-pre-gyp packagepass on Windows Node 26.github_release.yml.