Skip to content
22 changes: 0 additions & 22 deletions app/src/lib/i18n/chunks/de-5.ts
Original file line number Diff line number Diff line change
Expand Up @@ -523,28 +523,6 @@ const de5: TranslationMap = {
'settings.mascot.colorYellow': 'Gelb',
'settings.mascot.libraryUnavailable': 'OpenHuman Bibliothek nicht verfügbar',
'settings.mascot.title': 'OpenHuman',
'settings.developerMenu.mcpServer.title': 'MCP-Server',
'settings.developerMenu.mcpServer.desc':
'Externe MCP-Clients zur Verbindung mit OpenHuman konfigurieren',
'settings.mcpServer.title': 'MCP-Server',
'settings.mcpServer.toolsSectionTitle': 'Verfügbare Tools',
'settings.mcpServer.toolsSectionDesc':
'Tools, die über den MCP-Stdio-Server bereitgestellt werden, wenn openhuman-core mcp ausgeführt wird',
'settings.mcpServer.configSectionTitle': 'Client-Konfiguration',
'settings.mcpServer.configSectionDesc':
'Wählen Sie Ihren MCP-Client aus, um den passenden Konfigurations-Schnipsel zu erzeugen',
'settings.mcpServer.copySnippet': 'In Zwischenablage kopieren',
'settings.mcpServer.copied': 'Kopiert!',
'settings.mcpServer.openConfigFile': 'Konfigurationsdatei öffnen',
'settings.mcpServer.binaryPathNotFound':
'OpenHuman-Binary nicht gefunden. Wenn Sie aus dem Quellcode arbeiten, bauen Sie mit: cargo build --bin openhuman-core',
'settings.mcpServer.openConfigError': 'Konfigurationsdatei konnte nicht geöffnet werden',
'settings.mcpServer.clientClaudeDesktop': 'Claude Desktop',
'settings.mcpServer.clientCursor': 'Cursor',
'settings.mcpServer.clientCodex': 'Codex',
'settings.mcpServer.clientZed': 'Zed',
'settings.mcpServer.configFilePath': 'Konfigurationsdatei',
'settings.mcpServer.clientSelectorAriaLabel': 'MCP-Client-Auswahl',
};

export default de5;
15 changes: 15 additions & 0 deletions app/src/utils/__tests__/configPersistence.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -457,6 +457,21 @@ describe('configPersistence', () => {
expect(getStoredCoreMode()).toBeNull();
});

it('logs the mode string directly, not an object wrapper', () => {
const spy = vi.spyOn(console, 'debug').mockImplementation(() => {});
try {
storeCoreMode('cloud');
const calls = spy.mock.calls.flat();
// Must NOT log an object like { mode } — that renders as [object Object]
const hasObjectArg = calls.some(arg => typeof arg === 'object' && arg !== null);
expect(hasObjectArg).toBe(false);
const modeArg = calls.find(arg => typeof arg === 'string' && arg === 'cloud');
expect(modeArg).toBe('cloud');
} finally {
spy.mockRestore();
}
});
Comment thread
coderabbitai[bot] marked this conversation as resolved.

it('falls back to the E2E default local mode when no marker has been written', async () => {
vi.resetModules();
vi.doMock('../config', () => ({
Expand Down
2 changes: 1 addition & 1 deletion app/src/utils/configPersistence.ts
Original file line number Diff line number Diff line change
Expand Up @@ -292,7 +292,7 @@ export function getStoredCoreMode(): 'local' | 'cloud' | null {
export function storeCoreMode(mode: 'local' | 'cloud'): void {
try {
localStorage.setItem(CORE_MODE_STORAGE_KEY, mode);
console.debug('[configPersistence] Stored core mode:', { mode });
console.debug('[configPersistence] Stored core mode:', mode);
} catch {
console.warn('[configPersistence] Unable to store core mode in localStorage');
}
Expand Down
Loading