officer.dev: the pm2 count tracks plugin installs, not releases

Fourteen while Minesweeper was installed, thirteen once it was removed, with no
platform change either way — a plugin that declares a sidecar writes it into the
generated ecosystem file. Says so now, so the next reader does not treat a
change here as a platform change or expect two machines to agree.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Officer-Session: 656f5c85-e49a-4f1f-b9f3-042a04b4d043
This commit is contained in:
2026-08-23 20:31:13 +00:00
co-authored by Claude Opus 5
parent dc91f78f4f
commit 7c41c56577
+19 -11
View File
@@ -55,18 +55,26 @@ This file captures the **cross-cutting operational reality** that neither of tho
process that runs `claude` was spawned by the main server, so PM2's tree-kill took it down every time.
A restart now costs the agent a socket reconnect, not the session, and output produced while officer is
down survives — the sidecar writes to `chat_session_events` itself. There is no `officer-claude`.
- **Officer is twenty PM2 entries** (verified 2026-08-07 with `pm2 jlist`): `officer`,
`officer-anthropic-proxy`, `officer-agent`, `officer-opencode`, `officer-email`, `officer-pty`,
`officer-vnc`, `officer-music`, `officer-vault`, `officer-slskd`, `officer-headscale`,
`officer-transmission`, `officer-invoiceshelf`, `officer-wallet`, `officer-photos`, `officer-notify`,
`officer-caldav`, `officer-memos`, `officer-jellyfin`, `officer-gitea`.
**`pm2 list` shows twenty-two** — `mybiblepal-api` and `mybiblepal-audio` are a different project sharing
this PM2 daemon, and nothing here should touch them.
Never `pm2 restart ecosystem.config.cjs` — it bounces every
sidecar including the vault. Use `--only <name>`, or restart the single process the change needs.
This list goes stale every time a sidecar lands; `pm2 jlist` is the source of truth.
- **Officer is THIRTEEN PM2 entries here today** (verified 2026-08-23 by `bun run docs:check`, which fails
if this drifts): `officer`, `officer-anthropic-proxy`, `officer-atelier`, `officer-browser`,
`officer-caldav`, `officer-claude-code`, `officer-email`, `officer-marketplace`, `officer-notify`,
`officer-oas`, `officer-offscale`, `officer-opencode`, `officer-pty`.
## Environment (this machine)
**This number tracks PLUGIN INSTALLS, not platform releases.** It went to fourteen when Minesweeper was
installed and back to thirteen when it was removed, with no platform change either time — installing a
plugin that declares a sidecar writes it into the generated ecosystem file. Do not read a change here as
a platform change, and do not expect two machines to agree.
It said "twenty" and listed a different set until 2026-08-23 — including `officer-vault`, `officer-slskd`,
`officer-headscale`, `officer-transmission`, `officer-invoiceshelf`, `officer-wallet`, `officer-photos`,
`officer-jellyfin`, `officer-gitea`, `officer-music`, `officer-vnc`, none of which run here, while omitting
six that do. That is what a hand-maintained list of processes becomes: accurate on 2026-08-07, and nobody
re-derives a list while editing the sentence around it. `mybiblepal-api` and `mybiblepal-audio` are also
gone; nothing shares this daemon today.
Never `pm2 restart ecosystem.config.cjs` — it bounces every sidecar. Use `--only <name>`, or restart the
single process the change needs. `pm2 jlist` is still the source of truth; the check exists so the copy
cannot silently stop matching it.
- `OFFICER_ITEMS_DIR=/home/pastilhas/dockers/officer.dev/capabilities` ← items live here
- `DATA_PATH=/home/pastilhas/dockers/officer.dev/data`