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>
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# 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`.
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "officer",
|
||||
"version": "2026.08.22.01",
|
||||
"version": "2026.08.22.02",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"workspaces": [
|
||||
|
||||
Reference in New Issue
Block a user