Commit Graph
190 Commits
Author SHA1 Message Date
thzxx ec0722170e fix: apiContentForModel 累积所有内容——文字+文件+视频帧+图片,不再只发视频 2026-06-18 13:59:08 +08:00
thzxx 5e043e5fbb fix: 每个视频独立指示牌,不合并——_videos 数组逐个渲染 2026-06-18 13:30:36 +08:00
thzxx 0b2d8414a6 fix: 视频指示牌显示文件名,多视频显示'2个视频' 2026-06-18 13:29:06 +08:00
thzxx 0aa33d590c fix: _videoFrames 改用 allVids 总帧数,修复多个视频时指示牌不显示 2026-06-18 13:23:10 +08:00
thzxx 96bf48aaf5 fix: 视频提取完成后立即清除 pending 状态,避免预览重复显示 2026-06-18 13:16:40 +08:00
thzxx bec111444e fix: 视频预览区同时渲染 pending 和 completedVideos,不再互相覆盖 2026-06-18 13:09:15 +08:00
thzxx c7e1ba0ac5 fix: 恢复视频多选循环 2026-06-18 13:02:33 +08:00
thzxx 18d0a39aa8 feat: completedVideos 数组支持多视频,轮询提取后累积发送
- 每个视频提取完成后 push 到 completedVideos
- 发送时 pending + completed 帧合并为一个 images 数组
- 聊天卡片和 API 内容均遍历全部视频
2026-06-18 13:02:14 +08:00
thzxx fed1e6d1c2 refactor: 视频/图片/文件组合发送,各走各的渲染通道
- ChatMessage 新增 _videoFrames/_videoMeta 独立字段
- msg.images 只放图片,视频帧走 _videoFrames
- 聊天卡片:图片缩略图 + 视频指示牌 + 文件 chips 可同时显示
- Ollama API 仍合并全部帧到 images 数组
2026-06-18 12:45:06 +08:00
thzxx 5251319efb fix: startsWith → includes,修复用户输入文字后视频内容检测失效 2026-06-18 12:41:56 +08:00
thzxx b0eb2a29c3 fix: 视频消息卡片不显示30张缩略图和完整帧列表
- 视频帧序列 → 显示视频指示牌而非逐帧缩略图
- 内容折叠:只显示标题行,隐藏帧时间线
2026-06-18 12:35:11 +08:00
thzxx 1246e5c86f fix: 聊天区系统消息也原地更新进度,不复用 appendSystemMessage 刷屏
通过 sysmsg-video-progress class 标记,进度回调中 querySelector 原地更新 textContent
2026-06-18 11:56:38 +08:00
thzxx a25ce068f9 fix: 恢复聊天区系统消息提示(开始/完成/失败) 2026-06-18 11:55:36 +08:00
thzxx ab1fb88dc4 fix: 日志三段式——开始+进度(原地更新)+完成,各一条
- logInfo 开始 → resetVideoProgress 进度 → updateVideoProgress 更新 → logSuccess 完成
- 进度条目保留最后帧数不动,完成后新加 success 条目
2026-06-18 11:50:11 +08:00
thzxx 37189dafa8 refactor: 视频提取日志原地更新,复用 logStreamProgress 模式
- 新增 resetVideoProgress/updateVideoProgress/finishVideoProgress
- 日志面板中视频提取只占一条,实时更新帧数和状态
- 主进程只通过 video:progress IPC 推送原始帧数,不写日志
2026-06-18 11:48:35 +08:00
thzxx abd3dfde72 refactor: 视频提取进度实时更新卡片,不再刷日志面板
- 主进程通过 video:progress IPC 推送当前帧数
- 前端监听进度事件,直接更新视频芯片的 meta 文本
- 日志面板只保留开始和完成两条记录
2026-06-18 11:45:31 +08:00
thzxx 389e42874a refactor: 视频帧独立预览区,只显示视频卡片不逐帧展示
- 新增 #videoPreview 独立区域,金色 video-chip 卡片
- 视频帧存入 pendingVideoFrames,与 pendingImages 完全分离
- 发送时自动合并为 images 数组
2026-06-18 11:33:32 +08:00
thzxx 5ed9a1f9f6 feat: 视频上传支持 (v0.11.7)
- 新增视频上传按钮,支持 mp4/avi/mov/mkv/webm (≤10MB)
- ffmpeg 1fps 提取帧序列,自动缩放至512px,带时序标注
- 消息中注入帧序列时间线,多模态模型原生理解视频时序
- 视频按钮与 vision 模型能力自动联动
- 版本号 0.11.6 → 0.11.7,同步更新 README/帮助面板/菜单
2026-06-18 10:58:55 +08:00
thzxx a74fca741d fix: 修复 Think 模式开关无效 — toggleThink 缺少 change 事件导致 state 未同步
- model-bar.ts: 新增 toggleThink change 事件监听,同步 state.thinkEnabled
- setThinkAvailable(true) 保留自动开启行为(模型支持时强制开启)
- 版本号 0.11.5 → 0.11.6,同步7个文件13处
2026-06-17 12:34:23 +08:00
thzxx a336a66516 v0.11.5: 搜索抓取增强 + 流式进度修复 + 超时/写入容错
feat: 搜索面板新增认证类型 Bearer/Basic,自动抓取条数/类型(顺序/随机)
feat: 随机抓取失败自动从未抓取池补1条,上限移除
fix: write_file 缺 path 时返回引导性报错(含工作空间路径+平台示例)
fix: Ollama tool_calls arguments JSON字符串解析
fix: 流式进度日志不再删除,改为完整时间线记录
fix: 进度日志同步appendChild确保排在工具日志之前
fix: 超时设置面板/主进程 remove max上限
chore: 版本号 0.11.4 → 0.11.5
2026-06-13 21:35:22 +08:00
thzxx ad5b67ea3e fix: 工具页签滚动彻底重写
- 统一 scrollToolsToBottom:scrollTop=scrollHeight + 双重rAF
- appendToolCardDOM/updateToolCardDOM/renderToolCalls 全部调用
- 废弃 scrollIntoView(overflow-y:auto 容器中不稳定)
- 卡片更新后也跟随滚动(结果内容可能导致高度变化)
2026-06-13 09:24:21 +08:00
thzxx 5bad82336d fix: initWorkspacePanel 强制重置默认工具页签
Electron窗口关闭再打开时渲染进程不销毁,模块级activeTab
保留用户上次切换的值。initWorkspacePanel启动时强制重置。
2026-06-13 08:17:01 +08:00
thzxx 52026dbdd6 fix: 流式日志原地更新 + 滚动用scrollIntoView
- 新增 logStreamProgress:同一ID日志更新不追加
- 定时器15s间隔,无新内容用累积闲置时长
- appendToolCardDOM 用 scrollIntoView + rAF
- renderToolCalls 用双重 rAF 等布局稳定
2026-06-13 08:15:06 +08:00
thzxx 87d3364886 fix: 定时器15秒间隔 + 滚动rAF + 闲置追踪
- 流式进度定时器改为15秒间隔
- lastContentTime 追踪真正的无新内容时长
- appendToolCardDOM/renderToolCalls 用 rAF 确保布局后滚动
2026-06-13 07:42:40 +08:00
thzxx 45777a5945 feat: v0.11.3 - 工具卡片三态转换 + 流式进度监控 + 默认工具页签
- 工具卡片完整生命周期: 准备中 -> 执行中 -> 完成
- onToolCallPrepare 流式阶段提前显示工具意图
- 工作空间监控定时器: AI处理中提示
- 日志面板流式进度: 每5秒输出, 15秒无新内容警告
- 提示栏按状态分组显示所有工具
- write_file 写入前增加开始日志
- 工具页签新卡片始终自动滚动到底部
- 默认页签切换为工具页签
2026-06-12 22:28:16 +08:00
thzxx cf52568947 fix: 在appendAssistantPlaceholder前再次enableAutoScroll,防止renderMessages的DOM事件重置滚动状态 2026-06-12 15:07:35 +08:00
thzxx 8b50ae323f fix: 发送消息时强制resetAutoScroll,解决手动上滑后新消息不自动滚动的问题 2026-06-12 14:57:08 +08:00
thzxx b5c7cf93f7 fix: 启动时根据已保存配置更新SearXNG按钮小绿点状态 2026-06-12 14:05:34 +08:00
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