aa5a960675
Review finding on PR #83194 (egilewski): Install-Venv committed the venv transaction as soon as the replacement had a working interpreter, deleting the parked previous venv. Install-Dependencies is a separate later stage (a separate process under the stage-per-process bootstrap) and every dependency tier or the baseline-import gate can still fail after that point - a failed update could still leave Hermes and the blocker probe unusable with no rollback source. Now: - Install-Venv records the parked backup in venv.pending-backup instead of deleting it, and excludes it from the venv.stale.* sweep. - Install-Dependencies wraps the dependency tiers + baseline-import gate in the transaction: Restore-VenvBackup on failure (parks the failed replacement as venv.failed.*, renames the previous venv back), and Complete-VenvTransaction only after the imports prove the replacement usable. - Source-contract regression tests for the boundary (tests/test_install_ps1_venv_transaction_boundary.py).
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.