# 2026.08.22.02 — deploy report **6 of 6 target hosts succeeded.** `officer-dev` skipped (the commander runs there) and verified already current. No host failed, no step was skipped for a fault, nothing came back `errored`. Deployed 2026-08-22 from `officer-dev`. Tag `deploy/2026.08.22.02` → `68d60e40`, matching `package.json` `2026.08.22.02`. ## Summary | Host | HEAD before | HEAD after | Steps | `officer` restart | `theme_favorites` | | ---------------------------- | ----------- | ---------- | ---------- | ----------------- | ----------------- | | `officer-dev` | `68d60e40` | — | skipped | not touched (192) | present | | `alpha` | `78db9c8c` | `68d60e40` | all 4 | 65 → 66, online | present | | `fofos` | `78db9c8c` | `68d60e40` | all 4 | 19 → 20, online | present | | `macbookpro` | `9b459b79` | `68d60e40` | all 4 | 6 → 7, online | present | | `edge-pertento-bridge` | `78db9c8c` | `68d60e40` | all 4 | 8 → 9, online | present | | `production-pertento-bridge` | `78db9c8c` | `68d60e40` | all 4 | 10 → 11, online | present | | `deadpool-rezio-bridge` | `78db9c8c` | `68d60e40` | all 4 | 4 → 5, online | present | Checkout paths were taken from each `officer` process's `pm_cwd`, not from a hard-coded list. ## Per host ### `officer-dev` — SKIPPED, and current The commander session runs inside `officer-claude-code` on this machine, so the whole host was skipped as the plan and `prompts/deploy-commander.md` both require: no pull, no `db:push`, no `plugins:update`, no restart. It was already at `68d60e40` before the rollout started and `theme_favorites` is present, so it is running this release rather than lagging. `officer` shows 192 restarts, untouched by this deploy. **The owner restarts this host deliberately, once happy with the rest.** Strictly nothing is pending on it — the tree, the schema and the running process are all already on this release. ### `alpha` — done Tree clean (tracked and untracked). Pulled `78db9c8c` → `68d60e40`. `bun db:push` applied changes; `backfill-session-models` reported 0 seeded, 32 already recorded. `bun run plugins:update` returned **12/12 updated in 46s**, exit 0 — and it restarted all twelve plugin sidecars itself (atelier, bitcoin-wallet, email, gitea, invoices, jellyfin, music, offscale, photos, soulseek, transmission, vault), which is the script's normal behaviour and not something the plan asked for. `pm2 restart officer`: 65 → 66, `online`. All 19 processes `online`. `to_regclass('theme_favorites')` returned the table. ### `fofos` — done Tracked tree clean. **One untracked file, `scripts/chk.ts`** — noted, not a reason to skip, and untouched by the fast-forward. Pulled `78db9c8c` → `68d60e40`. `db:push` applied changes (3 transcripts already recorded). `plugins:update`: **1/1 (gitea)**, exit 0, its sidecar restarted by the script. `officer` 19 → 20, `online`; all 8 processes `online`. `theme_favorites` present. Note for anyone scripting against this host: its `.env` names the connection `OFFICERDEV_POSTGRES_URL`, not `POSTGRES_URL`, and a naive `grep POSTGRES_URL` matches a comment line first. Same on `macbookpro`, `edge-pertento-bridge`, `production-pertento-bridge` and `deadpool-rezio-bridge`; `alpha` and `officer-dev` use `POSTGRES_URL`. ### `macbookpro` — done, awake Reachable — not asleep this time. Tree clean. **It was two releases behind**: `9b459b79`, not `78db9c8c` like the rest. Pulled straight to `68d60e40`. `PATH` was appended with `/opt/homebrew/bin` for the `bun` commands and `pm2` run separately, per `docs/servers.md`. `db:push` applied changes, exit 0. `plugins:update` exit 0 with **no plugins installed — nothing to update**, so no plugin sidecars moved here. `officer` 6 → 7, `online`; all 6 processes `online`. **`psql` is not installed on this host** — the plan's direct schema check could not be run the way it is written. Verified instead through the platform's own `postgres` client (`bun --env-file=.env` against `OFFICERDEV_POSTGRES_URL`), which returned `theme_favorites`. Same fact, different tool. `$SHELL -ic` also prints `command not found: starship` from `.zshrc:123` on every invocation. Cosmetic, and unrelated to this release, but it appears in the raw output above every command. ### `edge-pertento-bridge` — done Tree clean. Pulled `78db9c8c` → `68d60e40`. `db:push` applied changes, exit 0. `plugins:update`: **2/2 (gitea, offscale)**, exit 0, both sidecars restarted by the script. `officer` 8 → 9, `online`; all 8 processes `online`. `theme_favorites` present. ### `production-pertento-bridge` — done Tree clean. Pulled `78db9c8c` → `68d60e40`. `db:push` applied changes, exit 0. `plugins:update`: **1/1 (gitea)**, exit 0, sidecar restarted by the script. `officer` 10 → 11, `online`; all 15 processes `online`. `theme_favorites` present. ### `deadpool-rezio-bridge` — done Logged in as **`br`**, not `pastilhas`. Tree clean. Pulled `78db9c8c` → `68d60e40`. `db:push` applied changes, exit 0. `plugins:update`: **2/2 (email, offscale)**, exit 0, both sidecars restarted by the script. `officer` 4 → 5, `online`; all 9 processes `online`. `theme_favorites` present. ## What did not happen - **No host was skipped for a fault.** The only skip is `officer-dev`, by design. - **`bun install` was not run anywhere.** The plan says this release changes no dependency, and the plan is what this agent executes. - **Nothing but `officer` was restarted deliberately.** The plugin sidecars that bounced were restarted by `plugins:update` itself — eighteen processes across five hosts, listed per host above. Recording them here rather than reporting only `officer` is the plan's explicit instruction. - **The one verification that had to change shape** is `macbookpro`'s schema check, for want of `psql`. Everything else was verified exactly as written. ## Claim record `scripts/deploy-claim.sh state 2026.08.22.02` → `done`. The local record `data/deploys/2026.08.22.02.done` was written before this report was committed, so a push failure here cannot cause a second rollout.