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 <noreply@anthropic.com>
3.3 KiB
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-webandsrc/workspaces/componentshave no hardcoded user-facing strings left: 555 and 47 occurrences respectively, both now zero.en-GBandpt-PTare 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()andIntl.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.
sendFiredid 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
git fetch origin --tagsthengit merge --ff-only deploy/2026.08.23.04bun 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.bun 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.
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, perdocs/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.