Files
openclaw/ui/AGENTS.md
Peter Steinberger 1b1a41d87f refactor(ui): sidebar IA cleanup: Activity to Settings, Dreams into Agents Memory tab, single MCP mutation owner (#104604)
* refactor(ui): move dreams page modules to agents/memory (verbatim)

* refactor(ui): sidebar IA cleanup: Activity to Settings, Dreams into Agents Memory tab, single MCP mutation owner, Usage icon

Folds the per-agent Dreams page into the Agents page as a Memory panel and
deletes the dreams route; moves the session-scoped Activity page out of the
sidebar into Settings > System next to Logs; removes the MCP enable/disable
toggle from Settings > MCP so the Plugins page is the single mutation surface
for config.mcp.servers; gives Usage a coins icon so it no longer collides
with Overview.

Closes #104590

* docs: update Control UI docs for Activity/Memory/MCP sidebar changes

* fix(scripts): fail control-ui i18n sync closed on new untranslated keys without provider auth

An unauthenticated ui:i18n:sync silently recorded English fallbacks, which the
shipped-fallback CI gate then rejects; post-merge translation is owned by the
control-ui-locale-refresh workflow. Sync now errors on new untranslated keys
without a provider (OPENCLAW_CONTROL_UI_I18N_AUTH_OPTIONAL=1 opts back in),
and the ui AGENTS guide documents the commit-en.ts-only contributor flow.

* chore(ui): translate new sidebar keys, refresh i18n baseline, localize Memory tab expectation
2026-07-11 14:24:39 -07:00

1.5 KiB

Control UI Guide

This directory owns Control UI-specific guidance that should not live in the repo root.

i18n Rules

  • Foreign-language locale bundles in ui/src/i18n/locales/*.ts are generated output.
  • Do not hand-edit non-English locale bundles or ui/src/i18n/.i18n/* unless a targeted generated-output fix is explicitly requested.
  • The source of truth is ui/src/i18n/locales/en.ts plus the generator/runtime wiring in:
    • scripts/control-ui-i18n.ts
    • ui/src/i18n/lib/types.ts
    • ui/src/i18n/lib/registry.ts
  • Pipeline: update English strings and locale wiring here and commit en.ts only; the control-ui-locale-refresh workflow translates and opens a generated PR after merge. Do not run pnpm ui:i18n:sync without provider auth (ANTHROPIC_API_KEY/OPENAI_API_KEY): CI rejects recorded English fallbacks, and sync fails closed on new untranslated keys. Run authenticated sync (and commit bundles plus .i18n metadata) only when the change needs it immediately, e.g. a raw-copy-baseline refresh after moving files with hardcoded strings.
  • Prioritization report: pnpm ui:i18n:report [--surface <name>] [--locale <locale>] [--top <n>] shows current hardcoded-copy focus areas and locale fallback metadata. It is not a drift gate; use pnpm ui:i18n:check for that.
  • If locale outputs drift, regenerate them. Do not manually translate or hand-maintain generated locale files by default.

Scope

  • Keep UI-specific rules here.
  • Leave repo-global architecture, verification, and git workflow rules in the root AGENTS.md.