hermes-agent/ui-tui/src
ethernet 01aba5cf16 feat(version): one install stamp carries build provenance
All packagers (Docker, Nix, desktop) write the same install-stamp.json
with scripts/write_install_stamp.py or with equivalent inline data. The
new hermes_cli/version_info.py reads the stamp first, falls back to
live git for source installs, and reports "unknown" when neither
exists. It caches the result per process.

The stamp replaces three separate provenance paths:
- the HERMES_REVISION env var from the Nix wrapper,
- the .hermes_build_sha file from the Docker build arg,
- live git probes in banner.py and dump.py.
hermes_cli/build_info.py and the desktop's write-build-stamp.mjs are
deleted with them. The desktop build calls the shared Python script.

The banner, `hermes --version`, `hermes dump`, the TUI session panel,
and the desktop About panel now show the same derived version: the
release version, plus "+N" when the build is N commits past the
release tag, or "+?" for a dirty tree with no countable tag. The
release_date field is gone from every surface.

The dirty probe uses `git status --porcelain -uno`: it runs on the
startup-banner path, and an untracked-file scan costs real time on
large checkouts.
2026-08-10 02:34:47 -04:00
..
__tests__
…
app
…
components feat(version): one install stamp carries build provenance 2026-08-10 02:34:47 -04:00
config
…
content
…
domain fix: close sibling display_kind drops and ui-tui parity for #82756 2026-08-10 11:01:15 +05:30
hooks
…
lib
…
protocol
…
sdk
…
types
…
app.tsx
…
banner.ts
…
entry.tsx
…
gatewayClient.ts
…
gatewayTypes.ts
…
theme.ts
…
types.ts feat(version): one install stamp carries build provenance 2026-08-10 02:34:47 -04:00