deploy 2026.08.25.01: 5 of 5 targets, schema verified by query on each
This commit is contained in:
@@ -0,0 +1,131 @@
|
|||||||
|
# 2026.08.25.01 — report
|
||||||
|
|
||||||
|
**5 of 5 target hosts succeeded.** Two hosts skipped by plan (`officer-dev`, `edge-pertento-bridge`);
|
||||||
|
neither is a failure. Every target ended at `007cc9a1` = `deploy/2026.08.25.01` exactly.
|
||||||
|
|
||||||
|
The schema change was verified **by query on each host's own database**, not by exit code. All five
|
||||||
|
returned both columns.
|
||||||
|
|
||||||
|
First release under a new watcher. The claim was taken by the watcher before this agent was spawned;
|
||||||
|
this agent recorded `done` after the rollout.
|
||||||
|
|
||||||
|
## The schema change
|
||||||
|
|
||||||
|
Two nullable columns on `api_keys`. The plan's query, run per host:
|
||||||
|
|
||||||
|
```sql
|
||||||
|
select column_name from information_schema.columns
|
||||||
|
where table_name = 'api_keys' and column_name in ('permissions','excluded_kinds');
|
||||||
|
```
|
||||||
|
|
||||||
|
| Host | `permissions` | `excluded_kinds` | Result |
|
||||||
|
| ---------------------------- | ------------- | ---------------- | ---------------- |
|
||||||
|
| `alpha` | ARRAY, null | ARRAY, null | 2 rows — pass |
|
||||||
|
| `fofos` | ARRAY, null | ARRAY, null | 2 rows — pass |
|
||||||
|
| `production-pertento-bridge` | ARRAY, null | ARRAY, null | 2 rows — pass |
|
||||||
|
| `deadpool-rezio-bridge` | ARRAY, null | ARRAY, null | 2 rows — pass |
|
||||||
|
| `macbookpro` | ARRAY, null | ARRAY, null | 2 rows — pass |
|
||||||
|
|
||||||
|
No half-applied push anywhere — no host returned `permissions` alone.
|
||||||
|
|
||||||
|
`bun db:push` exited 0 on all five and printed `Changes applied`. That was treated as not-evidence, per
|
||||||
|
the plan; the table above is the evidence. `postdb:push` seeders ran clean everywhere (`seed:roles`
|
||||||
|
0 seeded / 4 already present on all five).
|
||||||
|
|
||||||
|
**No direct SQL was run on any host.** None was authorised and none was needed.
|
||||||
|
**No `bun install` was run on any host**, per the plan — `bun.lock` is untouched by this release.
|
||||||
|
|
||||||
|
## Per host
|
||||||
|
|
||||||
|
### `alpha` — success
|
||||||
|
|
||||||
|
- HEAD `23657210` (`deploy/2026.08.24.02-29-g23657210`) → `007cc9a1` (`deploy/2026.08.25.01`)
|
||||||
|
- Tree clean of tracked changes. No untracked files.
|
||||||
|
- Path `/home/pastilhas/officerdev/platform`, taken from PM2 `pm_cwd` — **not** the stale second
|
||||||
|
checkout at `~/dockers/officer.dev/platform`.
|
||||||
|
- `bun db:push` exit 0 → verified by query, 2 rows.
|
||||||
|
- `bun run plugins:update` — **14/14 updated in 57s**, exit 0. Fourteen plugin sidecars restarted
|
||||||
|
themselves during this step (atelier, bitcoin-wallet, email, gitea, invoices, jellyfin, minesweeper,
|
||||||
|
music, offscale, photos, soulseek, transcribe, transmission, vault).
|
||||||
|
- `pm2 restart officer` — `restart_time` 2 → 3, `online`.
|
||||||
|
- Health after: **21/21 processes online**, none errored.
|
||||||
|
|
||||||
|
### `fofos` — success
|
||||||
|
|
||||||
|
- HEAD `e0d80fd3` (`deploy/2026.08.24.02`) → `007cc9a1`
|
||||||
|
- Tree clean of **tracked** changes. One untracked file present: `scripts/chk.ts`. Noted, not touched,
|
||||||
|
not a reason to skip — a fast-forward could not have affected it.
|
||||||
|
- Remote is HTTPS here, as documented. Pulled in place.
|
||||||
|
- `bun db:push` exit 0 → verified by query, 2 rows.
|
||||||
|
- `bun run plugins:update` — 1/1 (gitea), exit 0; its sidecar restarted itself.
|
||||||
|
- `pm2 restart officer` — `restart_time` 28 → 29, `online`.
|
||||||
|
- Health after: **10/10 processes online**, none errored.
|
||||||
|
- The August root-ownership problem did not recur: git and the plugin step both ran clean.
|
||||||
|
|
||||||
|
### `production-pertento-bridge` — success
|
||||||
|
|
||||||
|
- HEAD `e0d80fd3` (`deploy/2026.08.24.02`) → `007cc9a1`
|
||||||
|
- Tree clean, no untracked files.
|
||||||
|
- `bun db:push` exit 0 → verified by query, 2 rows.
|
||||||
|
- `bun run plugins:update` — 1/1 (gitea), exit 0.
|
||||||
|
- `pm2 restart officer` — `restart_time` 7 → 8, `online`.
|
||||||
|
- Health after: **15/15 processes online**, none errored.
|
||||||
|
- Cosmetic only: the interactive shell prints an nvm warning about a `globalconfig`/`prefix` in
|
||||||
|
`~/.npmrc`. It did not affect any step. Not fixed — outside a rollout's scope.
|
||||||
|
|
||||||
|
### `deadpool-rezio-bridge` — success
|
||||||
|
|
||||||
|
- Logged in as **`br`**, not `pastilhas`. Checkout `/home/br/officerdev/platform`.
|
||||||
|
- HEAD `e0d80fd3` (`deploy/2026.08.24.02`) → `007cc9a1`
|
||||||
|
- Tree clean, no untracked files.
|
||||||
|
- `bun db:push` exit 0 → verified by query, 2 rows.
|
||||||
|
- `bun run plugins:update` — 2/2 (email, offscale), exit 0; both sidecars restarted themselves.
|
||||||
|
- `pm2 restart officer` — `restart_time` 13 → 14, `online`.
|
||||||
|
- Health after: **9/9 processes online**, none errored.
|
||||||
|
|
||||||
|
### `macbookpro` — success (it was awake)
|
||||||
|
|
||||||
|
- Awake and reachable, so it was a target rather than a skip.
|
||||||
|
- HEAD `8e2670ff` (`deploy/2026.08.24.02-96-g8e2670ff`, one commit short of the tag) → `007cc9a1`
|
||||||
|
- Tree clean, no untracked files.
|
||||||
|
- `/opt/homebrew/bin` **appended** to PATH for the `bun` commands; `pm2` run as a separate command
|
||||||
|
through `$SHELL -ic`, per `docs/servers.md`. Both worked.
|
||||||
|
- `bun db:push` exit 0 → verified by query, 2 rows.
|
||||||
|
- `bun run plugins:update` — `no plugins installed — nothing to update`, exit 0. Nothing restarted here
|
||||||
|
by that step.
|
||||||
|
- `pm2 restart officer` — `restart_time` 15 → 16, `online`.
|
||||||
|
- Health after: **6/6 processes online**, none errored.
|
||||||
|
|
||||||
|
## Skipped
|
||||||
|
|
||||||
|
### `officer-dev` — skipped, and deliberately
|
||||||
|
|
||||||
|
The host this rollout ran on. Not pulled, not restarted, nothing touched. Restarting `officer` here
|
||||||
|
would have ended the rollout mid-flight.
|
||||||
|
|
||||||
|
Its checkout is **ahead** of the tag: HEAD `e1f5d01b`, two commits past `007cc9a1`, with uncommitted
|
||||||
|
work belonging to another session (`src/servers/hono.ts`, `src/workspaces/hooks/src/useClient.ts`, and
|
||||||
|
an untracked `src/servers/hono-error-shape.test.ts`). It therefore already holds this release's code and
|
||||||
|
more. **The owner restarts it deliberately when they are happy with the rest** — that is the one
|
||||||
|
outstanding action from this deploy.
|
||||||
|
|
||||||
|
### `edge-pertento-bridge` — skipped by the plan. NOT a failure.
|
||||||
|
|
||||||
|
Excluded by name in `deploy/2026.08.25.01.md`, which is the authority here. It has no `roles` table
|
||||||
|
while both its accounts hold roles, so a single `db:push` would create the foreign key against an empty
|
||||||
|
`roles` and fail — possibly while still exiting 0. It also missed two releases carrying one-off steps
|
||||||
|
that a fast-forward does not replay.
|
||||||
|
|
||||||
|
Not contacted at all. No time spent on it. Bringing it forward is a watched, by-hand operation the owner
|
||||||
|
is doing separately.
|
||||||
|
|
||||||
|
## What did not get done
|
||||||
|
|
||||||
|
- `officer-dev` was not restarted — by design, see above. It is the only host not running a
|
||||||
|
freshly-started `officer` process, though it is on newer code than the tag.
|
||||||
|
- No verification of the release's *behaviour* was attempted: whether a commander asks its first
|
||||||
|
question in the owner's language, and whether a Member's phone can now register for notifications,
|
||||||
|
are the plan's "what to check" items and they need a human with a browser. Hard-refresh before
|
||||||
|
judging either — a stale bundle looks exactly like a failure.
|
||||||
|
- Documentation was not checked or edited. `bun run docs:check` is the release-cutter's step, not this
|
||||||
|
agent's.
|
||||||
Reference in New Issue
Block a user