NousResearch/hermes-agent · error · Error
[stage-native-deps] get-windows is ${srcVersion} but the sta
Error message
[stage-native-deps] get-windows is ${srcVersion} but the staged lib/windows.js rewrite was verified against ${GET_WINDOWS_VERSION}. Re-verify the rewrite (STAGED_WINDOWS_JS) against the new version, then update GET_WINDOWS_VERSION. What it means
Error "[stage-native-deps] get-windows is ${srcVersion} but the staged lib/windows.js rewrite was verified against ${GET_WINDOWS_VERSION}. Re-verify the rewrite (STAGED_WINDOWS_JS) against the new version, then update GET_WINDOWS_VERSION." thrown in NousResearch/hermes-agent.
Source
Thrown at apps/desktop/scripts/stage-native-deps.mjs:439
* Per-platform native payload: macOS ships the `main` Swift helper binary
* (universal, present in every published tarball), Windows the node-pre-gyp
* prebuilt under lib/binding (downloaded by the package's install script on
* a Windows host — cross-platform packs already can't happen, see
* stageNodePtyInto), Linux nothing (it shells out to xprop at runtime).
*/
const GET_WINDOWS_VERSION = '9.3.0'
export function stageGetWindowsInto(
srcRoot,
destRoot,
{ platform = process.platform, rebuild } = {}
) {
// The STAGED_WINDOWS_JS rewrite mirrors this exact version's export surface.
// A version bump must fail the build here until the rewrite is re-verified —
// otherwise it ships stale and fails soft as a generic "unavailable".
const srcVersion = JSON.parse(readFileSync(join(srcRoot, 'package.json'), 'utf8')).version
if (srcVersion !== GET_WINDOWS_VERSION) {
throw new Error(
`[stage-native-deps] get-windows is ${srcVersion} but the staged lib/windows.js ` +
`rewrite was verified against ${GET_WINDOWS_VERSION}. Re-verify the rewrite ` +
`(STAGED_WINDOWS_JS) against the new version, then update GET_WINDOWS_VERSION.`
)
}
rmSync(destRoot, { recursive: true, force: true })
mkdirSync(destRoot, { recursive: true })
cpSync(join(srcRoot, 'package.json'), join(destRoot, 'package.json'))
cpSync(join(srcRoot, 'index.js'), join(destRoot, 'index.js'))
// lib/*.js only — NOT copyGlobByExt, which recurses into lib/binding and
// stages empty dirs for every prebuilt slot (including the darwin one the
// tarball bundles on all platforms). Bindings are staged explicitly below.
mkdirSync(join(destRoot, 'lib'), { recursive: true })
for (const entry of readdirSync(join(srcRoot, 'lib'), { withFileTypes: true })) {
if (entry.isFile() && entry.name.endsWith('.js')) {View on GitHub (pinned to c896c09c42)
Solutions
- Re-verify the staged lib/windows.js rewrite against the new get-windows version and update GET_WINDOWS_VERSION.
- Pin get-windows back to the verified version if the rewrite has not been reviewed yet.
When it happens
Trigger: Thrown at apps/desktop/scripts/stage-native-deps.mjs:439 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of NousResearch/hermes-agent@c896c09c42 (2026-08-14).
Data as JSON: /api/errors/d1119ba4da4bf696.
Report an issue: GitHub.