Files
platform/deploy/2026.08.21.04.md
pastilhasandClaude Opus 5 98177c3bc9 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>
2026-08-21 23:05:39 +00:00

2.6 KiB

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.