1398c0f5ca
`hermes update` → `hermes desktop --build-only` → `npm run pack` packed electron-builder's output IN PLACE: before-pack.mjs wipes `release/<platform>-unpacked` (or the mac `Hermes.app`) before the Electron unpack/asar/rename, so any failure after that point — corrupt cached zip, blocked download, missing dep, disk full — left the user with NO app and the update reporting "partially complete" over an empty release/ (#86443). Fix the class, not the predicate: cmd_gui now passes `-c.directories.output=apps/desktop/.staging-<pid>-<ts>` to the pack, runs the existing verification (packaged-exe probe, macOS re-sign, Windows PE integrity gate) against the STAGED tree, and only then promotes it: `release/<unpacked>` → `.previous`, `<staging>/<unpacked>` → `release/<unpacked>`, drop `.previous`. A rename failure between the two steps restores `.previous`. On any failure the staging dir is removed and the live app is untouched. - `_purge_electron_build_cache` / `_ensure_desktop_exe_launchable` / `_desktop_macos_relaunchable_fixup` take the output dir so the corrupt-zip retry purge and the integrity self-heal only ever clear the staging tree, never `release/*-unpacked`. - `.gitignore` the staging dir so a killed build cannot dirty the checkout. - Docs: updating.md describes the stage-and-swap Desktop rebuild step. Live repro (real `_rebuild_desktop_after_update` → real `hermes desktop --build-only` subprocess, fake npm whose pack wipes appOutDir then fails): before — `release/linux-unpacked/hermes` gone after the failed rebuild; after — marker intact, no `.staging-*` left, rebuild returns False; a passing pack swaps the new app into `release/`. Closes #86443 Co-authored-by: AIalliAI <285906080+AIalliAI@users.noreply.github.com> Co-authored-by: deathxdefeat <deathxdefeat@users.noreply.github.com>
Website
This website is built using Docusaurus, a modern static website generator.
Installation
yarn
Local Development
yarn start
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
Build
yarn build
This command generates static content into the build directory and can be served using any static contents hosting service.
Deployment
Using SSH:
USE_SSH=true yarn deploy
Not using SSH:
GIT_USER=<Your GitHub username> yarn deploy
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the gh-pages branch.
Diagram Linting
CI runs ascii-guard to lint docs for ASCII box diagrams. Use Mermaid (````mermaid`) or plain lists/tables instead of ASCII boxes to avoid CI failures.