26fb8f60e6
Follow-up to the salvaged #92689: - _profile_export_directory() now proves safety on the export dir's OWN ancestry (_inside_git_checkout) instead of walking Path.cwd(). The old heuristic missed the checkout whenever HERMES_HOME sat inside one but the process ran from elsewhere (cron, service manager) — the export landed back inside the source tree, the exact incident class. - When every candidate is inside a checkout, warn instead of silently violating the invariant. - CLI/TUI export callers: move get_profile_export_path() inside the try and catch OSError too — a bad profile name or read-only home printed a raw traceback instead of the clean error main previously gave. - Tests: bind module objects at call time (importlib) so sibling reload pollution in the tests/hermes_cli sweep can't divorce monkeypatches from the code under test; add regression tests for the cwd-independent topology and the clean-error path. - Docs: mention the ~/.hermes-profile-exports fallback store.
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.