deploy 2026.08.30.01: 7 of 7 hosts, officer-dev skipped as the host it ran on
fofos-admin failed its resolvability check on fofos — @tiptap/pm has no root
entry point, so the install was perfect and the checker was wrong. Fixed by
537cc29c, which is one commit past this tag and therefore deployed nowhere.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,114 @@
|
|||||||
|
# 2026.08.30.01 — rollout report
|
||||||
|
|
||||||
|
**7 of 7 targets succeeded. `officer-dev` skipped by design — it is the host the rollout ran on.**
|
||||||
|
|
||||||
|
One plugin failed on one host (`fofos-admin` on `fofos`) and it is a false alarm in the checker, not a
|
||||||
|
broken install. The owner fixed it mid-rollout in `537cc29c`, which is NOT in this tag. Detail below.
|
||||||
|
|
||||||
|
No schema change, no `bun install`, no `bun db:push` — the plan says so and shows the two
|
||||||
|
`git diff --name-only` commands behind the claim. Nothing was improvised.
|
||||||
|
|
||||||
|
## Per host
|
||||||
|
|
||||||
|
| Host | HEAD before | HEAD after | plugins:update | `officer` restart_time | /api/health | file-browser `ls` |
|
||||||
|
| --- | --- | --- | --- | --- | --- | --- |
|
||||||
|
| `officer-dev` | — | — | — | — | — | **SKIPPED — ran here** |
|
||||||
|
| `alpha` | `e9b71522` | `816f8695` | 15/15, exit 0 | 6 → 7 | 401 | 200, 77 entries |
|
||||||
|
| `fofos` | `601849be` | `816f8695` | **4/5, exit 1** | 3 → 4 | 401 | 200, 39 entries |
|
||||||
|
| `macbookpro` | `e9b71522` | `816f8695` | no plugins installed | 6 → 7 | 401 | 200, 62 entries |
|
||||||
|
| `macbruno` | `e9b71522` | `816f8695` | 1/1, exit 0 | 9 → 10 | 401 | 200, 41 entries |
|
||||||
|
| `production-pertento-bridge` | `e9b71522` | `816f8695` | 1/1, exit 0 | 7 → 8 | 401 | 200, 53 entries |
|
||||||
|
| `edge-pertento-bridge` | `e9b71522` | `816f8695` | 2/2, exit 0 | 8 → 9 | 401 | 200, 29 entries |
|
||||||
|
| `deadpool-rezio-bridge` | `e9b71522` | `816f8695` | 2/2, exit 0 | 25 → 26 | 401 | 200, 49 entries |
|
||||||
|
|
||||||
|
Every host landed on `816f8695`, exactly the tag. `fofos` started ahead of the previous tag and behind
|
||||||
|
this one, as the plan predicted, so its fast-forward moved 12 files rather than 23.
|
||||||
|
|
||||||
|
`401` on `/api/health` is healthy — the plan says so and all seven agreed. Ports were read from each
|
||||||
|
host's own `.env`, never assumed: 9010 on `macbookpro` and `production-pertento-bridge`, 9000 elsewhere.
|
||||||
|
|
||||||
|
## The file browser check
|
||||||
|
|
||||||
|
This release touched the listing loader, the clipboard and the row markup, so the plan asked for one
|
||||||
|
signed `/api/file-browser/ls` per host. **Seven hosts, seven `200`s**, every one with a plausible count
|
||||||
|
and none of them zero. The counts differ because the homes differ.
|
||||||
|
|
||||||
|
Signed as that host's own owner, read from its own `users` table rather than assumed —
|
||||||
|
`conceiba@gmail.com` on `macbruno`, `brunorezio@gmail.com` on `deadpool-rezio-bridge`,
|
||||||
|
`pastilhas@officer.dev` on the rest.
|
||||||
|
|
||||||
|
## Schema
|
||||||
|
|
||||||
|
**No schema verification was performed, because this release changes no schema.** No `db:push` step
|
||||||
|
exists in the plan and none was run, so there is nothing to verify by query. The clipboard is a key in
|
||||||
|
`user_state`, a JSONB column that already existed.
|
||||||
|
|
||||||
|
The plugin sidecars applied their OWN schemas during `plugins:update`, which belongs to the plugin
|
||||||
|
updater and not to this release: `music` on `alpha` (4 tables), `proxy-manager` on `fofos` (3) and on
|
||||||
|
`macbruno` (3), `offscale` on `edge-pertento-bridge` (1), `email` on `deadpool-rezio-bridge` (1).
|
||||||
|
|
||||||
|
## The one failure: `fofos-admin` on `fofos`
|
||||||
|
|
||||||
|
`bun run plugins:update` exited 1 with:
|
||||||
|
|
||||||
|
```
|
||||||
|
FAILED: packages installed, but @tiptap/pm cannot be resolved from …/plugins/fofos-admin
|
||||||
|
```
|
||||||
|
|
||||||
|
**The install is fine and the plugin is not broken.** Verified on the host rather than assumed:
|
||||||
|
|
||||||
|
- `plugins/node_modules/@tiptap/pm` is present, with its `dist` and the prosemirror packages.
|
||||||
|
- `@tiptap/pm` declares no `main`, no `module`, and an `exports` map with no `"."` — it exists only as
|
||||||
|
subpaths. Code imports `@tiptap/pm/state`, never the bare name.
|
||||||
|
- `Bun.resolveSync('@tiptap/pm', pluginDir)` therefore fails, while `@tiptap/react` and
|
||||||
|
`@tiptap/starter-kit` both resolve. `unresolvableDependencies` reads that as a failed install.
|
||||||
|
- `fofos-admin`'s own checkout is clean, so this is not the usual uncommitted-change cause.
|
||||||
|
|
||||||
|
Also verified there, and it is this release working as intended: `react` resolves out of the PLATFORM's
|
||||||
|
`node_modules`, not the plugins tree. The eviction added in `9719e367` did its job.
|
||||||
|
|
||||||
|
**The owner shipped the fix at 11:20 while the rollout was in flight — `537cc29c`, "a package with no
|
||||||
|
root entry point is not a broken install".** It is one commit PAST this tag and is therefore deployed
|
||||||
|
nowhere. `fofos` will keep failing that step on every `plugins:update` until a release carries it.
|
||||||
|
|
||||||
|
What this cost on `fofos`: `fofos-admin` did not finish its update — no assets publish, no access grant,
|
||||||
|
no `recorded at`. Its code was already at the latest commit, and the platform mounted `/fofos-admin`
|
||||||
|
normally. The other four plugins updated.
|
||||||
|
|
||||||
|
## A commit landed on master mid-rollout, and the tag absorbed it
|
||||||
|
|
||||||
|
`alpha`, `fofos`, `macbookpro`, `macbruno` and `production-pertento-bridge` fetched `origin/master` at
|
||||||
|
`816f8695`. `edge-pertento-bridge` and `deadpool-rezio-bridge` fetched it at `537cc29c`.
|
||||||
|
|
||||||
|
Because every host merged `--ff-only deploy/2026.08.30.01` and not the branch, **all seven are on the
|
||||||
|
tag and none carries the extra commit.** This is the exact failure of 2026-08-23, and merging the tag is
|
||||||
|
what prevented it.
|
||||||
|
|
||||||
|
## More restarted than `officer`
|
||||||
|
|
||||||
|
`plugins:update` restarts a sidecar whenever it moves a plugin, before the plan's own restart. Naming
|
||||||
|
only `officer` would understate what moved, so: `officer-music` on `alpha`, `officer-av-club` on
|
||||||
|
`fofos`, `officer-gitea` on `production-pertento-bridge`, `officer-gitea` and `officer-offscale` on
|
||||||
|
`edge-pertento-bridge`, `officer-email` on `deadpool-rezio-bridge`. `macbruno` moved `proxy-manager`,
|
||||||
|
which declares no sidecar, so nothing extra bounced there.
|
||||||
|
|
||||||
|
After every restart, `pm2 jlist` showed **every `officer*` process `online` on all seven hosts**. None
|
||||||
|
was `errored` and none failed to come back.
|
||||||
|
|
||||||
|
`ecosystem.config.cjs` was never restarted anywhere. No vault was touched. On
|
||||||
|
`production-pertento-bridge` the eight Pertento-owned processes — `Dashboard`, `Tracking`, `Uptime` and
|
||||||
|
the five `Crons *` — were filtered out of every read and never named in a restart.
|
||||||
|
|
||||||
|
## What I did not do
|
||||||
|
|
||||||
|
- **`officer-dev` — skipped entirely.** Not pulled, not restarted. The rollout ran inside its
|
||||||
|
`officer-claude-code` sidecar, and restarting it would have ended the session writing this report. Its
|
||||||
|
working tree already held this code. The owner restarts it deliberately, as the last step.
|
||||||
|
- **Did not fix the `fofos-admin` checker.** The fix exists in `537cc29c` and belongs to a release, not
|
||||||
|
to a rollout editing five hosts.
|
||||||
|
- **Did not re-run `plugins:update` on `fofos`** after diagnosing it. It would fail identically — the
|
||||||
|
code that decides is in the tag.
|
||||||
|
- **Did not run `bun run docs:check`.** Not the commander's job.
|
||||||
|
- **One untracked file noted, not touched:** `scripts/chk.ts` on `fofos`. Untracked is a note, not a
|
||||||
|
skip, and a fast-forward could never have touched it. Every host was clean on
|
||||||
|
`--untracked-files=no`.
|
||||||
Reference in New Issue
Block a user