thzxx
|
16dd877860
|
fix: SearXNG 搜索引擎参数去掉默认值,留空使用实例默认引擎
|
2026-06-12 13:18:23 +08:00 |
|
thzxx
|
ff786f50c5
|
fix: SearXNG max_results 面板配了以面板为准,未配(0)用AI传入默认值
|
2026-06-12 13:05:31 +08:00 |
|
thzxx
|
9a547849eb
|
feat: SearXNG 添加 format 参数,支持 json/html 两种模式。html 模式提取网页纯文本交由 AI 自行分析
|
2026-06-12 12:55:14 +08:00 |
|
thzxx
|
f16d0238f7
|
fix: SearXNG API 地址改为必填,保存时校验格式
|
2026-06-12 12:48:05 +08:00 |
|
thzxx
|
7030e69234
|
feat: 集成 SearXNG 元搜索引擎,支持 JSON API 搜索替代四引擎 HTML 解析
- 新增 SearXNG 配置模态框,支持 API 地址、引擎列表、语言、安全搜索等参数
- 顶部添加独立 🔍 搜索按钮,带启用状态小绿点
- 启用后 web_search 走 SearXNG JSON API(70+ 引擎聚合)
- 禁用时回退原有 Bing+百度+搜狗+360 四引擎 HTML 解析方案
- 认证 Key 通过 HTTP Header Authorization: Bearer 传递,非必填
- 配置持久化到 SQLite settings 表
|
2026-06-12 12:44:41 +08:00 |
|
thzxx
|
933ce7a082
|
v0.11.1: Agent Loop稳定性增强 + 6个系统工具 + 搜索引擎替换
【Agent Loop 稳定性】
- P0-1: 工具消息硬限制40条,超出自动删旧
- P0-2: 截断周期从5轮缩短为3轮
- P1-1: 增量记忆提取改为fire-and-forget
- P1-2: TOOLS_WITH_DATA_DEPS精简为仅web_fetch
- P2: 重复检测改为注入警告而非强制终止
- Final Answer检测增强: >300字自动放行 + 收紧反过早停止
【新增工具】(40→44)
- datetime: 系统精确时间(中文日期+时段+人性化)
- calculator: 安全数学计算(递归下降解析器)
- random: 随机数/随机选择(int/float/pick/string)
- uuid: UUID v4生成(crypto.randomUUID)
- json_format: JSON格式化+验证+键排序
- hash: MD5/SHA1/SHA256/SHA384/SHA512
【搜索引擎替换】
- Google+DuckDuckGo → 搜狗+360搜索
- 四引擎变为: Bing+百度+搜狗+360搜索
【删除】
- 联网搜索代理全部代码(search-proxy/ + 7文件代理逻辑)
- https-proxy-agent依赖
【UI】
- 模型栏: 上下文总长(蓝色)+剩余上下文(绿色)实时显示
- 设置面板上下文长度移至模型栏
- SOUL.md/AGENT.md精简为纯抽象定义
【系统提示词】
- OS环境信息改为从preload同步获取真实值(os.homedir/os.arch/os.userInfo)
|
2026-06-11 22:07:46 +08:00 |
|
thzxx
|
3f11e7c3cd
|
feat: 设置面板添加代理配置 — web_search/web_fetch走HTTP代理(Clash等)
|
2026-06-10 15:38:56 +08:00 |
|
thzxx
|
e2bd511489
|
refactor: 删除append_file工具,功能合并入write_file(mode=append),工具数39→38
|
2026-06-10 14:42:25 +08:00 |
|
thzxx
|
632470a26d
|
docs: 更新README/帮助面板/工具面板 — 38→39个工具/browser_wait/v0.10.3/增强特性描述
|
2026-06-10 14:36:24 +08:00 |
|
thzxx
|
06fdb9c457
|
refactor: 删除工具面板开关,Tool Calling 代码写死永久开启
|
2026-06-10 14:26:57 +08:00 |
|
thzxx
|
499c68d96f
|
fix: 流式回调(onThinking/onContent)传入模型名,确保每条AI回复都显示模型标签
|
2026-06-10 13:30:25 +08:00 |
|
thzxx
|
23918b8223
|
chore: v0.10.3 — 选择支持think的模型自动启用思考模式, 修复AI回复不显示模型标签, 版本号升级
|
2026-06-10 13:14:58 +08:00 |
|
thzxx
|
3a6516ed76
|
fix: 超时设置三个输入框独立处理,改一个只打印一条日志
|
2026-06-10 10:03:04 +08:00 |
|
thzxx
|
99ef9a5078
|
chore: 超时设置日志改回debug级别
|
2026-06-10 09:55:32 +08:00 |
|
thzxx
|
0489952ceb
|
fix: 超时设置0值(禁用)无法保存的bug
- 保存值改用-1表示默认, 0表示禁用, 正数表示自定义秒数
- 修复parseSec区分空字符串和0值
- loadTimeoutSettings/main.ts初始化同步更新判断逻辑
- 补全types.d.ts中setTimeouts类型声明
|
2026-06-10 09:54:20 +08:00 |
|
thzxx
|
9559390d4d
|
fix: 超时设置日志从debug级别改为info级别,初始化时打印汇总日志
|
2026-06-10 09:51:07 +08:00 |
|
thzxx
|
6390457312
|
feat: v0.10.2 - 可配置超时设置 + 默认值提升
- HTTP超时: 15s→30s(可配5s~300s), MCP超时: 30s→60s(可配10s~300s), 流式超时: 180s→300s(可配0~600s)
- 设置面板新增超时配置区域(HTTP/流式/MCP),留空使用默认值
- 主进程HTTP_TIMEOUT/MCP_TIMEOUT改为可配置变量,通过IPC setTimeouts通道接收
- 帮助面板/README/release-notes更新四引擎搜索和超时描述
- 版本号同步更新至v0.10.2(16处)
|
2026-06-10 09:39:59 +08:00 |
|
thzxx
|
64264cc0f8
|
v0.10.1: 修复显存泄漏 + 删除普通聊天模式 + Tool Calling 始终开启
fix: ollama.ts - chat() 添加默认 keep_alive: '1h',chatStream done 时不再 reader.cancel()
refactor: 删除普通聊天模式,所有消息统一走 Agent Loop
refactor: Tool Calling 开关始终开启且不可关闭
chore: 版本号 0.10.0 → 0.10.1 (12 处)
docs: 更新帮助面板和 README 反映架构变更
|
2026-06-06 12:06:48 +08:00 |
|
thzxx
|
2217113014
|
feat: v0.9.1 — 图片压缩、文件token预算截断、并行上传、文档同步
- 图片上传: Canvas前端压缩(1280px等比缩放+JPEG), 300KB以下跳过
- 文件上传: Token预算感知截断(30% numCtx), 26种语言注释剥离
- 性能: handleImagePaths/handleTextFilePaths 并行化(Promise.all)
- sub-agent.ts: 修复3个TS编译错误(tool_name类型, success重复)
- 版本号: 全项目统一至0.9.1(10处)
- 文档: BUILD.md/DEVELOPMENT.md 同步实际架构, 移除过期分支引用
- README: 组件列表修正(log-panel.ts→prompt-modal.ts)
- 帮助面板: 更新图片/文件上传描述
|
2026-06-05 11:32:40 +08:00 |
|
thzxx
|
f4a92fc40f
|
设置面板新增子代理默认模型选择器
- 向量记忆引擎下方新增「子代理默认模型」下拉框
- 留空则跟随当前模型,选择后所有 spawn_task 默认使用该模型
- spawn_task 工具仍支持单次指定 model 参数覆盖默认值
|
2026-06-05 10:56:08 +08:00 |
|
thzxx
|
988efd1733
|
v0.9.0: SOUL.md/AGENT.md/USER.md 化为工作空间文件,去掉代码内硬编码提示词
- 版本号 v1.1.0 → v0.9.0
- AGENT_SYSTEM_PROMPT + TOOL_USAGE_GUIDE 提取为 AGENT.md(工作空间优先,内置 fallback)
- SOUL.md 同级改造(工作空间优先,内置 fallback)
- 删除 inferUserProfile 自动用户画像,改为 USER.md 手动编辑
- 三个 .md 内置版本放在 src/renderer/public/(Vite publicDir 自动复制)
|
2026-06-05 09:35:39 +08:00 |
|
thzxx
|
db6cb8d2cc
|
feat: v1.1.0 — 上下文引擎重构 + 技能系统升级 + SOUL.md 支持
- 版本号更新: 1.0.0 → 1.1.0,全量同步 package.json/lock/README/docs/UI
- 上下文长度自动检测: 切换模型时从 model_info 读取实际 context_length
- SOUL.md 支持: 每次发送自动扫描工作空间 SOUL.md,注入为首条 system 消息且不可压缩
- 系统提示词卡片: AI 回复顶部可折叠展示实际发送给模型的完整 system prompt
- Token 校准: 利用 Ollama 返回的实际计数动态修正估算器(EMA)
- 消息重要性评分: 纯规则打分,trim/summarize 按重要性而非时间顺序
- 结构化压缩: LLM 压缩输出 JSON 格式(topics/decisions/pendingTasks/constraints)
- 技能系统 v1.1: 语义匹配(embedding) + 参数自优化 + 未使用衰减 + 技能链合并
- 修复: 100+ TypeScript strict 模式编译错误清零
|
2026-06-04 21:47:18 +08:00 |
|
thzxx
|
fdbdc4007c
|
fix: 修复 Token 仪表盘 — 添加缺失的 renderGlobalChart + 修复概览卡片布局
- 添加 renderGlobalChart 函数(按会话渲染全局柱状图)
- 移除 td-stat-row 嵌套 div,卡片直接放入 tdOverview grid
- 修复全局统计持续报错 renderGlobalChart is not defined
- 修复 5 个统计卡片挤在 1/4 宽度的布局问题
|
2026-04-24 13:50:02 +08:00 |
|
Metona Dev
|
b24370cc15
|
fix: 重写 Token 消耗趋势图 — 网格线 + 正确高度计算 + 柱子底部对齐
|
2026-04-24 12:56:45 +08:00 |
|
Metona Dev
|
5fafaa691f
|
feat: Token 仪表盘支持全局统计,跨会话累计 Token 分析
|
2026-04-24 12:53:50 +08:00 |
|
Metona Dev
|
8e53a411d6
|
feat: /compress 上下文压缩 + Skill 渐进式加载
|
2026-04-24 12:35:49 +08:00 |
|
Metona Dev
|
f7fb47939d
|
refactor: 移除人格模式、后台检查、系统诊断、定时任务功能
|
2026-04-24 11:29:52 +08:00 |
|
thzxx
|
5cbb71cf50
|
fix: Token趋势图2秒刷新丢失滚动位置
|
2026-04-23 17:23:56 +08:00 |
|
thzxx
|
118af9dd9a
|
fix: Token趋势图柱子不显示 — 柱子容器高度塌缩修复
|
2026-04-23 17:22:41 +08:00 |
|
thzxx
|
aa9bfa01f7
|
fix: Token趋势图数值区分输入/输出颜色
|
2026-04-23 17:19:53 +08:00 |
|
thzxx
|
4070f85214
|
fix: 普通聊天流式模式未捕获 prompt_eval_count 导致趋势图无法区分输入/输出 token
|
2026-04-23 17:04:20 +08:00 |
|
thzxx
|
d3c38977bc
|
fix: AI消息时间戳显示、工具调用卡片恢复
1. 修复AI回复消息不显示时间戳的问题:updateLastAssistantMessage 新增 timestamp 参数
2. 恢复工具调用卡片显示(工具名称+参数,不显示执行结果):updateLastAssistantMessage 新增 toolCalls 参数
3. 根因:流式消息通过 updateLastAssistantMessage 更新 DOM,但该函数未渲染时间戳和工具卡片,
而 renderMessages 因 placeholder 已被计数而跳过 appendMessageDOM
|
2026-04-23 16:50:06 +08:00 |
|
thzxx
|
bbd408f326
|
fix: 工具卡片错误信息显示、清理死代码
1. 工具调用失败时显示错误原因(之前只有状态标签没有具体错误)
2. 删除 formatFileSize 死代码(仅在已移除的结果渲染中使用)
3. 清理 updateLastAssistantMessage 未使用的 stats 参数
|
2026-04-23 16:19:53 +08:00 |
|
thzxx
|
21b9a14824
|
fix: Token统计准确性修复 + 仪表盘增强
1. 修复eval_count只记最后一轮的bug:改为每轮累加
2. 新增prompt_eval_count(输入token)统计
3. 修复total_duration使用Ollama实际推理时间而非墙钟时间
4. 数据库messages表新增prompt_eval_count列(含兼容迁移)
5. 仪表盘显示输入/输出token分项统计
6. 柱状图堆叠显示输入(紫色)+输出(橙色)比例
7. 明细表格新增输入/输出/合计三列
|
2026-04-23 16:11:17 +08:00 |
|
thzxx
|
e96b2a840e
|
feat: 新增Token实时监控仪表盘
|
2026-04-23 16:00:13 +08:00 |
|
thzxx
|
684b2f773b
|
feat: 工具卡片精简、移除token统计、消息时间显示
1. 聊天消息工具卡片只显示工具名+调用内容,不显示执行结果(工作空间工具页签已有完整结果)
2. 移除所有token统计相关代码:顶栏统计、消息内token/耗时显示、历史记录中的token显示
3. 每条消息显示具体时间(年月日 时分秒),formatTime 已含秒数
|
2026-04-23 15:42:15 +08:00 |
|
thzxx
|
7ed75415a3
|
fix: 工具卡片状态更新后即时刷新消息渲染
updateMessageToolRecord 更新 state 后缺少 renderMessages() 调用,
导致消息中的工具卡片状态不会实时更新(始终显示 running)。
添加 renderMessages() 调用,确保工具执行完成后消息中的卡片
立即显示正确状态(✅/❌)。
|
2026-04-23 12:36:32 +08:00 |
|
thzxx
|
4caa230c47
|
fix: 会话消息中工具卡片始终显示✅0 ❌0且永远转圈执行中
根因:onNewIteration 保存工具记录时 status='running'、result=null,
工具执行完成后只更新了工作空间面板,未更新消息中的记录。
修复:
1. 新增 updateMessageToolRecord() 函数,从后往前查找消息中
running 状态的同名工具记录并更新为最终状态
2. onToolCallResult/onToolCallError 回调中同步更新消息记录
3. onDone 多迭代模式下,最终消息也包含 toolRecords
|
2026-04-23 11:52:53 +08:00 |
|
thzxx
|
72565b3220
|
fix: 彻底修复 TDZ 错误和用户消息不显示问题
1. agent-engine.ts: onNewIteration 改用 prevToolCalls 传递上一轮工具调用,
避免引用未声明的 toolCalls 导致 TDZ (Cannot access 'B' before initialization)
2. chat-area.ts: 新增 resetCurrentPlaceholder() 清理悬空 DOM 引用
3. input-area.ts: 错误处理器删除 placeholder 后清理 currentPlaceholder 引用,
防止后续 updateLastAssistantMessage 操作已脱离 DOM 的旧节点
|
2026-04-22 09:40:38 +08:00 |
|
thzxx
|
9915b71da1
|
fix: Agent Loop 多轮迭代消息保存和 token 统计
- 修复 onDone 多轮迭代时更新旧消息而非创建新消息,导致 post-tool 回复丢失
- 修复 pre-tool 消息的 toolCalls 未保存(onNewIteration 未传递 toolCalls)
- 修复最后两条 AI 消息无 token 显示(统计附着到被覆盖的消息上)
- onNewIteration 回调增加 toolCalls 参数,保存消息时附带工具调用记录
- handleRetry 同步修复
|
2026-04-21 14:08:07 +08:00 |
|
thzxx
|
dc3d6e4b69
|
fix: 修复第二条消息不显示和上传文件AI读取失败
Bug 1: renderMessages() 统计 .message 元素时把 loading placeholder 也计入,
导致第二条用户消息被跳过不渲染。改为 .message:not(.loading) 排除加载占位符。
Bug 2: Agent Loop system prompt 缺少文件内容感知规则,用户上传文件后让AI读取,
AI 调用 read_file 去工作空间找文件导致失败。在 TOOL_USAGE_GUIDE 新增规则 16,
明确告知模型上传文件内容已在对话消息中,无需调用 read_file 工具。
|
2026-04-21 11:29:33 +08:00 |
|
thzxx
|
e5acf646c8
|
fix: 修复多迭代 Agent Loop 的两个UI bug
Bug 1: 正在思考占位符作为独立消息残留
- 根因: renderMessages() 将 loading placeholder 计入 existingCount,
导致新保存的消息不被渲染,旧 placeholder 永远留在页面上
- 修复: onNewIteration 保存消息前先移除旧 placeholder
Bug 2: 只有最后一条AI消息显示 token 统计
- 根因: onNewIteration 保存中间消息时不附带 token/duration 统计,
只有 onDone 对最后一条才添加 loopStats(总累计值)
- 修复: 追踪每轮迭代的 eval_count 增量和耗时,
中间消息和最后消息均保存 per-iteration 统计,
确保 updateTotalTokens 求和不重复计数
|
2026-04-21 09:05:07 +08:00 |
|
thzxx
|
2496e04685
|
fix: 修复用户消息不显示和思考气泡残留
renderMessages() 中 existingCount 使用 children.length 计算,
包含了 currentPlaceholder(正在思考...)元素,导致:
1. 新用户消息被误判为已渲染而跳过
2. 旧 placeholder 残留 DOM 变成独立消息气泡
修复:existingCount 改用 querySelectorAll('.message') 只计算实际消息元素
|
2026-04-20 21:00:42 +08:00 |
|
thzxx
|
875d04d1e1
|
fix: Agent Loop 多轮迭代消息互相覆盖 — 每轮创建独立消息气泡
问题:Agent Loop 多轮迭代(thought→action→observation→循环)时,每轮
onContent 回调都通过 updateLastAssistantMessage 替换同一个 placeholder
的 innerHTML,导致前一轮的回复内容被后一轮覆盖,只有最后一轮保留。
修复:
- agent-engine.ts: AgentCallbacks 新增 onNewIteration 回调,每轮迭代
开始前通知 UI 层
- input-area.ts: sendMessageWithAgentLoop + handleRetry 添加
onNewIteration 处理——保存当前轮内容为独立消息、重置状态、创建新
placeholder。onDone 根据 agentModeIterations 判断是否需要重复保存
|
2026-04-20 20:07:47 +08:00 |
|
thzxx
|
8805858b79
|
refactor: 第三方库替换 & 代码精简 — v5.1.5
- Markdown 解析器:内联正则 → marked 库(完整 GFM 支持)
- HTML 净化器:内联 DOM 遍历 → DOMPurify(业界标准)
- crypto.ts:删除 sha256js/xorBytes 死代码回退路径
- 消除 5 个文件中 escapeHtml/formatSize 重复定义
- 版本号升级至 5.1.5
|
2026-04-19 20:48:56 +08:00 |
|
thzxx
|
322a0abdd2
|
fix: 首次打开应用时渲染终端空闲状态
|
2026-04-19 20:10:30 +08:00 |
|
thzxx
|
01c17a66fc
|
fix: 工作流完整性和协调性修复
修复 6 个问题:
1. 新一轮对话清理上轮工具卡片和终端输出(避免越积越多)
2. 中止 Agent Loop 时保留已执行的工具记录(不再丢失)
3. 切换历史会话时清理工作空间状态
4. handleRetry 保存 think 内容(之前丢失)
5. 中止流程统一:agent-engine 抛出 AbortError 由消费方处理(消除重复消息风险)
6. 导出 clearToolCardsExternal/clearTerminalExternal 供外部调用
|
2026-04-19 19:48:46 +08:00 |
|
thzxx
|
f5fd851224
|
fix: 历史会话工具调用展示 — 可折叠工具卡片
|
2026-04-19 19:44:12 +08:00 |
|
thzxx
|
aa33f8845e
|
fix: 工具页签自动切换协调性修复
|
2026-04-19 19:40:41 +08:00 |
|
thzxx
|
6b1d790436
|
feat: 工具和文件页签空闲状态优化 — 图标网格 + 目录信息
|
2026-04-19 19:38:10 +08:00 |
|