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 |
|
thzxx
|
d3c3bacb8d
|
v0.12.4: 安全豁免 + 搜索质量 + 上下文管控 + 版本纪律 Cleanup
Fix:
- 工作空间路径安全豁免 — AppData 拦截自相矛盾,tree/list_directory 恢复正常
- 搜索自动抓取硬上限 MAX_AUTO_FETCH=8,防止上下文爆炸 132%
- 搜索结果相关性过滤 — 跳过 Canva/ChatGPT 等无关条目
- 浏览器回退 LRU 缓存 — 同 URL 10min 内不再重复渲染
- Plan Mode 任务描述固化到系统提示词 — 压缩后不丢失目标
- ephemeral 清理时机优化 — 高负载时跳过,避免 Plan 进度丢失
Refactor:
- 全项目 v0.12.0 → v0.12.4 版本号同步(7 文件)
- 版本号纪律:仅 5 白名单文件保留版本号,其余 14 源码全部清除
- docs/DEVELOPMENT.md 据实重写(目录/架构/规范/SearXNG/Harness)
- SearXNG 抓取条数输入框改为 min=1 max=8 数字框
- 代码注释中的版本标记全部移除,仅描述功能
|
2026-06-23 20:45:53 +08:00 |
|
thzxx
|
8feffd53cd
|
chore: remove build-release.sh, docs/BUILD.md, release-notes.md, restore-build-cache.sh
|
2026-06-23 20:12:46 +08:00 |
|
紫影233
|
042e00e4a6
|
v0.12.3: 全面审计修复 + 稳定性加固 + 文档更新
P0 安全/稳定性修复 (6项):
- sqlite persist 改用临时文件+rename,I/O错误日志
- IPC fs 处理器加入 checkPathAllowed 路径验证
- handleCompress 命令注入修复 + 跨平台 (powershell/tar/zip/unzip)
- browser 全页截图简化,使用 capturePage full rect
- workspace 竞态条件修复
- editFile 5MB 大小限制
P1 安全/稳定性修复 (7项):
- 大小写不敏感搜索: query 同步转换小写
- web_fetch 无 content-length 时流式读取+10MB限制防OOM
- Windows SIGTERM 改用 taskkill /PID /T /F 强制终止
- startsWith 路径检查 Windows 大小写不敏感
- 安全黑名单扩展: 33个目录路径 + 30条危险命令 (Linux+Windows)
- plan_track stepIndex 改用 typeof === 'number' 精确检查
- MCP 前缀改用双下划线分隔 mcp_{server}__{tool} 防歧义
P2 代码质量修复 (8项):
- 修复 EXECUTING→THINKING 死循环Bug (转换表缺失)
- COMPRESSING 硬上限绕过时同步 _loopState 全局状态
- Abort 路径补齐 onDone 回调, 防止UI状态残留
- 幻觉检测从4条扩展到16条规则, 覆盖全部工具类别
- 移除 getTokenEfficiency 死代码
- 跨平台路径清理 (replace(/[\/]+$/, ''))
- 动态 import 加 try/catch, 失败自动批准不阻断
- #modelSelect 加 null 守卫, 防止运行时崩溃
文档 & UI 更新:
- README.md: 版本号/特性表/架构图/安全机制/工具清单全面刷新
- 帮助面板: 新增 Plan Mode、抗幻觉&稳定性章节, Agent Loop补8状态机
- 工具面板: plan_track卡片 + plan-mode徽章样式, 标题更新为42+1
- 工作空间面板宽度: 480px → 400px
- 源码注释移除所有版本标签, 仅保留4处必要位置
- 版本号 0.12.2 → 0.12.3
|
2026-06-23 17:06:43 +08:00 |
|
thzxx
|
20cbfbd169
|
v0.11.11: 彻底移除技能系统,工具 44→42,SQLite 7→6 张表
- 删除 src/renderer/services/skill-manager.ts (480行)
- sqlite.ts: 删除 skills 表/索引/迁移/SkillRow接口/CRUD
- ipc.ts: 删除 6 个 skills IPC handler
- preload.ts/types.d.ts: 删除 skills bridge 方法/类型
- agent-engine.ts: 删除技能匹配上下文注入/自动提取
- tool-registry.ts: 删除 skill_list/skill_view 工具定义/执行
- log-service.ts/sub-agent.ts/workspace-panel.ts: 清理引用
- index.html: 帮助面板/工具卡片更新,44→42
- README/release-notes/DEVELOPMENT/AGENT: 文档全量同步
|
2026-06-22 18:13:01 +08:00 |
|
thzxx
|
6099c2ad21
|
fix: /retry 丢失视频帧和文件附件,重试时完整恢复
|
2026-06-20 14:58:10 +08:00 |
|
thzxx
|
072fb10df0
|
fix: 子代理指定模型时使用该模型实际上下文长度,跟随主AI时用主AI设置
|
2026-06-20 14:42:31 +08:00 |
|
thzxx
|
f1533b07b0
|
fix: 子代理工具结果不再截断,num_ctx跟随主AI设置
|
2026-06-20 14:24:42 +08:00 |
|
thzxx
|
730518a38a
|
fix: 子代理搜索结果太少导致输出摘要化,放宽截断并提升上下文
- web_search: 3条→8条,web_fetch/read_file: 3000→5000字符
- num_ctx: 8192→16384,容纳更大结果
|
2026-06-20 14:19:20 +08:00 |
|
thzxx
|
841e846c61
|
fix: 子代理参数绑定 ?. → ! 防止静默失败
|
2026-06-20 13:35:50 +08:00 |
|
thzxx
|
fd878c5396
|
fix: 子代理超时设为0时立即触发,改为Infinity正确禁用
|
2026-06-20 13:32:14 +08:00 |
|
thzxx
|
950450bc65
|
chore: 版本号 0.11.9 → 0.11.10
|
2026-06-20 13:30:14 +08:00 |
|
thzxx
|
4df4a40296
|
fix: spawn_task 模型只能从设置面板指定,禁止 AI 自选模型
|
2026-06-20 13:29:30 +08:00 |
|
thzxx
|
e79409a8a1
|
style: 子代理最大轮次和超时合并到同一排
|
2026-06-20 13:11:17 +08:00 |
|
thzxx
|
e84f62c482
|
v0.11.9: 修复纯文本消息卡片丢失 + 子代理参数可配置
fix: 恢复纯文本消息的 else if 分支,修复 fed1e6d 重构后用户消息卡片不显示
fix: allVids 类型注解补充 base64 字段,消除 TS2322 编译错误
feat: 子代理最大轮次和超时接入设置面板(subAgentMaxLoops/subAgentTimeout)
chore: 版本号 0.11.7 → 0.11.9
|
2026-06-20 13:04:17 +08:00 |
|
thzxx
|
6266d0b10c
|
fix: 去掉所有指令性文字,只描述事实不替用户下命令
|
2026-06-18 14:50:16 +08:00 |
|
thzxx
|
18be23ae87
|
fix: 去掉硬编码索引,用自然语言分隔图片和视频帧
图片和视频始终分块描述,最后追加'请分别分析,不要混淆'提示
|
2026-06-18 14:49:17 +08:00 |
|
thzxx
|
bd0fd55e9c
|
fix: 独立图片在视频帧之前描述,明确 images 数组索引边界
- 图片: images[0] 请单独分析
- 视频帧: images[1..30] 为帧序列
- 避免模型把独立图片混入视频帧
|
2026-06-18 14:48:21 +08:00 |
|
thzxx
|
444fb79626
|
feat: 文件也在消息内容中显示 [文件: xxx.md] 描述
|
2026-06-18 14:41:02 +08:00 |
|
thzxx
|
ec361a4f83
|
refactor: 删除自动子任务拆解,子Agent只能通过 spawn_task 工具调用
所有工具调用必须经过 tool-registry,确保工具卡片完整记录
|
2026-06-18 14:28:57 +08:00 |
|
thzxx
|
400c641f3d
|
fix: 子任务拆解条件更合理——有附件或内容过长时跳过
- 有图片/视频时跳过(图文消息不适合拆解)
- 内容 <50 或 >2000 字符时跳过(太短没意义,太长是文件内容)
|
2026-06-18 14:25:40 +08:00 |
|
thzxx
|
d28f39d3aa
|
fix: 子任务拆解排除文件内容,避免把设定集误拆成89个并行子任务
- 检测 📄 文件 标记时跳过子任务拆解
- 限制拆解只在内容 <5000 字符时触发
|
2026-06-18 14:22:21 +08:00 |
|
thzxx
|
e81d355c68
|
debug: 添加文件内容注入日志,排查文件未被AI分析的问题
|
2026-06-18 14:17:58 +08:00 |
|
thzxx
|
ec0722170e
|
fix: apiContentForModel 累积所有内容——文字+文件+视频帧+图片,不再只发视频
|
2026-06-18 13:59:08 +08:00 |
|
thzxx
|
f2a7198118
|
fix: SQLite 持久化 files 和 _videos,历史记录不再丢失视频指示牌和文件
- ALTER TABLE 新增 attachments TEXT 列
- saveMessage 序列化 files/_videos 为 JSON
- getMessages 反序列化还原
|
2026-06-18 13:42:47 +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
|
52c0c3aff5
|
feat: 视频提取增加开始日志和实时进度推送
- 提取开始时发送 '开始提取视频帧' 日志
- ffmpeg 执行中每秒解析 stderr 的 frame=N 输出并推送进度
- 完成日志从 info 改为 success 级别
|
2026-06-18 11:42:42 +08:00 |
|
thzxx
|
389e42874a
|
refactor: 视频帧独立预览区,只显示视频卡片不逐帧展示
- 新增 #videoPreview 独立区域,金色 video-chip 卡片
- 视频帧存入 pendingVideoFrames,与 pendingImages 完全分离
- 发送时自动合并为 images 数组
|
2026-06-18 11:33:32 +08:00 |
|
thzxx
|
d5a8592317
|
fix: 去掉 ffprobe 依赖,改用 ffmpeg stderr 解析视频信息
ffmpeg-static 不含 ffprobe.exe,改为从 ffmpeg -i 的 stderr 输出中正则解析时长和分辨率。
解析失败则从 1fps 帧数反推时长。
|
2026-06-18 11:22:35 +08:00 |
|
thzxx
|
0d710ca0ec
|
fix: asar.unpack → asarUnpack (electron-builder 25 兼容)
|
2026-06-18 11:14:20 +08:00 |
|
thzxx
|
3d656c2d8e
|
fix: 打包 ffmpeg-static 解决 Windows 无 ffmpeg 问题
- 新增 ffmpeg-static 依赖,自动解析 ffmpeg/ffprobe 路径
- 优先使用内置二进制,回退系统 PATH
- ASAR 解包配置确保二进制可执行
|
2026-06-18 11:08:59 +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
|
5fdcab444c
|
fix: logStreamProgress 防重复条目
- addLog 支持 customId 参数
- _progressCreated 标记防止 addLog 在 DOM 未渲染前重复调用
- 已渲染后直接更新 DOM 文本
|
2026-06-13 09:27:14 +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
|
41ee21ccb3
|
fix: startNewSession 不切命令行,保留工具页签
|
2026-06-13 09:20:49 +08:00 |
|
thzxx
|
0b58639295
|
chore: 0.11.3 -> 0.11.4
|
2026-06-13 08:17:44 +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
|
5cf961df84
|
fix: 修复buildFetchHeaders参数类型错误,useMobile→UA#索引
|
2026-06-12 14:47:13 +08:00 |
|
thzxx
|
a1f06a4c27
|
feat: 全面增强反爬虫——5个UA轮换、语言轮换、随机抖动词、拦截页检测、Cloudflare识别、重试次数3次
|
2026-06-12 14:43:21 +08:00 |
|
thzxx
|
e05f175a3b
|
fix: 加强AGENT.md和工具描述,明确每次搜索必须重新调用工具,不依赖历史结果或训练数据
|
2026-06-12 14:40:01 +08:00 |
|
thzxx
|
0f20540666
|
fix: 单独的web_fetch调用也不再截断内容,返回完整网页
|
2026-06-12 14:31:22 +08:00 |
|
thzxx
|
1000a6b525
|
fix: 自动抓取不再截断,保留完整网页内容
|
2026-06-12 14:30:42 +08:00 |
|
thzxx
|
38a8ae90d2
|
fix: 重建tool-handlers-system.ts,fetch_top必传最低3条,SearXNG和内置引擎统一自动抓取
|
2026-06-12 14:29:14 +08:00 |
|
thzxx
|
f0d7986947
|
fix: 修复tool-registry.ts语法错误,required字段放入parameters内
|
2026-06-12 14:21:57 +08:00 |
|
thzxx
|
de54aba1e2
|
fix: fetch_top改为必传,最低3条,SearXNG和内置引擎统一自动抓取
|
2026-06-12 14:18:58 +08:00 |
|
thzxx
|
c7a184bfa9
|
feat: web_search新增fetch_top参数,搜索后自动抓取前N条完整内容,无需AI手动调web_fetch
|
2026-06-12 14:16:08 +08:00 |
|
thzxx
|
b5c7cf93f7
|
fix: 启动时根据已保存配置更新SearXNG按钮小绿点状态
|
2026-06-12 14:05:34 +08:00 |
|
thzxx
|
00ef0de5ea
|
fix: 搜索结果抓取提示改为明文前置警告,top5→top10,让AI无法忽略
|
2026-06-12 14:00:26 +08:00 |
|
thzxx
|
53cc86d14f
|
docs: 丰富AGENT.md,详述能力概览、工具联动模式、重要约束
|
2026-06-12 13:46:31 +08:00 |
|
thzxx
|
c191906fb5
|
fix: web_search和web_fetch工具定义中加入联动说明,引导AI搜索后批量抓取
|
2026-06-12 13:43:52 +08:00 |
|
thzxx
|
56ead1f11d
|
fix: web_search结果注入批量抓取引导,AGENT.md加强链式调用描述,避免AI只抓一条
|
2026-06-12 13:41:30 +08:00 |
|