From ff647fba0a7d5ef5b6f4e090a685fc870566d5b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Padez?= Date: Sun, 23 Aug 2026 13:51:50 +0000 Subject: [PATCH] release 2026.08.23.04 The web UI can be read in Portuguese. The shell and shared components are fully keyed, 581 keys across two complete catalogues, with the build failing on a missing one. Plus an endpoint for spawning an agent, and spawned agents becoming visible in both directions. No schema change and no dependency change. db:push should report nothing, and the plan says to stop and report it if it does not. Co-Authored-By: Claude Opus 5 --- deploy/2026.08.23.04.md | 61 +++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- 2 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 deploy/2026.08.23.04.md diff --git a/deploy/2026.08.23.04.md b/deploy/2026.08.23.04.md new file mode 100644 index 00000000..f0d22d15 --- /dev/null +++ b/deploy/2026.08.23.04.md @@ -0,0 +1,61 @@ +# 2026.08.23.04 + +The web UI can be read in Portuguese. The shell and the shared components are fully keyed — 581 keys across +two locales, with the build failing on a missing one — plus an endpoint for spawning an agent, and spawned +agents becoming visible in both directions. + +**No schema change.** Nothing under `src/databases/**/schema.ts` moved across +`deploy/2026.08.23.03..HEAD`. `bun db:push` is still a step because it is cheap and it verifies the +database agrees with the code, but it should report no changes. + +**No dependency change.** `bun.lock` is untouched. **Do not run `bun install`.** + +## What is in it + +- **Localization, phases 0 through 2.** `src/apps/officer-web` and `src/workspaces/components` have no + hardcoded user-facing strings left: 555 and 47 occurrences respectively, both now zero. `en-GB` and + `pt-PT` are complete and in step at 581 keys. +- **Every locale ships a complete catalogue.** There is no fallback between regional variants, so a + Portuguese reader is never served Brazilian wording. What enforces that is a **key-parity test that fails + the build** on a gap — verified by removing one key and watching it go red. +- **The language picker offers only locales that exist.** It listed about twenty codes, eighteen of which + silently rendered English. Stored bare codes widen on read (`en` → `en-GB`), with no database migration. +- **Dates, numbers and plurals follow the account's locale**, not the browser's, through `useFormat()` and + `Intl.PluralRules`. Roughly 23 call sites moved. +- **`POST /api/sub-agents/spawn`** — an endpoint for starting an agent from a prompt, for callers that are + not a chat and so cannot reach the harness's own tool. Budget-checked before spawning, and it refuses with + a 429 naming the window rather than burning the last of one. +- **Spawned agents are visible in both directions.** A commander's pane lists its children as links; opening + one shows which commander started it, linking back. +- **A dropped sidecar command says so.** `sendFire` did nothing when no sidecar was registered — no log, no + error — so answering a question during a restart window vanished and the card spun forever. + +## Every host + +1. `git fetch origin --tags` then `git merge --ff-only deploy/2026.08.23.04` +2. `bun db:push` — expect **no changes**. If it wants to alter something, stop and report it: that means + this tree and that host's database disagree about something this release did not touch. +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. + +**`macbookpro`:** append `/opt/homebrew/bin` to PATH for the `bun` commands, run `pm2` separately. + +## What to check, this release + +The visible change is the language picker in profile settings. It should offer exactly **English (UK)** and +**Português (Portugal)** and nothing else. A host still offering twenty languages did not pick up the +frontend bundle. + +No direct SQL is needed and none is authorised. + +## Hosts + +- **`edge-pertento-bridge`** — skipped, per `docs/servers.md`. Name it and spend nothing on it. +- **`production-pertento-bridge`** — deployed cleanly last release after being two behind. Nothing expected. + +## `officer-dev` — skip it + +The rollout runs from here. It is already at this commit and `officer` has been restarted on it. diff --git a/package.json b/package.json index 40a7cb18..7d1c09b9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "officer", - "version": "2026.08.23.03", + "version": "2026.08.23.04", "private": true, "type": "module", "workspaces": [