v0.17.2: 上下文一致性根治 + 消息差量持久化 + 压缩摘要修复 + 安全层测试补课
CI / verify (push) Successful in 1m53s

- P0: 发送路径用户消息重复注入根治(history-builder 纯模块 + 单测,连带修复 maxCount 截断保留最旧消息缺陷);/undo、/retry 消息删除差量落库(新增 db:getMessageIds/deleteMessages 四层通道);/compress 摘要 role:user + 可折叠卡片渲染 + 旧 system 行读取归一化
- P1: memory search 默认 limit=8;工具缓存键/去重改稳定序列化;run_command 超时联动主进程杀子进程;记忆访问统计写回纳入写入锁;搜索自动抓取单页限幅 8k;Token 趋势采样移出 calculateContextStats 并记录裁剪后值;空白 assistant 幽灵消息跳过入库(新迭代/中止两路径)
- P2: 新增 tool-security(18 用例,平台自适应)与 history-builder(11 用例)测试;帮助/README/DEVELOPMENT 文案与代码事实对齐;vendor 失效 sourcemap 与 .npmrc 弃用配置清理;备份导入携带 attachments 修复
- 版本号升级 0.17.2(5 文件白名单);typecheck 零错误 / 301 测试通过 / 构建通过
This commit is contained in:
2026-09-08 16:32:28 +08:00
parent b66945c8a7
commit 3fb293c618
26 changed files with 789 additions and 201 deletions
+11 -1
View File
@@ -10,7 +10,7 @@ import { mainWindow } from './main.js';
import { showNotification } from './utils.js';
import {
initDatabase, saveSession, getSession, getAllSessions, deleteSession, clearAllSessions,
saveMessage, saveMessagesBatch, getMessagesBySession,
saveMessage, saveMessagesBatch, getMessagesBySession, getMessageIds, deleteMessages,
saveSetting, getSetting, saveSettingsBatch,
saveTrace, saveTracesBatch, getTracesBySession,
exportAllSessions, importSessions,
@@ -359,6 +359,16 @@ export async function setupIPC(): Promise<void> {
catch { return []; }
});
// ── 消息差量同步(/undo、/retry、/compress 裁剪会话消息后删除落库)──
ipcMain.handle('db:getMessageIds', (_, sessionId: string) => {
try { return getMessageIds(String(sessionId || '')); }
catch { return []; }
});
ipcMain.handle('db:deleteMessages', (_, sessionId: string, ids: string[]) => {
try { return { success: true, deleted: deleteMessages(String(sessionId || ''), Array.isArray(ids) ? ids.map(String) : []) }; }
catch (err) { return { success: false, error: (err as Error).message }; }
});
// ── 会话摘要(单条 SQL,历史列表/搜索不再全量加载消息)──
ipcMain.handle('db:getSessionSummaries', () => {
try { return getSessionSummaries(); }