diff --git a/deploy/2026.08.21.03.report.md b/deploy/2026.08.21.03.report.md new file mode 100644 index 00000000..33f89bd1 --- /dev/null +++ b/deploy/2026.08.21.03.report.md @@ -0,0 +1,83 @@ +# 2026.08.21.03 — deployed + +**6/6 hosts.** Every platform the plan reaches is on `3343b21a`, `officer` restarted and back `online`, +and no other process on any host was left in a state other than `online`. + +`officer-dev` is the seventh platform and was **skipped entirely** — it is the host this deploy ran on. +See below; its skip is now two releases deep. + +This was a drill. The release changes `package.json` and adds its own plan file, nothing else, and it +exists to watch the claim rule work. It did: `scripts/deploy-claim.sh claim 2026.08.21.03` was taken +before any host was touched, and `state` reads `done`. + +## The release + +Tag `deploy/2026.08.21.03` → `3343b21a`; `package.json` at that commit says `2026.08.21.03`. They agree. +Plan: `deploy/2026.08.21.03.md` — pull, `plugins:update`, restart `officer` only. No `bun install`, no +`db:push`, and neither ran anywhere. + +| Host | Before | After | plugins | restarted | restart_time | back | +| ---------------------------- | ---------- | ---------- | -------------- | --------- | ------------ | ------- | +| `alpha` | `55ecbf4f` | `3343b21a` | 12/12 | officer | 61 → 62 | online | +| `fofos` | `55ecbf4f` | `3343b21a` | 1/1 | officer | 16 → 17 | online | +| `macbookpro` | `55ecbf4f` | `3343b21a` | none installed | officer | 3 → 4 | online | +| `edge-pertento-bridge` | `55ecbf4f` | `3343b21a` | 2/2 | officer | 5 → 6 | online | +| `production-pertento-bridge` | `55ecbf4f` | `3343b21a` | 1/1 | officer | 7 → 8 | online | +| `deadpool-rezio-bridge` | `55ecbf4f` | `3343b21a` | none installed | officer | 1 → 2 | online | +| `officer-dev` | `3343b21a` | `3343b21a` | not run | **none** | 155 | skipped | + +Every host came in at `55ecbf4f` — the previous release, level for the first time in three deploys — and +every pull was a real fast-forward. Checkout paths were taken from each `officer` process's `pm_cwd`, so +`alpha`'s stale second checkout at `~/dockers/officer.dev/platform` was never touched. `macbookpro` was +awake. + +**More than `officer` restarted, and the plan did not ask for it.** `bun run plugins:update` bounces each +plugin's sidecar as it goes: twelve on `alpha`, two on `edge`, one each on `fofos` and +`production-pertento-bridge`. Every one came back `online`. Nothing was left down. + +## What was NOT done, and why + +- **`officer-dev` was skipped completely** — no pull (it is already at the tag, which was cut here), no + `plugins:update`, no restart. This session runs inside `officer-claude-code` on it, and restarting + `officer` there ends the rollout mid-flight. + + **Its running process is now two releases old.** `restart_time` is 155, unchanged since before + `2026.08.21.02` — so the same restart the last report left outstanding is still outstanding, and it now + carries both releases. The code for both is on disk. `pm2 restart officer` on `officer-dev` finishes + them, whenever the owner wants it. **Outstanding, and no longer new.** + +- **`fofos` still cannot sync its capabilities.** Third deploy running, same two failures, same + unexplained cause: + + - `capabilities: failed — fatal: detected dubious ownership in repository at + '/home/pastilhas/officerdev/capabilities'` + - `affordances: NOT published — EACCES: permission denied, mkdir + '/home/pastilhas/officerdev/capabilities/affordances/officerdev'` + + Both say that checkout is not owned by `pastilhas`. Still not papered over with a `safe.directory` + entry, because a `safe.directory` line would silence the first message and leave the `EACCES` — they are + one cause, and one `stat` settles it. `plugins:update` exited 0 and the gitea plugin itself updated, so + this costs capability sync on that host and nothing else. **Unexplained.** + +- **`fofos` still carries one untracked file**, `scripts/chk.ts`. A note, not a skip — the rule works. + +- **No `bun install` and no `db:push` ran anywhere.** The plan says this release needs neither, and + `deploy/2026.08.21.02..deploy/2026.08.21.03` is two files. + +- **Nothing was verified beyond `pm2`.** `officer` is `online` with a moved `restart_time` on all six + hosts; no HTTP request was made to any domain. That is what the plan asked to check. + +## Notes for the next one + +- **The `macbookpro` PATH rule in `docs/servers.md` is now correct and was followed as written.** + `export PATH=$PATH:/opt/homebrew/bin` for the `bun` command, `pm2` as a separate command, and both + worked first time. Nothing to change. + +- **`$SHELL -ic "pm2 jlist"` with stderr discarded came back empty once**, on `edge-pertento-bridge`, and + the same command with `2>&1` a second later returned the full list. Transient, and it looked exactly + like a dead pm2. Capture stderr and parse the JSON out of the stream rather than trusting the whole of + stdout to be JSON — an interactive shell puts its own noise (`starship`, aliases) in there. + +- **`officer-dev`'s skip needs a home other than a report.** It has been carried forward twice now, and a + report is not a place work waits — the next deploy will write the same paragraph. Either the owner + restarts it, or it belongs in `TODO.md`.