docs: the version every mission actually ran, and what changed on 09-18
deploy / test (push) Successful in 5m2s
deploy / build (push) Successful in 1m0s

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01WZb5A2kfVfjpdwSochkuHz
This commit is contained in:
Omar Sobh
2026-09-18 12:38:20 -05:00
co-authored by Claude Opus 5
parent 1c9be52291
commit 3755699b41
+39 -2
View File
@@ -1,4 +1,4 @@
# Where this left off — 2026-09-14 # Where this left off — 2026-09-14 (addendum 2026-09-18 at the end)
Nine days, ~20 commits, and every item on the last handoff's open list is Nine days, ~20 commits, and every item on the last handoff's open list is
closed or explained. The platform is in the best-measured state it has been closed or explained. The platform is in the best-measured state it has been
@@ -86,7 +86,9 @@ guessed family.
### Infra ### Infra
- **ZeroClaw v0.8.5** merged into the fork and deployed. No regressions. - **ZeroClaw v0.8.5** merged into the fork and deployed — to the persistent
runtime only, it turned out; see the 09-18 addendum. Missions reached it on
2026-09-18.
- **Prod was off the tailnet for a day.** Tailscale node-key expiry on - **Prod was off the tailnet for a day.** Tailscale node-key expiry on
gw-01/02/04 — staggered by enrolment date, which is the tell. Re-authed, gw-01/02/04 — staggered by enrolment date, which is the tell. Re-authed,
key expiry disabled on all five Hetzner nodes, `<node>-pub` aliases in key expiry disabled on all five Hetzner nodes, `<node>-pub` aliases in
@@ -149,3 +151,38 @@ guessed family.
- Marking more skills `always_inject`. See above. - Marking more skills `always_inject`. See above.
- The mission executor swap; a tap for the direct-session tier; `cm-brain` - The mission executor swap; a tap for the direct-session tier; `cm-brain`
offline tests — unchanged from prior handoffs. offline tests — unchanged from prior handoffs.
## Addendum — 2026-09-18
**Every version claim above was about the wrong container.** Missions are
created from `CLAWMATES_RUNTIME_IMAGE`, which pointed at
`clawmates-runtime:hooks` (zeroclaw 0.8.4, Claude Code 2.1.237, built 08-21)
on both stacks until today. The v0.8.5 image only ever ran the persistent
`clawmates-runtime`, which container-tier missions do not drive turns through.
Every measured mission this month ran on `:hooks`. The comparisons stand — one
image throughout — but "no regressions from v0.8.5" and "attribution survives
2.1.263" described a container missions never touched. Memory corrected.
Now: prod missions run `clawmates-runtime:v085-cc276` (zeroclaw 0.8.5 /
Claude Code 2.1.276 / Kimi 0.41.0), set in `/opt/clawmates/.env`; local runs
`:toolchain` from the same lineage. The Dockerfile pins both CLIs as ARGs —
2.1.265 and 2.1.275 each broke every turn on `ANTHROPIC_BASE_URL` endpoints,
so floating was never safe. Verified by two local canaries and prod mission
`01a0b58e`: arguments on 82/82 calls, 3 spawns → 52 attributed subagent calls,
gate, skill reads, judge independent first pass. Rollback is one line in
`.env` back to `:hooks` (backed up beside it) and a server recreate.
**Egress is closed.** Missions egress from `clawmates_missions` (172.25/16,
`869c3ad`); `clawmates-egress.sh` on gw-04 drops tailnet/private/link-local/ssh
for that subnet in `mangle PREROUTING --ctstate NEW`, survives docker and
tailscaled restarts, and was verified from inside a real mission container.
The server keeps the tailnet. `MISSION-EGRESS.md` has the two wrong turns.
**Also:** `docker-compose.override.yml` is tracked; `DELETE /api/missions`
removes `_outputs/<id>`; prod and local were wiped to zero on 09-14 (the runs
above are the only missions since, all ours).
**Check the MISSION container's binaries** (`docker exec cm-runtime-mission-…
claude --version`), never the persistent runtime's, before attaching a version
to a measurement.