Files
platform/deploy/2026.08.22.02.md
T
pastilhasandClaude Opus 5 68d60e409b 2026.08.22.02 — theme favourites, ctrl+? shortcuts, command hq in two columns
Schema change this time: theme_favorites is new, and without the push the theme dropdown fails on a missing
relation the first time it reads a starred list. The plan names db:push as a step rather than leaving it to
be inferred from a diff.

Two things the plan states that a reader could not infer. Command HQ MIGRATES a saved layout on load, so
anyone who has opened that screen sees their arrangement replaced once — deliberate, and the screen is
locked so the only loss is column sizes. And the email plugin's multi-account work arrives through
plugins:update from another repository, affecting only hosts where that plugin is installed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-22 16:10:51 +00:00

2.9 KiB

2026.08.22.02

Theme favourites, a shortcuts modal on Ctrl+?, Command HQ rebuilt into two columns, 27 tests on the authorization resolver, and the email plugin's multi-account backend.

SCHEMA CHANGE. theme_favorites is new, so bun db:push is a step. Without it, opening the theme dropdown fails on a missing relation the first time it reads a starred list.

No dependency change — nothing in deploy/2026.08.22.01..HEAD touches package.json dependencies or bun.lock. Do not run bun install.

What is in it

  • Theme favourites, per account, in theme_favorites. Star from the dropdown, from the browser (f), or from anywhere (Ctrl+Shift+F). The lists rotate to the theme you are wearing rather than sorting it to the top, so neighbours survive.
  • Ctrl+? renders every shell shortcut from a registry — state/shortcuts.ts — ported in shape from the owner's vimazing.
  • Spotlight is on Shift+Space. It was alt-space in the last release. Ctrl+Space cannot work: Brave claims it at the browser level and the key never reaches the page.
  • Command HQ is two columns — navigation stacked into one 24% rail, transcript at 76%. It migrates a saved layout on load, so anyone who has opened that screen will see their arrangement replaced once. That is deliberate; the screen is locked and the only user contribution was column sizes.
  • 27 tests on permissions/authorize.ts, which had none. Its decisions are now pure functions, split from the database calls. No behaviour change.
  • assertPermissionTotality reads the sockets that are served, generated from one WS_ROUTES declaration, instead of a parallel list of handlers.
  • The email plugin's multi-account backend, via plugins:update — ?account=<id> names a mailbox, ?account=all spans them, absent is unchanged. Only hosts with that plugin installed are affected.

Every host

  1. git pull --ff-only
  2. bun db:push — new this release
  3. bun run plugins:update
  4. pm2 restart officer

officer only. Step 3 restarts each plugin's own sidecar; that is the script's behaviour and belongs in the report rather than being omitted.

macbookpro: append /opt/homebrew/bin to PATH for the bun commands, run pm2 separately. See docs/servers.md.

officer-dev — skip it, and it is already current

The commander runs there and skips its own host. That host was restarted repeatedly through the day as this work landed, so it is running this tree rather than lagging. Report it as skipped and current.

Then check

pm2 jlist: officer is online and restart_time moved; nothing errored.

theme_favorites exists — to_regclass('theme_favorites') is not null. This is the one step whose absence shows up as a broken dropdown rather than a failed boot, so verify it directly where psql is available and say where it is not.

scripts/deploy-claim.sh state 2026.08.22.02 says done.