hermes-agent/tui_gateway
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
..
__init__.py
…
_stdin_recovery.py
…
compute_host.py tui_gateway: close dedicated profile SessionDB handles at teardown too 2026-08-07 19:44:41 +05:30
entry.py fix(review): harden portable plugin boundaries 2026-08-07 09:44:21 -07:00
event_publisher.py
…
git_probe.py perf(gateway): stop spawning git for paths that cannot answer 2026-08-09 06:53:55 -05:00
host_supervisor.py
…
loop_noise.py
…
method_ctx.py refactor(tui): split @method handlers into methods_* modules (mechanical move, registry set-equality verified) 2026-07-29 11:46:31 -07:00
methods_complete.py Port from superagent-ai/grok-cli: description-aware slash-menu fuzzy scoring 2026-08-08 04:29:16 -07:00
methods_config.py fix(personality): single-owner personality state + one-time reset migration 2026-08-09 10:33:58 -07:00
methods_prompt.py fix(gateway): reject boolean ordinals and bare confirm_truncate on prompt.submit 2026-08-10 11:01:15 +05:30
methods_session.py fix: close sibling display_kind drops and ui-tui parity for #82756 2026-08-10 11:01:15 +05:30
methods_tools.py fix(gateway): report bundled auto-loading plugins as enabled 2026-08-08 17:34:20 -05:00
project_tree.py fix(desktop): stop rendering a repo's main checkout as a duplicate sidebar lane 2026-08-07 12:48:41 -05:00
render.py
…
server.py feat(version): one install stamp carries build provenance 2026-08-10 02:34:47 -04:00
slash_fuzzy.py Port from superagent-ai/grok-cli: description-aware slash-menu fuzzy scoring 2026-08-08 04:29:16 -07:00
slash_worker.py polish(mem): readonly config read, debug-level trim logs, loud frame test 2026-08-02 22:44:38 +05:30
synthetic_turn.py
…
transport.py
…
turn_marker.py
…
ws.py perf(cold-start): mitigate ~14s GIL stall during backend init (#60800) 2026-08-03 21:16:09 +05:30