2026.08.21.04 — /login in the chat, account switching, and a spotlight that reaches the plugins
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 <noreply@anthropic.com>
This commit is contained in:
@@ -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`.
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "officer",
|
||||
"version": "2026.08.21.03",
|
||||
"version": "2026.08.21.04",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"workspaces": [
|
||||
|
||||
Reference in New Issue
Block a user