diff --git a/docs/NEXT-SESSION.md b/docs/NEXT-SESSION.md index e11c184..fa25761 100644 --- a/docs/NEXT-SESSION.md +++ b/docs/NEXT-SESSION.md @@ -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 closed or explained. The platform is in the best-measured state it has been @@ -86,7 +86,9 @@ guessed family. ### 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 gw-01/02/04 — staggered by enrolment date, which is the tell. Re-authed, key expiry disabled on all five Hetzner nodes, `-pub` aliases in @@ -149,3 +151,38 @@ guessed family. - Marking more skills `always_inject`. See above. - The mission executor swap; a tap for the direct-session tier; `cm-brain` 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/`; 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. +