{"record":{"id":"894302a9e1f6d989","repo":"NousResearch/hermes-agent","slug":"target-exe-not-found-exe","errorCode":null,"errorMessage":"target exe not found: ${exe}","messagePattern":"target exe not found: (.+?)","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"apps/desktop/scripts/set-exe-identity.mjs","lineNumber":50,"sourceCode":"//\n// Exits 0 on success, non-zero on failure when run as a CLI. As a hook,\n// stampExeIdentity() resolves on success and rejects on failure; the caller\n// (after-pack.mjs) swallows the rejection so a stamp failure never fails an\n// otherwise-good build (worst case: stock icon, not a broken app).\n\nimport { resolve, join } from 'node:path'\nimport { existsSync } from 'node:fs'\n\nimport { rcedit } from 'rcedit'\n\nimport { isMain } from './utils.mjs'\n\n// Stamp the Hermes icon + identity onto `exe`. Resolves on success, throws on\n// failure. `desktopRoot` defaults to this script's package root so the icon and\n// the rcedit dependency resolve regardless of cwd.\nasync function stampExeIdentity(exe, desktopRoot = resolve(import.meta.dirname, '..')) {\n  if (!exe || !existsSync(exe)) {\n    throw new Error(`target exe not found: ${exe}`)\n  }\n\n  // Icon lives at apps/desktop/assets/icon.ico\n  const icon = join(desktopRoot, 'assets', 'icon.ico')\n  if (!existsSync(icon)) {\n    throw new Error(`icon not found: ${icon}`)\n  }\n\n  console.log(`[set-exe-identity] stamping ${exe}`)\n  console.log(`[set-exe-identity] icon: ${icon}`)\n\n  await rcedit(exe, {\n    icon,\n    'version-string': {\n      ProductName: 'Hermes',\n      FileDescription: 'Hermes',\n      CompanyName: 'Nous Research',\n      LegalCopyright: 'Copyright (c) 2026 Nous Research'","sourceCodeStart":32,"sourceCodeEnd":68,"githubUrl":"https://github.com/NousResearch/hermes-agent/blob/c896c09c42910c584c4c7d2325b58c14713ea42c/apps/desktop/scripts/set-exe-identity.mjs#L32-L68","documentation":"Error \"target exe not found: ${exe}\" thrown in NousResearch/hermes-agent.","triggerScenarios":"Thrown at apps/desktop/scripts/set-exe-identity.mjs:50 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Build the app first so the target exe exists at the expected path.","Pass the correct exe path to the script."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c896c09c42910c584c4c7d2325b58c14713ea42c","analyzedAt":"2026-08-14T17:18:01.089Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}