Files
platform/deploy/2026.08.21.03.report.md
T

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-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.