Commit 67dcadf
fix(agent): pin hermes-agent and hermes-webui to release tags (#68)
Follow-up to #67, which fixed the *transient* half of the agent build's
fragility. This fixes the *silent* half.
## Problem
Both install paths tracked **moving branches**:
| path | before | behaviour |
|---|---|---|
| `agent/Dockerfile` | `AGENT_RUNTIME_REF=main`, `AGENT_API_REF=master`
| whatever the branch points at today |
| `scripts/self-host/setup-agent.sh` | `git clone --depth 1 "$repo"` —
**no ref at all** | default-branch HEAD |
An upstream commit can therefore change what the agent image contains,
and break it, **with no change on our side**. That is precisely the
failure mode the `mcp>=1.0,<2` pin four lines below in the same file
exists to prevent — left wide open one layer up. `CLAUDE.md` already
states the rule (*"PINNED for reproducibility ... Bump deliberately and
re-validate"*); this repo just wasn't following it.
## Change
Pinned to the current release pair:
```
hermes-agent v2026.8.18 -> e624e9f
hermes-webui v0.52.76 -> 3c9304a
```
**This is a behaviour change, not a no-op.** Both branches had already
moved past their latest tag — `main` was at `1f234a1`, `master` at
`63a562f` — so this rolls the runtime back from branch HEAD to the
tagged release. Reviewers should weigh that deliberately rather than
read "pinning" as cosmetic.
**Both files change together on purpose.** Pinning only the Dockerfile
would leave host installs on branch HEAD and container installs on a
tag, so a bug would reproduce on one path and not the other. The
Dockerfile comment already asserted the two tracked each other — that
assertion was false, and this makes it true.
`ensure_clone` still returns early when a checkout already exists, so an
install predating this keeps its current ref. Silently deleting a user's
agent directory to change a version isn't this script's call — but the
message now says the ref was left alone instead of implying it was
applied.
## Verification
- [x] Both tags clone at the **exact expected SHAs**, with
`pyproject.toml` and `requirements.txt` present
- [x] `setup-agent.sh` passes `bash -n`
- [ ] CI `docker compose build` green — proves the pinned refs *build*
- [ ] **Agent smoke test — not covered by CI, and required before
merge**
That last box is the important one. Per `CLAUDE.md`'s own anti-patterns,
*"a dashboard that is HTML and long proves nothing"* and presence ≠
compatibility: a green `docker compose build` proves these refs compile
and install, **not** that the agent answers. Since this moves the
runtime to a different commit than what's been running, someone should
confirm the Agent tab returns a real answer (not "I'm blocked") against
a pinned image before this lands. I can't run that from here.
## Ordering note
Independent of #67 — different lines of `agent/Dockerfile`, no conflict
expected — but #67 should land first so the retry protects these clones
too.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>1 parent 1fbaaf1 commit 67dcadf
2 files changed
Lines changed: 31 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
40 | | - | |
41 | | - | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
42 | 50 | | |
43 | | - | |
| 51 | + | |
44 | 52 | | |
45 | | - | |
| 53 | + | |
46 | 54 | | |
47 | 55 | | |
48 | 56 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
31 | 36 | | |
32 | 37 | | |
33 | 38 | | |
| |||
57 | 62 | | |
58 | 63 | | |
59 | 64 | | |
60 | | - | |
| 65 | + | |
61 | 66 | | |
62 | | - | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
63 | 71 | | |
64 | 72 | | |
65 | | - | |
| 73 | + | |
66 | 74 | | |
67 | | - | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
68 | 81 | | |
69 | 82 | | |
70 | 83 | | |
| |||
412 | 425 | | |
413 | 426 | | |
414 | 427 | | |
415 | | - | |
416 | | - | |
| 428 | + | |
| 429 | + | |
417 | 430 | | |
418 | 431 | | |
419 | 432 | | |
| |||
0 commit comments