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>
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'svimazing.- Spotlight is on
Shift+Space. It wasalt-spacein the last release.Ctrl+Spacecannot 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
lockedand 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. assertPermissionTotalityreads the sockets that are served, generated from oneWS_ROUTESdeclaration, instead of a parallel list of handlers.- The email plugin's multi-account backend, via
plugins:update—?account=<id>names a mailbox,?account=allspans them, absent is unchanged. Only hosts with that plugin installed are affected.
Every host
git pull --ff-onlybun db:push— new this releasebun run plugins:updatepm2 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.