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:
iven
2026-03-30 16:22:16 +08:00
parent 544358764e
commit ecd7f2e928
16 changed files with 140 additions and 68 deletions

View File

@@ -6,6 +6,9 @@
*/
import { useState, useEffect, useCallback } from 'react';
import { createLogger } from './logger';
const log = createLogger('useOnboarding');
const ONBOARDING_COMPLETED_KEY = 'zclaw-onboarding-completed';
const USER_PROFILE_KEY = 'zclaw-user-profile';
@@ -56,7 +59,7 @@ export function useOnboarding(): OnboardingState {
setIsNeeded(true);
}
} catch (err) {
console.warn('[useOnboarding] Failed to check onboarding status:', err);
log.warn('Failed to check onboarding status:', err);
setIsNeeded(true);
} finally {
setIsLoading(false);
@@ -75,7 +78,7 @@ export function useOnboarding(): OnboardingState {
localStorage.setItem(USER_PROFILE_KEY, JSON.stringify(fullProfile));
setUserProfile(fullProfile);
setIsNeeded(false);
console.log('[useOnboarding] Onboarding completed for user:', profile.userName);
log.debug('Onboarding completed for user:', profile.userName);
} catch (err) {
console.error('[useOnboarding] Failed to save onboarding status:', err);
}
@@ -88,7 +91,7 @@ export function useOnboarding(): OnboardingState {
localStorage.removeItem(USER_PROFILE_KEY);
setUserProfile(null);
setIsNeeded(true);
console.log('[useOnboarding] Onboarding reset');
log.debug('Onboarding reset');
} catch (err) {
console.error('[useOnboarding] Failed to reset onboarding:', err);
}
@@ -113,7 +116,7 @@ export function getStoredUserProfile(): UserProfile | null {
return JSON.parse(profileStr) as UserProfile;
}
} catch (err) {
console.warn('[useOnboarding] Failed to get user profile:', err);
log.warn('Failed to get user profile:', err);
}
return null;
}