Replace the old "clean naming" allowlist (provider.added, auth.login, etc.) with
the 26 real action strings emitted by logAuditEvent calls in the codebase
(provider.credentials.*, auth.login.*, settings.update, sync.token.*, etc.).
Activity feed was empty because HIGH_LEVEL_ACTIONS used invented names that
never matched any real audit event.
TranslateTab now accepts onInputChange?(text: string) => void. A unified
handleInputChange wrapper calls both setInputText and onInputChange? so
CompressionPreviewAccordion and pipeline Step 1 at the shell level receive
the real input text instead of always seeing an empty string.
TranslatorPageClient passes onInputChange={setSharedInputContent} to wire
the sync. Test files updated to accept the new optional prop in mocks and
verify the callback is wired without throwing.
TestBenchAccordionProps extends Omit<AdvancedAccordionProps, 'slug'> so slug
is not a valid prop on that component. The slug is fixed internally as
'testbench' — callers must not pass it.
F7 originally implemented useEngineStatus/useMemorySettings via swr, but the
package is not in package.json — would crash at runtime. Replaced with native
useState + useEffect + setInterval polling. Same public API
(status/settings/isLoading/isError/mutate/save) so the existing components
and the 8 UI tests (which mock the hooks directly) keep working unchanged.
Replace MockExportCodeModal stub in SearchToolsTopBar with the real
ExportCodeModal component from playground/components/ExportCodeModal.
Update SearchToolsClient exportState type from Record<string,unknown>
to PlaygroundState for proper type alignment.
Micro-fix detected during F10 audit: F8 left a TODO(F7-merge) stub
that was never resolved after F7 merged.
Export deepMergeFallback and apply it in getRequestConfig so all 39
non-EN locales receive EN text for any key absent in their JSON file.
Locale-specific translations always win; EN fills gaps only.
Add 60 new playground.* keys and 50 new search.* keys to en.json and
pt-BR.json covering Playground Studio tabs (Chat/Compare/API/Build),
config pane, param sliders, presets, improve prompt, export, compare
metrics (TTFT/TPS), Build tab (tools/structured output), and Search Tools
Studio tabs (Search/Scrape/Compare), SearchConceptCard, ProviderCatalog,
ScrapeResult, and config pane fields.
PT-BR has full Portuguese translations. EN has EN strings.
Converts the monolithic memory page into a 3-tab Studio layout
(Memories | Playground | Engine) with URL-driven tab state, 8 new
React components, 2 SWR hooks, 50+ i18n keys, and 8 Vitest unit tests
covering all new components (45/45 passing).
Convert CaptureModesToolbar, TopBarControls, CustomHostsManager,
HttpProxySnippetCard and SessionRecorderBar to consume useTranslations
instead of hardcoded English strings. Add 7 missing trafficInspector
keys (customHostsTitle, loading, copied, copy, httpProxyTitle,
notRecording, anyStatus) to both en.json and pt-BR.json.