thzxx
|
0145f0cfe1
|
fix: memory replace/remove 归一化匹配+最低长度回退至5,修复引号差异导致删除失败
|
2026-07-10 21:47:41 +08:00 |
|
thzxx
|
e5224e4a8d
|
chore: bump version to 0.14.14
|
2026-07-10 21:34:15 +08:00 |
|
紫影233
|
91a30193a7
|
v0.14.13: Token Dashboard 上下文计算修复 + 校准比例修正 + 已有TS错误修复
|
2026-07-10 16:14:38 +08:00 |
|
紫影233
|
c824562f68
|
v0.14.12: SearXNG pageno pagination + max_results HTML mode UI
- SearXNG: pageno分页+URL去重+早退, 准确满足max_results
- SearXNG: HTML模式禁用单次结果数输入框+提示
- menu.ts: 关于对话框版本号同步
- 版本号0.14.12
|
2026-07-10 12:55:51 +08:00 |
|
thzxx
|
e3b44a0357
|
feat: 移除所有工具结果截断,确保内容完整传给AI
删除TOOL_MAX_RESULT_SIZE配置表和formatDefaultToolResult截断; read_file移除2000行/100KB截断; read_multiple_files移除10000字符截断; list_directory移除2000条目上限; search_files移除10条匹配和50结果限制; run_command移除512KB输出截断; browser_extract移除15000字符截断; session_read移除50条消息限制; session_list移除20条限制; memory search移除8条限制; web_search移除10条结果限制; SearXNG HTML移除内容截断; 版本号升级至0.14.11; 实现工具三档执行模式(auto/confirm/disabled)
|
2026-07-09 22:31:04 +08:00 |
|
紫影233
|
ea82c64f4b
|
修改内置SOUL.md、AGENT.md
|
2026-07-08 17:34:25 +08:00 |
|
紫影233
|
b947744f08
|
v0.14.10: Agent Loop 引擎优化 - 修复误杀+去重+稳定性增强
|
2026-07-08 13:03:45 +08:00 |
|
紫影233
|
d7d64c5579
|
fix: README图标引用改为存在的llama.png
|
2026-07-07 14:20:57 +08:00 |
|
紫影233
|
e9e64eb9c8
|
v0.14.9: fix prompt injection, context compression, auto memory, icon path
|
2026-07-07 14:05:17 +08:00 |
|
紫影233
|
7c78a65a9c
|
fix: 全面修复内置工具问题 + 架构缺陷修复 (v0.14.8)
P0: replace_in_files glob重写, search_files正则修复, list_directory递归分页修复, git stash/tag参数修复, buildSearchResponse query字段修复; P1: compress命令注入修复, run_command输出限制, download_file UA+重试; P2: web_fetch extract_mode/mobile_ua生效, read_multiple_files默认值对齐, CONFIRM_TOOLS扩展, 工具图标/名称映射补全; P3: random死代码清理, IPC类型补全; 架构: 系统提示词重复渲染修复, 版本号动态注入, 上下文余量字段修复, 工具记录丢失修复
|
2026-07-07 11:44:48 +08:00 |
|
thzxx
|
e67d638e06
|
chore: 版本号 0.14.6 → 0.14.7
fix: onNewIteration 只在 THINKING 状态调用,消除每状态切换的冗余触发
fix: renderMessages 全量清空重建,去掉增量 diff 的边界 bug
fix: 空消息跳过增加 think 判断,纯思考卡片不再被吞掉
fix: updateMessageToolRecord 改为空函数,工具卡片统一由 onDone 挂载
|
2026-06-28 23:16:05 +08:00 |
|
thzxx
|
20701433dd
|
chore: 版本号 0.14.5 → 0.14.6
fix: onNewIteration 空数组真值导致重复消息卡片([] truthy in JS)
|
2026-06-28 21:08:50 +08:00 |
|
thzxx
|
2f37111074
|
chore: 版本号 0.14.4 → 0.14.5
refactor: Hook 系统精简 — 7个→2个(SecurityCheck + FileWriteDedup)
delete: verification.ts 删除(DiffAnalyzer/FileChangeAudit 仅打日志无实际作用)
remove: ResultValidation/IterationMetrics/PlanAutoTrack Hook
merge: write_file 路径记录内联到 agent-engine
|
2026-06-28 20:49:34 +08:00 |
|
thzxx
|
adff2f36eb
|
chore: 版本号 0.14.3 → 0.14.4
refactor: Plan Mode 进度仅变化时注入(避免每轮冗余)
refactor: Plan Mode 执行规则精简 20行→3行
refactor: 断点续传提示词合并
refactor: PlanAutoTrack Hook 去除模糊匹配,仅 AI 手动 plan_track 精确标记
refactor: buildHistoryMessages 取 user+assistant,不取 system
refactor: 附件传递改为 JSON 结构化(文件/视频 Base64,图片仅 images[])
refactor: 用户文字始终排在附件 JSON 之后
fix: onDone 双重渲染导致 AI 消息卡片重复(正常路径+重试路径)
|
2026-06-28 20:42:50 +08:00 |
|
thzxx
|
3ddd493847
|
chore: 版本号 0.14.2 → 0.14.3
fix: AI 回复消息卡片重复渲染 — onDone 去掉 updateLastAssistantMessage 避免双重 DOM
fix: 用户消息卡片只显示用户文字,代码生成的附件标记不显示
fix: onDone assistantMsg 补充 model 字段
|
2026-06-28 19:52:53 +08:00 |
|
thzxx
|
4c0405dc95
|
chore: 版本号 0.14.1 → 0.14.2
refactor: 移除抗幻觉全部功能(幻觉检测/反幻觉提示词/Completion Gate阻断)
perf: 精简提示词(去掉进度锚点/项目索引,简化任务感知/预算警告措辞)
fix: 模型能力徽章启动时不显示(await filterEmbedModels)
fix: 剩余上下文改用 estimateTokens 估算(Ollama KV Cache 导致虚高)
fix: 去掉流式空闲30s超时(大模型本地推理响应慢)
fix: 能力介绍类回复不再触发幻觉误判(已随抗幻觉移除一并解决)
|
2026-06-28 13:54:11 +08:00 |
|
thzxx
|
b5a8a793e2
|
chore: 版本号 0.14.0 → 0.14.1
fix: 去掉流式空闲30s超时(大模型本地推理响应慢易误中止)
fix: await filterEmbedModels 确保启动时模型能力徽章正常显示
fix: 剩余上下文改用 estimateTokens 估算而非 Ollama eval_count(KV Cache 导致虚高)
|
2026-06-28 13:25:59 +08:00 |
|
thzxx
|
2a9d8606ba
|
feat: v0.14.0 生产级引擎+渲染全面优化
Engine 核心优化 (P0-P3):
- 智能工具重试: 永久错误(ENOENT/EACCES)立即返回, 瞬态错误指数退避
- 路径依赖检测: write→read/create→write 自动串行化, 避免并行竞态
- AbortController 集中生命周期管理, 防泄漏+竞态
- 上下文压缩: 200条硬上限 + 120条增量压缩, 防止 Ollama OOM
- 流式分级超时: 空闲30s + 总300s, 区分思考/卡死
- 工具缓存: default TTL 60s, 各工具独立TTL, 不再永久缓存
- 结果截断: 2000字智能截断, 优先JSON/换行边界保护
- Plan Mode 断点续传: 中止后自动恢复未完成计划
- 幻觉检测: 中英双语规则, agent-engine+completion-gate 统一共享
- Trace 缓冲批量写入 + 3次重试
- Agent Metrics JSON/Prometheus 双格式导出
渲染优化 (P0-P2):
- 流式纯文本追加, 流结束才 Markdown, 消除 O(n²) 性能瓶颈
- 终端增量 DOM appendChild, 替代全量 innerHTML 重建
- 消息 diff: Set<number> 索引替代 DOM querySelectorAll 计数
- ANSI 解析: 正则批量替换替代逐字遍历
- 终端截断保留系统消息行
Qwen3 兼容:
- system 消息始终唯一且位于首位
- SOUL.md 合并到统一 system prompt
- 中途注入 system→user, 避免触发热模板 400
上下文长度控制:
- 设置面板下拉(128K/256K/512K/1M), 默认128K
- 模型栏显示配置值, 下拉框显示模型自身ctx
- 全局硬编码 24576→131072
版本号 v0.13.8 → v0.14.0
README.md + 帮助面板全面更新
|
2026-06-28 12:54:56 +08:00 |
|
thzxx
|
e62f4fbcad
|
chore: 版本号 0.13.7 → 0.13.8
|
2026-06-24 22:56:13 +08:00 |
|
thzxx
|
28105692ac
|
refactor: 硬提示通用化 — memory/session_read/session_list/spawn_task全部覆盖
|
2026-06-24 22:54:58 +08:00 |
|
thzxx
|
fe15b8d71c
|
fix: memory工具结果后注入硬提示 — 防止模型无视实际数据、把系统提示词当记忆编造
|
2026-06-24 22:52:56 +08:00 |
|
thzxx
|
3d2a5c4e76
|
chore: 版本号 0.13.6 → 0.13.7
|
2026-06-24 22:40:17 +08:00 |
|
thzxx
|
77b56ed8af
|
fix: memory read_all/search结果用可读文本格式 — 防止模型对JSON'看漏'
|
2026-06-24 22:31:36 +08:00 |
|
thzxx
|
7b1505343d
|
fix: dedup拦截后工具卡片卡在准备中 — 补调onToolCallError清理卡片状态
|
2026-06-24 22:27:48 +08:00 |
|
thzxx
|
76062036bb
|
chore: 版本号 0.13.5 → 0.13.6
|
2026-06-24 22:21:34 +08:00 |
|
thzxx
|
90f7572d77
|
fix: memory工具结果丢失 — formatToolResultForModel丢弃read_all的entries; 历史消息剔除用户消息
|
2026-06-24 22:16:53 +08:00 |
|
thzxx
|
e41e4d9f80
|
chore: 版本号 0.13.4 → 0.13.5,全面更新README和帮助面板
|
2026-06-24 22:05:00 +08:00 |
|
thzxx
|
95c23bd19f
|
refactor: 移除内置USER.md — 仅从工作空间读取,不存在则不注入
|
2026-06-24 22:01:59 +08:00 |
|
thzxx
|
2348bea5c3
|
chore: 版本号 0.13.3 → 0.13.4
|
2026-06-24 21:57:21 +08:00 |
|
thzxx
|
811ae717bb
|
fix: 移除过早的"全部完成"确认信号 — 关键词匹配无法判断任务真实完成度
|
2026-06-24 21:49:16 +08:00 |
|
thzxx
|
9652533b35
|
chore: 版本号 0.13.2 → 0.13.3
|
2026-06-24 21:33:01 +08:00 |
|
thzxx
|
d2bbd2cd0f
|
fix: 工作空间目录写操作被拦截 — allowedDirs遗漏blocklistExemptions检查
|
2026-06-24 21:29:48 +08:00 |
|
thzxx
|
47bfc5e629
|
fix: 跨Agent Loop工具上下文断裂修复 — 历史消息注入tool_calls+tool结果+Plan进度
|
2026-06-24 21:22:12 +08:00 |
|
紫影233
|
a049db066e
|
fix: 重复调用检测强化 — 工具结果含去重文字立即触发 + 阈值 3→2
之前: 仅检查同工具连续成功 ≥3 次,且只数 success 次数
现在:
1. 工具结果文本含「⚠️ 重复添加」「已跳过」「duplicate」→ 立即触发
2. 同工具连续成功 ≥2 次 → 也触发
3. 注入 ⛔ system 消息 + 缩减剩余轮次到当前+1
|
2026-06-24 16:20:01 +08:00 |
|
紫影233
|
5cbeecf6f2
|
fix: 去重移除 type 限制 — 内容相同就是重复,不管类型
问题: AI 第一轮传 type=rule,第三轮漏传 type 默认 fact,相同内容因类型
不同而被放行,导致 MEMORY.md 出现两条一模一样的内容。
修复: 去重不再检查 e.type,纯内容比对。跨类型的相同内容视为重复。
|
2026-06-24 16:17:24 +08:00 |
|
紫影233
|
7f8f1bf9ef
|
tune: 去重阈值收紧 — similarity 0.8→0.65 (新增) / 0.75→0.6 (提取)
原则:宁愿少记,不要重复多记。降低相似度阈值让更多近似内容被判为重复。
|
2026-06-24 15:58:21 +08:00 |
|
紫影233
|
5a6a689382
|
fix: 去重文本规范化 — 全角标点→半角后比较,消除 AI 输出的标点差异
问题: AI 多次调用 memory add 创建了 5 条语义相同的 Gitee 信息
根因: 全角标点(:,)与半角(:,)被去重逻辑视为不同文本
修复:
- 新增 normalizeForDedup(): 全角→半角标点、统一空白、小写
- addEntry 去重: 规范化后前缀匹配(30字) + 短文本子串包含 + 词相似度
- extractAndSaveMemories 去重: 同步使用相同的规范化逻辑
|
2026-06-24 15:53:33 +08:00 |
|
紫影233
|
3564087fb4
|
chore: 版本号 0.13.0 → 0.13.1
|
2026-06-24 15:49:46 +08:00 |
|
紫影233
|
5cba009745
|
refactor: 通用「同工具重复成功」检测取代硬编码 memory 去重
删除针对 memory 工具的去重检测补丁,改为通用的 Agent Loop 机制:
任何工具连续 ≥3 次调用且全部成功 → 注入 system 级别终止信号 + 缩减剩余轮次
此机制对 memory/web_search/write_file/read_file 等所有工具均生效,
不再需要为每个工具单独写补丁。
|
2026-06-24 15:48:17 +08:00 |
|
紫影233
|
04a0659813
|
fix: 记忆去重后强制终止循环 — 系统消息 + 缩减轮次 + 工具结果强调
问题: AI 看到 memory add 返回 duplicate 后仍继续循环调用
根因: 去重消息藏在 tool result JSON 里,AI 不读或不理解
修复 (三层防御):
1. handleObserving: 检测到 tool result 含 duplicate → 注入 system 级别终止消息
+ 缩减剩余轮次到当前+2,强制即将结束
2. formatToolResultForModel: memory 去重时返回纯文本警告而非 JSON
'⚠️ 重复添加...不要再调用 memory 工具,直接输出最终回答'
3. addEntry: 检测到重复 → 抛 DuplicateEntryError(之前已修)
|
2026-06-24 15:46:43 +08:00 |
|
紫影233
|
5f9acebad1
|
fix: 记忆去重时明确告知 AI「已存在,不要再重复添加」
之前 addEntry 检测到重复后静默返回已有条目(success),AI 误以为又成功保存了
新条目,于是继续循环调用。现在改为抛出 DuplicateEntryError,tool handler
捕获后返回 {success:true, duplicate:true, message:'已跳过...不要再重复添加'},
明确告诉 AI 任务已完成。
也处理了内存面板的手动添加场景,友好提示用户。
|
2026-06-24 15:31:58 +08:00 |
|
紫影233
|
e39820d19e
|
fix: memory add 不传 type 时默认 fact — 代码兜底替代 schema 约束
Gemma 4 等模型的 function calling 对复杂 schema 不稳定,即使 type 在 required
数组中也会偶发遗漏。改为代码层面兜底:type 缺失时默认 'fact',确保 add 操作
始终成功。同时将 type 从 required 中移除,减少 schema 复杂度。
|
2026-06-24 15:28:55 +08:00 |
|
紫影233
|
d3a28822b3
|
fix: memory 工具 required 数组添加 type — 解决模型持续不传 type 参数问题
Ollama function calling 依赖 JSON Schema 的 required 数组判断参数必要性,
type 不在 required 中导致模型认为它是可选的,即使 error 提示了也不传。
将其加入 required 数组后,模型将被强制要求每次调用都提供 type 参数。
|
2026-06-24 15:10:58 +08:00 |
|
紫影233
|
e119ffbcf6
|
fix: memory 工具 description 增强 — 每种 action 给出完整 JSON 示例 + 参数标注 REQUIRED
- description 中为 search/add/replace/remove/read_all 提供完整 JSON 格式示例
- 参数 description 加 [action REQUIRED] 前缀标注依赖性
- 错误提示改为含示例 JSON 的完整格式,帮助模型快速修正
|
2026-06-24 14:55:46 +08:00 |
|
紫影233
|
0903d740da
|
v0.13.0: 记忆系统重构 — MEMORY.md 文件化 + 路径保护 + 自动提取优化
核心变更:
- 删除 SQLite memories 表 + FTS5 + IVF 向量存储引擎 (~1300行)
- 4 个记忆工具合并为 1 个 memory 工具 (5 action)
- 记忆存储改为工作空间 MEMORY.md 单文件,严格格式校验
- 路径保护: checkPathAllowed 拦截所有工具,仅 memory 专用 IPC 通道可访问
- 应用启动/工作空间切换时自动校验并初始化 MEMORY.md(格式错误自动备份重建)
- 自动记忆提取重建: 对话结束时触发,多层质量过滤(内容/泛化/去重/安全/importance门槛)
- 工具总数: 42→40,UI 全面更新(帮助面板、工具面板、设置面板、README)
- 版本号更新: 0.12.11 → 0.13.0
|
2026-06-24 14:49:09 +08:00 |
|
紫影233
|
dcaf5982fc
|
fix: Plan Mode确认弹窗按钮左偏,补回flex占位符
|
2026-06-24 12:29:14 +08:00 |
|
紫影233
|
c7aa5df81c
|
v0.12.11: Plan Mode 格式标准化 + 图片附件感知 + 弹窗UI优化
feat: Plan Mode 强制输出格式模板(任务分析/执行计划/预期结果)
feat: 支持无需工具步骤,纯分析推理任务不再强制工具调用
feat: 反幻觉铁律新增3条(已上传附件不查找、read_file不能看图、Plan不规划查找步骤)
fix: 上传图片后消息文本明确提示AI图片已随消息提供
fix: Plan Mode确认弹窗UI优化(步骤卡片样式/宽度/滚动)
style: extractPlanSteps 双策略解析,兼容多种模型输出格式
|
2026-06-24 11:40:18 +08:00 |
|
紫影233
|
d7275b08e8
|
v0.12.10: 修复工作空间目录设置不生效 + 版本号更新
fix: 工作空间目录设置三处断链修复
- ipc.ts: setDir 时持久化到 SQLite,启动时自动恢复
- settings-modal.ts: 设置成功后通知 workspace-panel 刷新
- workspace-panel.ts: 监听目录变更事件,立即重载文件列表
chore: 版本号 0.12.9 → 0.12.10
|
2026-06-24 10:58:49 +08:00 |
|
thzxx
|
2d3ea85255
|
v0.12.9: Completion Gate 架构修复 + 工作空间文件夹选择 + 搜索/Plan 全链路加固
Fix:
- Completion Gate read_file 误报消除 — 缩窄匹配为仅明确工具声明 + 写后读豁免
- Gate 阻断重试消息重写 — 待办中与 Gate 拦截匹配时明确要求调工具而非模糊修正
- FileWriteDedupHook (pre_tool) + PlanAutoTrackHook (post_tool) — Harness 插件化
- 工作空间浏览按钮修复 — openFile→openDirectory,原生文件夹选择对话框
- pre_tool Hook 执行结果可阻断 — HookResult.passed=false 时拦截工具执行
- Plan 步骤上限 6 + 动词过滤 + 阶段标题过滤 — 适配不同模型格式
- Plan Mode 任务描述固化到系统提示词 — 压缩后不丢失任务目标
- 全部完成信号去重 — system 消息不重复注入
- handleReflecting 空响应 pop() 精确定位最后 assistant 消息
Refactor:
- agent-engine.ts 移除全部硬编码模块变量和函数 — 迁移到 Hook 系统
- extractPlanSteps 增加 ACTION_VERBS 动词过滤
- Plan rejection 不再重置 loopCount
|
2026-06-23 22:46:00 +08:00 |
|
thzxx
|
44cb5037ec
|
v0.12.5: Plan 自动追踪 + 待办完成确认 + 搜索/上下文质量加固
Fix:
- Plan Mode 自动追踪 — 工具执行成功后自动匹配步骤标记完成,不再依赖模型调用 plan_track
- 待办全部完成时注入正面确认信号,防止模型遗忘已完成的写入操作
- plan_track 提示词简化 — 移除冗余催促文本,进度自动更新
- 搜索自动抓取硬上限 MAX_AUTO_FETCH=8 + 相关性过滤
- 工作空间路径安全豁免 — 修复 AppData 黑名单自相矛盾
- 浏览器回退 LRU 缓存 — 同 URL 10min 内不重复渲染
- Plan Mode 任务描述固化到系统提示词 — 压缩后不丢失
- ephemeral 清理高负载时跳过 — Plan 进度在压缩时仍可见
- SearXNG 抓取条数输入框 min=1 max=8
|
2026-06-23 21:15:17 +08:00 |
|