fix(desktop): console.log 清理 — 替换为结构化 logger
将 desktop/src 中 23 处 console.log 替换为 createLogger() 结构化日志: - 生产构建自动静默 debug/info 级别 - 保留 console.error 用于关键错误可见性 - 新增 dompurify 依赖修复 XSS 防护引入缺失 涉及文件: App.tsx, offlineStore.ts, autonomy-manager.ts, gateway-auth.ts, llm-service.ts, request-helper.ts, security-index.ts, skill-discovery.ts, use-onboarding.ts 等 16 个文件
This commit is contained in:
@@ -9,6 +9,9 @@ import { create } from 'zustand';
|
||||
import { persist } from 'zustand/middleware';
|
||||
import { useConnectionStore, getConnectionState } from './connectionStore';
|
||||
import { generateRandomString } from '../lib/crypto-utils';
|
||||
import { createLogger } from '../lib/logger';
|
||||
|
||||
const log = createLogger('OfflineStore');
|
||||
|
||||
// === Types ===
|
||||
|
||||
@@ -153,7 +156,7 @@ export const useOfflineStore = create<OfflineStore>()(
|
||||
queuedMessages: [...s.queuedMessages, message],
|
||||
}));
|
||||
|
||||
console.log(`[OfflineStore] Message queued: ${id}`);
|
||||
log.debug(`Message queued: ${id}`);
|
||||
return id;
|
||||
},
|
||||
|
||||
@@ -192,15 +195,15 @@ export const useOfflineStore = create<OfflineStore>()(
|
||||
|
||||
// Check if connected
|
||||
if (getConnectionState() !== 'connected') {
|
||||
console.log('[OfflineStore] Not connected, cannot retry messages');
|
||||
log.debug('Not connected, cannot retry messages');
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`[OfflineStore] Retrying ${pending.length} queued messages`);
|
||||
log.debug(`Retrying ${pending.length} queued messages`);
|
||||
|
||||
for (const msg of pending) {
|
||||
if (msg.retryCount >= state.maxRetryCount) {
|
||||
console.log(`[OfflineStore] Message ${msg.id} exceeded max retries`);
|
||||
log.debug(`Message ${msg.id} exceeded max retries`);
|
||||
get().updateMessageStatus(msg.id, 'failed', 'Max retry count exceeded');
|
||||
continue;
|
||||
}
|
||||
@@ -220,11 +223,11 @@ export const useOfflineStore = create<OfflineStore>()(
|
||||
get().updateMessageStatus(msg.id, 'sent');
|
||||
// Remove sent message after a short delay
|
||||
setTimeout(() => get().removeMessage(msg.id), 1000);
|
||||
console.log(`[OfflineStore] Message ${msg.id} sent successfully`);
|
||||
log.debug(`Message ${msg.id} sent successfully`);
|
||||
} catch (err) {
|
||||
const errorMessage = err instanceof Error ? err.message : 'Send failed';
|
||||
get().updateMessageStatus(msg.id, 'failed', errorMessage);
|
||||
console.warn(`[OfflineStore] Message ${msg.id} failed:`, errorMessage);
|
||||
log.warn(`Message ${msg.id} failed:`, errorMessage);
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -243,7 +246,7 @@ export const useOfflineStore = create<OfflineStore>()(
|
||||
const attempt = state.reconnectAttempt + 1;
|
||||
const delay = state.nextReconnectDelay;
|
||||
|
||||
console.log(`[OfflineStore] Scheduling reconnect attempt ${attempt} in ${delay}ms`);
|
||||
log.debug(`Scheduling reconnect attempt ${attempt} in ${delay}ms`);
|
||||
|
||||
set({
|
||||
isReconnecting: true,
|
||||
@@ -265,7 +268,7 @@ export const useOfflineStore = create<OfflineStore>()(
|
||||
},
|
||||
|
||||
attemptReconnect: async () => {
|
||||
console.log('[OfflineStore] Attempting to reconnect...');
|
||||
log.debug('Attempting to reconnect...');
|
||||
|
||||
try {
|
||||
// Try to connect via connection store
|
||||
@@ -273,12 +276,12 @@ export const useOfflineStore = create<OfflineStore>()(
|
||||
|
||||
// Check if now connected
|
||||
if (getConnectionState() === 'connected') {
|
||||
console.log('[OfflineStore] Reconnection successful');
|
||||
log.debug('Reconnection successful');
|
||||
get().setOffline(false);
|
||||
return true;
|
||||
}
|
||||
} catch (err) {
|
||||
console.warn('[OfflineStore] Reconnection failed:', err);
|
||||
log.warn('Reconnection failed:', err);
|
||||
}
|
||||
|
||||
// Still offline, schedule next attempt
|
||||
|
||||
Reference in New Issue
Block a user