From 98177c3bc9bac32276fffbdae669537ed91fda48 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Padez?= Date: Fri, 21 Aug 2026 23:05:39 +0000 Subject: [PATCH] =?UTF-8?q?2026.08.21.04=20=E2=80=94=20/login=20in=20the?= =?UTF-8?q?=20chat,=20account=20switching,=20and=20a=20spotlight=20that=20?= =?UTF-8?q?reaches=20the=20plugins?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit First release in three with a SCHEMA CHANGE. anthropic_accounts is new, and without the push the account switcher's route fails on a missing relation the first time the usage panel is opened — so the plan names db:push as a step rather than leaving it to be inferred from the diff. alpha already runs this code, deployed by hand as a preview. The plan says its pull will be a no-op and to run the rest anyway, so it does not read as a skipped host. Co-Authored-By: Claude Opus 5 --- deploy/2026.08.21.04.md | 51 +++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 deploy/2026.08.21.04.md diff --git a/deploy/2026.08.21.04.md b/deploy/2026.08.21.04.md new file mode 100644 index 00000000..330174fc --- /dev/null +++ b/deploy/2026.08.21.04.md @@ -0,0 +1,51 @@ +# 2026.08.21.04 + +`/login` in the chat window, switching between Anthropic accounts from the usage pills, and a Spotlight +that can actually reach the plugins. + +**This release has a SCHEMA CHANGE.** The previous two did not, and said so; this one adds +`anthropic_accounts`. Without the push, `GET /api/claude-auth/accounts` fails on a missing relation the +first time the usage panel is opened — so `bun db:push` is a step here, not an optional tidy. + +No dependency change: nothing in `deploy/2026.08.21.03..HEAD` touches `package.json` dependencies or +`bun.lock`. Do not run `bun install`. + +## What is in it + +- **`/login` works in the chat composer.** `claude auth login` behaves the same through plain pipes as + through a terminal, so it is a subprocess with two reads and one write — no pty. Copy-link beside the + open-link button, because opening it here opens it in the browser already signed into the account you are + leaving. +- **Account switching from the usage pills.** `anthropic_accounts` keeps each login's OAuth credential + encrypted under a per-account key from the secret store, so a switch needs no browser round trip. An + account with no saved credential still gets a chip you can read — cached percentages and a correct reset + time — marked as needing `/login`. +- **Spotlight reached eight items.** Core filled all eight slots, so on a populated server every plugin was + unreachable. The cap is gone, rows draw the dock's own tiles, and the settings list went from nine + hand-written rows to twenty read off the screens that declare them. +- The ephemeral pane opens from the markup rather than an effect. + +## Every host + +1. `git pull --ff-only` +2. **`bun db:push`** — new this release, see above +3. `bun run plugins:update` +4. `pm2 restart officer` + +`officer` only; no sidecar changed. Restarting it rebuilds the SPA, which is what ships the frontend. + +**`alpha` is already at this code**, deployed by hand as a preview before the tag. Its pull will be a +no-op and that is expected — run the remaining steps anyway rather than skipping the host, so its +`restart_time` moves with everyone else's. + +**On `macbookpro`, append to the PATH for `bun`** — `export PATH=$PATH:/opt/homebrew/bin` — and run `pm2` +as a separate command. `docs/servers.md` has the detail; replacing the PATH is what broke `pm2` on an +earlier deploy. + +## Then check + +`pm2 jlist`: `officer` is `online` and `restart_time` moved. Nothing else restarted by step 4 — note that +step 3 restarts every plugin's sidecar on its own, which is the script's behaviour and worth recording +rather than omitting. + +`scripts/deploy-claim.sh state 2026.08.21.04` says `done`. diff --git a/package.json b/package.json index a2396911..e95fae17 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "officer", - "version": "2026.08.21.03", + "version": "2026.08.21.04", "private": true, "type": "module", "workspaces": [