mirror of
https://github.com/diegosouzapw/OmniRoute.git
synced 2026-08-01 12:52:11 +03:00
Third code-review pass on plan 21 found two follow-up issues from the
previous round.
1. extractLastUserText accepted Responses API items with role===undefined
regardless of their type. function_call_output / tool_call_output /
reasoning items would slip through and be treated as user query input,
leaking the tool's reply or the model's chain of thought into the
memory retrieval query.
Fix: when role is undefined, skip items whose type is in a denylist of
non-user item types (function_call, function_call_output, tool_call,
tool_call_output, reasoning, computer_call, computer_call_output,
web_search_call, file_search_call). Also reject non-text content
parts inside multi-modal arrays (image_url, tool_use, ...) so that
image-only or tool-only user messages do not produce a query made of
irrelevant fragments.
2. MemoryEngineStatus introduced t("engine.configureCta") in round 2 but
the key was never added to en.json / pt-BR.json — even with the new
EN fallback merger, the CTA would render the literal key path.
Added "Configure" / "Configurar" to both locales.
Verified: typecheck:core clean; vitest UI 46/46; cli-memory-commands,
memory-settings, and mcp-memory-tools-strategy isolated sanity all
green; grep audit of memory.* i18n keys used by the UI confirms zero
missing keys in en.json.