mirror of
https://github.com/tiennm99/DocsGPT.git
synced 2026-10-11 12:11:45 +00:00
Three things the UI pass started but did not carry all the way. The MCP server dialog's Basic Authentication branch was fixed to use the label keys for its labels and the placeholder keys for its placeholders, but the API Key and Bearer Token branches above it in the same renderAuthFields were left reading placeholders.apiKey and placeholders.bearerToken as their <Label>. Both fields showed the placeholder text twice over: the label above the input read "Your secret API key" where the input already hinted it. authTypes.apiKey and authTypes.bearer already held "API Key" and "Bearer Token". (Note that the Basic branch that prompted all this is unreachable — `basic` is commented out of the authTypes list, so that form cannot be opened.) Dropped a dead `t(...) || 'Scopes (comma separated)'` fallback in the same file while there. t() returns the key string when a key is missing, never a falsy value, so the right-hand side could not run; the branch would render the raw key rather than the English it looks like it guards. The plural fix covered English only. resultSummary, view_more, actionsFound and needsSetup all took _one/_other in en.json, but de, es and ru kept a single form, so "1 Chunks abgerufen", "1 fragmentos recuperados" and "ещё 1 источников" still rendered — the exact bug the change set out to remove, in every language but the one it was tested in. Added _one/_other for de and es, and _one/_few/_many/_other for ru, which needs the three-way split (1 источник, 2 источника, 5 источников). Translated needsSetup while there; it was still English in all three. jp, zh and zh-TW have a single plural category, so their base form is already correct and stays as it is. Replacing Spinner with a skeleton dropped the role="status" that Spinner carried, and the skeleton divs announce nothing, so a screen reader got no signal at all between navigating to Agents and the list appearing. Put it on SkeletonLoader itself rather than at the call sites, so every variant gets it. It is sr-only, which is position: absolute, so it never becomes a flex or grid item in the containers these render into.