This commit is contained in:
从何开始123
2026-01-12 18:03:31 +08:00
parent bd297716b0
commit 25dffcc02e
10 changed files with 290 additions and 27 deletions

View File

@@ -5,6 +5,7 @@ import { STORAGE_KEYS, DEFAULT_CONFIG, getValidThinkingLevels } from '../config'
import { useDeepThink } from './useDeepThink';
import { useChatSessions } from './useChatSessions';
import { setInterceptorUrl } from '../interceptor';
import { logger } from '../services/logger';
export const useAppLogic = () => {
// Session Management
@@ -72,10 +73,12 @@ export const useAppLogic = () => {
// Persistence Effects
useEffect(() => {
localStorage.setItem(STORAGE_KEYS.SETTINGS, JSON.stringify(config));
logger.info('System', 'Settings updated', config);
}, [config]);
useEffect(() => {
localStorage.setItem(STORAGE_KEYS.MODEL, selectedModel);
logger.info('User', 'Model changed', { model: selectedModel });
}, [selectedModel]);
useEffect(() => {
@@ -120,6 +123,7 @@ export const useAppLogic = () => {
if (session) {
setMessages(session.messages);
setSelectedModel(session.model || 'gemini-3-flash-preview');
logger.debug('User', 'Session switched', { id: currentSessionId, title: session.title });
}
} else {
setMessages([]);
@@ -129,6 +133,9 @@ export const useAppLogic = () => {
// Handle AI Completion
useEffect(() => {
if (appState === 'completed') {
const duration = (processStartTime && processEndTime) ? (processEndTime - processStartTime) : undefined;
logger.info('System', 'Request processing completed', { duration });
const finalizedMessage: ChatMessage = {
id: `ai-${Date.now()}`,
role: 'model',
@@ -137,7 +144,7 @@ export const useAppLogic = () => {
experts: experts,
synthesisThoughts: synthesisThoughts,
isThinking: false,
totalDuration: (processStartTime && processEndTime) ? (processEndTime - processStartTime) : undefined
totalDuration: duration
};
const newMessages = [...messages, finalizedMessage];
@@ -158,6 +165,8 @@ export const useAppLogic = () => {
const handleRun = useCallback((attachments: MessageAttachment[] = []) => {
if (!query.trim() && attachments.length === 0) return;
logger.info('User', 'New Request', { query, hasAttachments: attachments.length > 0 });
const userMsg: ChatMessage = {
id: `user-${Date.now()}`,
role: 'user',
@@ -180,6 +189,7 @@ export const useAppLogic = () => {
}, [query, messages, currentSessionId, selectedModel, config, createSession, updateSessionMessages, runDynamicDeepThink]);
const handleNewChat = useCallback(() => {
logger.info('User', 'New Chat initiated');
stopDeepThink();
setCurrentSessionId(null);
setMessages([]);
@@ -199,6 +209,7 @@ export const useAppLogic = () => {
const handleDeleteSession = useCallback((id: string, e: React.MouseEvent) => {
e.stopPropagation();
logger.info('User', 'Session deleted', { id });
deleteSession(id);
if (currentSessionId === id) {
handleNewChat();