mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-07-15 14:22:43 +00:00
29 lines
906 B
TypeScript
29 lines
906 B
TypeScript
/**
|
|
* Retry-once policy for the desktop `--build-only` rebuild during self-update.
|
|
*
|
|
* The first rebuild can return nonzero on a still-settling post-update tree or a
|
|
* network-blocked Electron fetch that the installer's self-heal repaired mid-run.
|
|
* A second attempt then builds clean off the healed dist (the content-hash stamp
|
|
* makes it a near-no-op when the first actually succeeded). Without the retry the
|
|
* updater bails before the relaunch step — the app updates but doesn't restart.
|
|
*/
|
|
|
|
function shouldRetryRebuild(code) {
|
|
return code !== 0
|
|
}
|
|
|
|
/**
|
|
* Run `rebuild()` (async, resolves `{ code, ... }`), retrying once on failure.
|
|
* Returns the final result.
|
|
*/
|
|
async function runRebuildWithRetry(rebuild) {
|
|
let result = await rebuild(0)
|
|
|
|
if (shouldRetryRebuild(result.code)) {
|
|
result = await rebuild(1)
|
|
}
|
|
|
|
return result
|
|
}
|
|
|
|
export { runRebuildWithRetry, shouldRetryRebuild }
|