5.2 KiB
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-devwas skipped completely — no pull (it is already at the tag, which was cut here), noplugins:update, no restart. This session runs insideofficer-claude-codeon it, and restartingofficerthere ends the rollout mid-flight.Its running process is now two releases old.
restart_timeis 155, unchanged since before2026.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 officeronofficer-devfinishes them, whenever the owner wants it. Outstanding, and no longer new. -
fofosstill 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 asafe.directoryentry, because asafe.directoryline would silence the first message and leave theEACCES— they are one cause, and onestatsettles it.plugins:updateexited 0 and the gitea plugin itself updated, so this costs capability sync on that host and nothing else. Unexplained. -
fofosstill carries one untracked file,scripts/chk.ts. A note, not a skip — the rule works. -
No
bun installand nodb:pushran anywhere. The plan says this release needs neither, anddeploy/2026.08.21.02..deploy/2026.08.21.03is two files. -
Nothing was verified beyond
pm2.officerisonlinewith a movedrestart_timeon 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
macbookproPATH rule indocs/servers.mdis now correct and was followed as written.export PATH=$PATH:/opt/homebrew/binfor thebuncommand,pm2as a separate command, and both worked first time. Nothing to change. -
$SHELL -ic "pm2 jlist"with stderr discarded came back empty once, onedge-pertento-bridge, and the same command with2>&1a 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 inTODO.md.