feat: 全量日志接入 + 日志服务重构(非阻塞)
log-service 重构: - DOM 渲染改用 requestAnimationFrame 批量队列 - 全程 try-catch,任何异常都不阻塞主流程 - 新增 logConnection/logModel/logSession/logMemory/logRAG/logSetting/logIPC/logInit 便捷方法 全量接入(12 个文件): - header.ts: 连接状态变化(connected/disconnected/error) - model-bar.ts: 模型列表加载、模型切换、能力检测结果 - settings-modal.ts: 所有设置变更(系统提示词/上下文/温度/工具调用/命令执行/记忆)、显存释放、导出/导入 - tool-confirm-modal.ts: 工具确认弹窗、确认/取消操作 - memory-manager.ts: 记忆初始化、新增/删除、自动提取 - tool-registry.ts: 工具执行异常 - rag.ts: 文档分块、向量检索 - kb-modal.ts: 知识库创建、文档上传、批量上传 - history-modal.ts: 会话加载、会话删除 - main.ts: 应用初始化各阶段、桌面集成、菜单/托盘操作、新建会话 - input-area.ts: 消息发送、流式完成/错误、文件/图片添加、Agent Loop 错误
This commit is contained in:
@@ -6,6 +6,7 @@ import { state, KEYS } from '../state/state.js';
|
||||
import { debounce, escapeHtml, formatTime } from '../utils/utils.js';
|
||||
import { exportAsMarkdown, exportAsHtml, exportAsTxt, renderMessages, clearMessages } from './chat-area.js';
|
||||
import { ChatDB } from '../db/chat-db.js';
|
||||
import { logSession, logWarn } from '../services/log-service.js';
|
||||
import type { ChatSession } from '../types.js';
|
||||
|
||||
const HISTORY_PAGE_SIZE = 10;
|
||||
@@ -57,6 +58,7 @@ export function initHistoryModal(): void {
|
||||
if (target.classList.contains('btn-delete-session')) {
|
||||
if (confirm('确定删除此会话?')) {
|
||||
await db!.deleteSession(sessionId);
|
||||
logSession('删除', sessionId);
|
||||
const currentSession = state.get<ChatSession | null>(KEYS.CURRENT_SESSION);
|
||||
if (currentSession && currentSession.id === sessionId) {
|
||||
(document.querySelector('#btnNewChat') as HTMLElement).click();
|
||||
@@ -164,8 +166,12 @@ async function loadHistorySession(sessionId: string): Promise<void> {
|
||||
if (!db) return;
|
||||
|
||||
const session = await db.getSession(sessionId);
|
||||
if (!session) return;
|
||||
if (!session) {
|
||||
logWarn('会话不存在', sessionId);
|
||||
return;
|
||||
}
|
||||
|
||||
logSession('加载', `${session.title} (${session.messages.length}条消息)`);
|
||||
state.set(KEYS.CURRENT_SESSION, session);
|
||||
state.set(KEYS.IS_HISTORY_VIEW, true);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user