oudecheng
|
ce6dce81f4
|
fix: 新创建 todo 项允许直接设为 in_progress,无需先 pending 再更新
agent 创建 todo 列表时可以将第一个任务直接标为 in_progress,
避免浪费一次工具调用。仍然禁止新项为 completed/cancelled。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-12 14:43:38 +08:00 |
|
oudecheng
|
881fcace47
|
feat: 添加 todo_write 工具,支持全量替换和增量合并两种模式
- Tool: 纯内存实现 (Arc<RwLock<HashMap>>),零 DB 依赖,解耦持久化
- 状态机: pending → in_progress → completed/cancelled,单 in_progress 约束
- merge=false: 全量替换模式(默认)
- merge=true: 增量更新模式,只传变更的项,其余保留
- 隔离: scope_key = topic_id.unwrap_or(session_id),topic 和子代理隔离
- 持久化: TodoRepository trait + SessionStore SQLite 实现,在 Session 拦截器层完成
- 前端推送: WsOutbound::TodoList 事件
- Prompt: TodoPromptProvider 中文指令,子代理模板也包含
- 测试: 16 个单元测试,全部通过
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-12 14:19:07 +08:00 |
|
oudecheng
|
cedd8b2a69
|
feat: 添加 topic_id 字段到消息结构,优化消息处理逻辑
|
2026-06-12 12:22:21 +08:00 |
|
oudecheng
|
87fc8cc3b7
|
feat: 更新工具调用的ID处理逻辑,确保在缺失时生成唯一ID
|
2026-06-12 11:48:01 +08:00 |
|
oudecheng
|
86543f19fe
|
feat: 添加获取时间的工具调用,确保时间准确性
|
2026-06-12 10:40:34 +08:00 |
|
oudecheng
|
7c3363aa47
|
feat: 更新默认代理配置,建议在思考时使用中文以提高上下文理解
|
2026-06-11 18:20:23 +08:00 |
|
oudecheng
|
7b1bc39031
|
feat: 更新代理配置,允许根据用户或技能要求创建多个子智能体以隔离上下文
|
2026-06-11 18:07:16 +08:00 |
|
oudecheng
|
4487f1a490
|
feat: 添加思考过程显示功能,允许用户选择是否展示助手的思考内容
|
2026-06-11 17:15:03 +08:00 |
|
oudecheng
|
6ff5907616
|
feat: 添加 reasoning_content 字段到多个消息结构,支持思考过程展示
|
2026-06-11 14:33:29 +08:00 |
|
oudecheng
|
0ce89a0e4e
|
feat: 添加 reasoning_content 字段到多个消息结构,支持思考过程展示
|
2026-06-11 12:04:52 +08:00 |
|
oudecheng
|
694b3ce0e0
|
fix: send_session_message 增加详细 debug 日志和文件名归一化匹配
- filename_matches_target 关键日志从 trace 升级到 debug
- 增加 on-disk bytes hex dump 输出,便于定位编码差异
- UTF-8 解码成功但不匹配时继续尝试 GBK 解码
- 新增 normalize_filename() 去除空白/零宽字符后模糊比对
解决 LLM 在中文文件名中多插空格的问题
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-11 09:44:47 +08:00 |
|
oudecheng
|
0de0b93896
|
feat: send_session_message 支持非 UTF-8 编码中文文件路径回退
Linux 环境下,当文件名包含非 UTF-8 编码的中文字符(如 GBK)
时,LLM 从 bash ls 输出获取的 UTF-8 路径无法匹配磁盘上的实
际字节,导致文件访问失败。
此提交新增 resolve_attachment_path() 函数,采用目录扫描+
多编码解码匹配策略:
1. 先按 UTF-8 原样访问(快速路径)
2. 失败后列出父目录,对每个文件尝试 UTF-8/GBK/lossy 解码
与目标文件名比对,匹配成功则返回磁盘实际路径
同时修复 file_name 提取使用 to_string_lossy() 替代 to_str()
避免非 UTF-8 文件名静默丢失。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-11 09:27:18 +08:00 |
|
oudecheng
|
a2c4bf1d8c
|
feat: 优化附件路径解析,增加文件名匹配逻辑以支持非 UTF-8 编码
|
2026-06-11 09:15:05 +08:00 |
|
oudecheng
|
0646a17073
|
feat: 添加附件路径解析功能,支持非 UTF-8 编码文件名的回退机制
|
2026-06-10 18:07:17 +08:00 |
|
oudecheng
|
a4cdb31ba0
|
feat: 优化话题描述生成逻辑,增加空描述回退机制;更新话题创建命令以自动聚焦新话题
|
2026-06-10 11:26:35 +08:00 |
|
oudecheng
|
f470affb2f
|
feat: 添加技能列表功能,支持列出所有技能并在前端展示
|
2026-06-08 14:13:54 +08:00 |
|
|
|
e4bc8153a0
|
feat: 更新测试用例中的技能描述,提供更准确的技能定义
|
2026-06-07 22:00:09 +08:00 |
|
|
|
c0d4f65de4
|
feat: 更新数据库连接管理,使用连接池优化会话存储,添加新的错误处理
|
2026-06-07 21:35:47 +08:00 |
|
|
|
cca913b610
|
feat: 添加记忆 CRUD 功能,支持创建、更新和删除记忆,优化记忆面板交互
|
2026-06-07 20:16:54 +08:00 |
|
|
|
7708112649
|
feat: 添加记忆功能,支持列出所有记忆并在前端展示,优化记忆面板
|
2026-06-07 19:50:46 +08:00 |
|
|
|
62ea6de3a7
|
feat: 更新时间戳处理逻辑,支持从消息中提取并格式化时间,同时为话题列表添加分页功能
|
2026-06-07 18:17:13 +08:00 |
|
|
|
eeea7d44d0
|
feat: 添加 topic_id 支持,确保消息按话题隔离
|
2026-06-07 17:49:22 +08:00 |
|
|
|
3a623cc8a3
|
fix: 修复话题描述更新逻辑的竞态条件和语义错误,前端自动刷新描述
- topic_description.rs: LLM 返回空字符串时返回 Err 而非 Ok(""),防止空值写回 DB 触发循环生成
- processor.rs: 添加 Arc<Mutex<HashSet>> 生成中守卫防止重复触发,改用 DB 中真正第一条用户消息生成描述
- useChat.ts: assistant_response 时检测当前话题描述为空则递增刷新信号
- App.tsx: 监听刷新信号,500ms 防抖后自动发送 list_topics 获取新描述
|
2026-06-07 16:52:44 +08:00 |
|
|
|
b5e2886068
|
feat: 添加删除话题功能,包括命令处理器和前端交互
|
2026-06-07 14:09:14 +08:00 |
|
|
|
bf66c00950
|
feat: 为 WebSocket 消息添加时间戳字段,确保消息的时间信息可用
|
2026-06-07 09:18:15 +08:00 |
|
|
|
6f33ec7604
|
feat: 多通道消息支持与 Session 选择器
后端:
- list_channels 从 ChannelManager 动态查询通道列表(合并 websocket + 所有已注册通道)
- build_channel_list 移至 ChannelManager,网关层直接依赖领域层
- get_current_topic 自动创建默认话题(修复微信等通道无话题的问题)
- is_channel_writable: 仅 websocket 可写,其余通道只读
前端:
- 右上角通道选择器 + Session 选择器(Portal 渲染,固定宽度居中)
- 只读通道显示刷新按钮替代新建按钮
- 话题列表时间戳修复(秒→毫秒)
- 移除冗余的 SessionInfo、AI Ready、所属会话等 UI
- 修复 scheduler view 路由无条件拦截消息的 bug
|
2026-06-06 22:25:10 +08:00 |
|
|
|
99b6f54f67
|
feat: 更新网关配置,将主机地址从 "0.0.0.0" 修改为 "127.0.0.1"
|
2026-06-06 16:00:34 +08:00 |
|
|
|
cf1152571d
|
feat: 实现内存记录的去重和统一 scope_key 为 "default"
|
2026-06-06 15:07:06 +08:00 |
|
|
|
abb2d596f4
|
feat: 统一记忆 scope_key 为 "default",简化上下文依赖
|
2026-06-06 14:52:54 +08:00 |
|
|
|
e36f66e23b
|
feat: 移除消息发送的速率限制逻辑,简化 WeChat 消息发送流程
|
2026-06-06 14:11:13 +08:00 |
|
|
|
b5a1635a05
|
feat: 实现消息发送的速率限制,确保同一用户之间的最小间隔
|
2026-06-06 10:57:40 +08:00 |
|
|
|
988e77123c
|
feat: 精简日志记录,移除冗余信息,优化调试输出
|
2026-06-06 10:41:52 +08:00 |
|
|
|
39072f724e
|
feat: 优化文本分割逻辑,避免在 markdown 表格和代码块中间拆分
|
2026-06-06 10:32:28 +08:00 |
|
|
|
c3bfe32fa3
|
feat: 实现长消息分块发送功能,优化 WeChat 消息传递
|
2026-06-06 10:24:55 +08:00 |
|
|
|
fb90641774
|
feat: 增强日志记录,添加消息处理和工具执行的详细信息
|
2026-06-06 09:26:50 +08:00 |
|
oudecheng
|
d1d4998a26
|
feat: 增加工具结果字符限制,提升处理能力至 100,000 字符
|
2026-06-04 17:33:01 +08:00 |
|
oudecheng
|
2f529e96d0
|
feat: 添加滚动控制功能,支持回到顶部和回到底部的按钮
|
2026-06-04 16:00:43 +08:00 |
|
|
|
e8a3a47ac7
|
feat: 添加 TaskStarted 事件,支持任务开始通知功能
|
2026-06-03 21:53:37 +08:00 |
|
oudecheng
|
1d4ebb27a7
|
feat: 更新 StopExecution 命令和 CancelManager,支持按话题取消 Agent 执行
|
2026-06-03 18:13:15 +08:00 |
|
oudecheng
|
1b571e943f
|
feat: 添加停止当前执行的 Agent 功能,支持通过 /stop 命令取消执行
|
2026-06-03 16:49:29 +08:00 |
|
oudecheng
|
a11fdac86a
|
feat: 优化消息历史清理逻辑,支持移除任意位置的未完成工具调用序列
|
2026-06-03 15:14:18 +08:00 |
|
oudecheng
|
a783abd0e3
|
feat: 添加恢复代码块占位符的功能,优化文本处理逻辑
|
2026-06-03 08:54:08 +08:00 |
|
|
|
15dfc48837
|
feat: 根据 chat_id 自动选择 Session,支持定时任务专用 Session
|
2026-06-03 00:08:28 +08:00 |
|
|
|
a2c7981d6d
|
feat: 添加 fresh_session 选项以支持清理历史记录
|
2026-06-02 23:31:05 +08:00 |
|
oudecheng
|
cb58d9f3f0
|
feat: 清理消息历史中不完整的 tool call 序列
新增 sanitize_incomplete_tool_call_sequences() 方法,移除末尾
缺少对应 tool result 的 assistant tool_calls 消息。解决进程中断
导致部分 tool call 序列残留、进而引发 API 报错的问题。
同时清理因父消息被移除而残留的孤儿 tool result 消息。
|
2026-06-02 20:40:05 +08:00 |
|
oudecheng
|
9f2eedf313
|
feat: 更新消息处理逻辑,仅接受带有匹配 subagent_task_id 的消息
|
2026-06-02 19:34:11 +08:00 |
|
oudecheng
|
ea6fabe41d
|
feat: 添加持久化消息处理程序,增强定时任务消息的持久化能力
|
2026-06-02 18:42:50 +08:00 |
|
oudecheng
|
025c355c7d
|
feat: 在消息查询中添加工具执行时长字段,增强消息记录功能
|
2026-06-02 17:27:29 +08:00 |
|
oudecheng
|
590ea9abb0
|
feat: 添加工具执行时长字段到消息存储,增强消息记录功能
|
2026-06-02 17:17:06 +08:00 |
|
oudecheng
|
5f2bc950b1
|
feat: 添加定时任务和聊天消息加载功能,增强调度管理
|
2026-06-02 17:04:00 +08:00 |
|