- 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:
@@ -1015,6 +1015,10 @@ function calculateTotalTokens(messages: OllamaMessage[]): number {
|
||||
|
||||
/**
|
||||
* 统一上下文统计 — 单次计算替代多次遍历
|
||||
*
|
||||
* 注意:本函数是纯计算(无副作用)。Token 趋势采样(recordTokenUsage)
|
||||
* 由调用方在合适的频率执行——本函数在 OBSERVING 中一轮内会被调用多次,
|
||||
* 若在此处采样会导致同一轮被记录多个数据点,趋势预测失真。
|
||||
*/
|
||||
export function calculateContextStats(
|
||||
messages: OllamaMessage[],
|
||||
@@ -1031,9 +1035,6 @@ export function calculateContextStats(
|
||||
const usageRatio = numCtx > 0 ? totalTokens / numCtx : 0;
|
||||
const msgCount = messages.length;
|
||||
|
||||
// 记录当前迭代的 token 使用量(必须在 predictContextOverflow 之前调用)
|
||||
recordTokenUsage(contentTokens, numCtx);
|
||||
|
||||
// 压力等级计算(内联,避免重复遍历)
|
||||
let level: ContextPressureLevel;
|
||||
const actions: string[] = [];
|
||||
|
||||
Reference in New Issue
Block a user