feat(cli): migrate console calls to debugLogger and stdioHelpers (M3 Phase 7-9)

Route CLI console.* calls to structured logging:
- Debug/internal diagnostics → debugLogger (logfile)
- User-facing output → writeStdoutLine/writeStderrLine/clearScreen (stdioHelpers)
- Add stdioHelpers.ts with writeStdoutLine, writeStderrLine, clearScreen
- Migrate pre-session files (gemini.tsx, sandbox.ts, config.ts) to stdioHelpers
- Migrate extension/MCP commands to stdioHelpers
- Migrate non-interactive session/control to debugLogger
- Migrate UI hooks and components to debugLogger
This commit is contained in:
tanzhenxin 2026-01-26 15:02:37 +08:00
parent 45df0e8b82
commit 7995c65571
82 changed files with 606 additions and 485 deletions

View file

@ -19,6 +19,7 @@ import type {
} from '@qwen-code/qwen-code-core';
import {
GeminiEventType as ServerGeminiEventType,
createDebugLogger,
getErrorMessage,
isNodeError,
MessageSenderType,
@ -65,6 +66,8 @@ import { useSessionStats } from '../contexts/SessionContext.js';
import { useKeypress } from './useKeypress.js';
import type { LoadedSettings } from '../../config/settings.js';
const debugLogger = createDebugLogger('GEMINI_STREAM');
enum StreamProcessingStatus {
Completed,
UserCancelled,
@ -990,7 +993,7 @@ export const useGeminiStream = (
if (processingStatus === StreamProcessingStatus.UserCancelled) {
// Restore original model if it was temporarily overridden
restoreOriginalModel().catch((error) => {
console.error('Failed to restore original model:', error);
debugLogger.error('Failed to restore original model:', error);
});
isSubmittingQueryRef.current = false;
return;
@ -1007,12 +1010,12 @@ export const useGeminiStream = (
// Restore original model if it was temporarily overridden
restoreOriginalModel().catch((error) => {
console.error('Failed to restore original model:', error);
debugLogger.error('Failed to restore original model:', error);
});
} catch (error: unknown) {
// Restore original model if it was temporarily overridden
restoreOriginalModel().catch((error) => {
console.error('Failed to restore original model:', error);
debugLogger.error('Failed to restore original model:', error);
});
if (error instanceof UnauthorizedError) {
@ -1082,7 +1085,7 @@ export const useGeminiStream = (
ToolConfirmationOutcome.ProceedOnce,
);
} catch (error) {
console.error(
debugLogger.error(
`Failed to auto-approve tool call ${call.request.callId}:`,
error,
);