[codex] fix MCP management lifecycle (#1144)

* feat(mcp): add MCP server management UI

- Server CRUD: add/edit/remove with YAML/JSON Monaco editor
- raw_config passthrough: zero field loss on edit/toggle
- tool_details embedding: single-request card data (1+N → 1)
- Auto-retry exponential backoff (2s→32s, max 5 retries)
- Route safety guards (hasRoute) for dynamic sidebar
- i18n: 9 languages (de/en/es/fr/ja/ko/pt/zh/zh-TW)
- 19 unit tests + 8 UX browser tests
- 35 files, +2933 lines

* fix mcp management lifecycle

---------

Co-authored-by: Crafter-feng <succeed_happu@163.com>
This commit is contained in:
ekko
2026-05-30 11:06:08 +08:00
committed by GitHub
co-authored by Crafter-feng
parent 675ddb8282
commit b015e70b9d
37 changed files with 2717 additions and 7 deletions
+56
View File
@@ -105,6 +105,60 @@ export default {
expired: 'Abgelaufen',
},
// MCP-Verwaltung
mcp: {
title: 'MCP-Server',
loadFailed: 'MCP-Server konnten nicht geladen werden',
reloadAll: 'Alle neu laden',
refresh: 'Aktualisieren',
total: 'Gesamt',
connected: 'Verbunden',
disconnected: 'Getrennt',
tools: 'werkzeuge',
tool: 'Werkzeuge',
searchPlaceholder: 'Server suchen...',
addServer: '+ Server hinzufuegen',
zeroTools: '0 Werkzeuge',
loading: 'Wird geladen...',
empty: 'Keine MCP-Server konfiguriert',
reloaded: '{server} neu geladen',
reloadedAll: 'Alle MCP-Server neu geladen',
reloadFailed: 'Neuladen fehlgeschlagen',
serverAdded: 'Server "{name}" hinzugefuegt',
addFailed: 'Server konnte nicht hinzugefuegt werden',
serverUpdated: 'Server "{name}" aktualisiert',
updateFailed: 'Server konnte nicht aktualisiert werden',
saveFailed: 'Speichern fehlgeschlagen',
serverRemoved: '"{name}" entfernt',
enabled: "Aktiviert: {name}",
disabled: "Deaktiviert: {name}",
connectedStatus: 'Verbunden',
disconnectedStatus: 'Getrennt',
disabledStatus: 'Deaktiviert',
toolList: 'Werkzeugliste',
count: ' ',
more: 'mehr',
removeFailed: 'Server konnte nicht entfernt werden',
testOk: 'Test OK — {count} Werkzeuge verfuegbar',
testEmpty: 'Test lieferte keine Werkzeuge',
testFailed: 'Test fehlgeschlagen',
edit: 'Bearbeiten',
test: 'Testen',
reload: 'Neu laden',
remove: 'Entfernen',
confirmRemove: 'Server "{name}" entfernen?',
cancel: 'Abbrechen',
add: 'Hinzufuegen',
save: 'Speichern',
addTitle: 'MCP-Server hinzufuegen',
editTitle: 'MCP-Server bearbeiten',
invalidJson: 'Ungültiges JSON',
invalidYaml: 'Ungültiges YAML-Format',
invalidConfig: 'Ungültige Konfiguration',
invalidServerConfig: 'Ungültige Serverkonfiguration',
missingCommandOrUrl: 'Muss command oder url enthalten',
},
// Sidebar
sidebar: {
chat: 'Chat',
@@ -115,6 +169,7 @@ export default {
models: 'Modelle',
profiles: 'Profile',
plugins: 'Plugins',
mcp: 'MCP',
skills: 'Fahigkeiten',
memory: 'Gedachtnis',
logs: 'Protokolle',
@@ -235,6 +290,7 @@ export default {
compress: 'Kontextkomprimierung im Leerlauf ausführen',
steer: 'Steuertext an den aktiven Bridge-Lauf senden',
destroy: 'Bridge-Agent für diese Sitzung freigeben',
reloadMcp: 'MCP-Server neu laden',
},
attachFiles: 'Dateien anhangen',
showToolCalls: 'Tool-Aufrufe anzeigen',