Replace the three separate provenance paths (Nix env vars, Docker .hermes_build_sha,
and live git probes) with a single install-stamp.json file read by
version_info.py. All packagers (Docker, Nix, desktop) now call the shared
scripts/write_install_stamp.py to produce the same canonical stamp.
- Add scripts/write_install_stamp.py: shared stamp builder for all packagers
- Refactor version_info.py: read stamp file first, fall back to live git
- Delete hermes_cli/build_info.py (superseded by the stamp)
- Refactor dump.py to use version_info instead of its own git/build_sha path
- Refactor banner.py check_for_updates() to use stamp commit instead of
HERMES_REVISION env vars
- Dockerfile: write .hermes_build_info.json via the shared script
- nix/hermes-agent.nix: write .hermes_build_info.json instead of setting
HERMES_REVISION_* env vars via makeWrapper
- Desktop build (package.json): call the shared Python script instead of
the JS-only write-build-stamp.mjs for stamp generation
- Update all tests to mock the stamp file instead of env vars