diff --git a/CLAUDE.md b/CLAUDE.md index 73323ea1..6d4de067 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -23,8 +23,15 @@ One Bun process (`src/server.tsx`) serves everything: Long-running and privileged work lives in **sidecars**: separate processes that dial back in over `/api/sidecar/register` and are tracked in `src/servers/sidecar-registry.ts`. PM2 runs them -(`ecosystem.config.cjs`): `officer` (the server), `officer-claude`, `officer-opencode`, -`officer-email`, `officer-pty`, `officer-vnc`. +(`ecosystem.config.cjs`): `officer` (the server), `officer-anthropic-proxy`, `officer-agent`, +`officer-opencode`, `officer-email`, `officer-pty`, `officer-vnc`, `officer-music`, `officer-vault`, +`officer-slskd`. + +**`officer-anthropic-proxy` and `officer-agent` are not the same thing.** The proxy holds the Anthropic +credential and forwards API traffic; the agent is the process that spawns `claude`. They were one entry +named `officer-claude` until the sidecar-isolation work — which is exactly how the false claim that +"restarting officer doesn't disturb the agent" survived so long. Every sidecar is a PM2 peer of +`officer`, so **no sidecar is a child of the server and restarting the server does not kill one.** Agents run **unsandboxed as the server owner**, with `--dangerously-skip-permissions`. This is deliberate — it is the owner's own machine. Do not add a jail without being asked. diff --git a/docs/navigation-audit.md b/docs/navigation-audit.md new file mode 100644 index 00000000..6207f530 --- /dev/null +++ b/docs/navigation-audit.md @@ -0,0 +1,207 @@ +# Frontend Navigation Audit — the "opaque click" anti-pattern + +**Date:** 2026-07-30 · **Branch:** `sidecars-claude` · **Status:** exploration + documentation only (no code changed) + +Prep work for the upcoming **full navigation refactor**. This catalogues every place the frontend +navigates to / selects an **addressable entity** using a `