mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-11-06 05:17:15 +00:00
Fleet telemetry labelled every `hermes -z` / `chat -q` / `-Q` run as entrypoint=interactive because the cli surface mapped straight to interactive and no caller declared anything else, so 95% of CLI sessions read as one-turn humans and scripts could not be told apart. - New closed entrypoint `one_shot` (contract + v3 schema enum). The task scope start declares it for cli-surface runs carrying the HERMES_SINGLE_QUERY_SESSION marker the one-shot paths already set (the signal session source and cache_ttl: auto read). Children Hermes dispatchers spawn (kanban worker source=kanban, A2A forward source=a2a) read the existing `background`. Delegated children, other surfaces and the REPL are unchanged. - Engagement keeps treating one_shot like interactive (its prior label). - `hermes -z` exits via os._exit, skipping the atexit hook that closes the metrics session: its pre-exit cleanup now runs the runtime shutdown, so task_run.finished and session.count are actually written (before, only task_run.started survived and the store kept a hot journal). - Smoke expectations move to one_shot (it drives `chat --query --quiet`). - relay-shared-metrics.md documents the entrypoint vocabulary.