AGENTS.md@assistant/src/i18n · git:20260910.e3b8f59 · 2026-09-10 · sha256 20191e9753bbcd6b

AGENTS.md@assistant/src/i18n git:20260910.e3b8f59A

Immutable. This exact content is served forever at /api/v1/blob/20191e9753bbcd6b.

# Daemon i18n

User-facing copy the assistant generates as a hardcoded constant goes
through `assistant/src/i18n/`. The web app has its own catalogs. This
module is for constants the daemon writes or emits.

## Rules

1. Add a key to `MESSAGE_KEYS` and to every locale in `MESSAGE_CATALOGS`.
2. Persist the key when a column holds a system constant. Never persist a
   translated string.
3. Resolve with `t(key, locale)` or a typed helper (`resolveConversationTitle`)
   at the edge that emits the string.
4. Do not match stored display strings back to keys. A stored title may be
   in any language on purpose.
5. Locale comes from `Accept-Language` (`localeFromAcceptLanguage`) or an
   explicit CLI flag. Default `en` lives in this module, not at each caller.

Conversation titles persist `conversation.title.generating` /
`conversation.title.untitled`. `resolveConversationTitle` turns those keys
into catalog copy. Legacy English placeholders stay replaceable via the
title service patterns and pass through on the wire until they are retitled.