|
|
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 |
|
oudecheng
|
4d6d989247
|
feat: 添加工具执行时长字段,增强消息处理功能
|
2026-06-02 16:52:47 +08:00 |
|
oudecheng
|
5273a7b335
|
feat: 添加记忆数量检查,避免在保留数不足时进行整理
|
2026-06-02 16:18:16 +08:00 |
|
oudecheng
|
f8fc0f7d0f
|
feat: 添加工具结果处理功能,支持执行时长记录和显示
|
2026-06-02 16:15:05 +08:00 |
|
oudecheng
|
eebfe0faa5
|
feat: 增强错误处理和日志记录,优雅处理通道关闭情况
|
2026-06-02 15:23:50 +08:00 |
|
oudecheng
|
1541dd7c10
|
feat: 添加平台特定的进程输入等待检查功能,增强 Bash 工具的用户授权检测
|
2026-06-02 10:59:13 +08:00 |
|
|
|
9b6cae0803
|
feat: 前端静态文件嵌入二进制
- 添加 rust-embed 依赖
- 创建 static_files.rs 模块,编译时嵌入 static/ 目录
- 修改 gateway 路由,默认使用嵌入文件
- 支持 STATIC_DIR 环境变量切换到磁盘文件(开发模式)
- 更新 README 说明 Web UI 和构建流程
|
2026-05-30 17:43:17 +08:00 |
|
|
|
1288ba268f
|
feat: 限定记忆命名空间为7种分类
- 新增 ALLOWED_MEMORY_NAMESPACES 常量定义允许的命名空间
- 添加 namespace 验证函数 is_valid_namespace()
- memory_manage 工具 schema 使用 enum 限制 namespace
- memory_search 工具 schema 使用 enum 提示可用 namespace
- 更新系统提示词添加命名空间分类说明
- 更新记忆维护提示词添加命名空间分类说明
- 修复测试中使用旧 namespace 的问题
命名空间分类:
- user: 用户记忆
- semantic: 语义记忆
- episodic: 情景记忆
- skill: 技能记忆
- environment: 环境记忆
- reflection: 反思记忆
- other: 其他记忆
|
2026-05-30 13:06:55 +08:00 |
|
|
|
7d9355fd78
|
feat: WebSocket 媒体文件处理优化
- 后端 ws.rs: 处理前端上传的 base64 内容,保存到本地文件并更新路径
- 后端 ws.rs: 历史消息加载时从文件读取内容填充 base64,过滤 media_refs_json
- 前端 App.tsx: 传递 attachments 给 handleMessage 实现实时显示
- 前端 useChat.ts: handleMessage 支持 attachments 参数
- 前端 MessageInput.tsx: 支持剪贴板粘贴文件/图片
- 前端 MessageInput.tsx: 修复拖拽文件时闪烁问题
- 测试 test_request_format.rs: 补充缺失的 attachments 字段
|
2026-05-30 10:22:30 +08:00 |
|
|
|
c2293238fc
|
feat: 前端支持文件附件输入
- 后端 WsInbound::Message 添加 attachments 字段
- ws.rs 将 attachments 转换为 MediaItem
- 前端 MessageInput 支持点击选择和拖拽文件
- 附件预览列表,支持删除
- 文件大小限制 50MB
- 支持所有文件类型
|
2026-05-30 08:07:02 +08:00 |
|
oudecheng
|
06756a4816
|
fix: 修复消息持久化缺失 topic 关联和 assistant 文本丢失
- PersistingEmittedMessageHandler 新增 topic_id 参数,使用 append_message_with_topic 替代 append_message
- agent_loop 的所有退出路径中为最终 assistant 文本添加 emit_live_tool_call_message
- 更新 finalize_result filter,live_emitter 存在时抑制所有消息的 post-loop 广播
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-29 18:09:00 +08:00 |
|
oudecheng
|
d0051baa07
|
refactor: 消息持久化从批量改为实时逐条,通过装饰器模式实现
- 新增 PersistingEmittedMessageHandler 装饰器,在 emitter 广播前逐条落库
- processor 和 task/runtime 使用装饰器包裹 emitter,替代 post-loop 批量写入
- 移除 session_history 中的批量 DB 写入,仅保留内存历史更新
- execution 中跳过已由 live emitter 实时广播的工具消息,避免重复
- 前端支持运行中 task 工具卡片"查看实时进度"跳转子智能体视图
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-29 16:47:57 +08:00 |
|
oudecheng
|
3b0b4c1f2e
|
refactor: 消息持久化改为批量单事务插入
- 新增 append_messages_batch 方法,所有消息在一个事务内插入
- session_history 移除逐条 append_persisted_message,统一走批量路径
- 子智能体消息保存从 for 循环改为批量调用
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-29 13:02:15 +08:00 |
|
oudecheng
|
4cb26b5b67
|
feat: 子智能体任务消息查看,实时广播工具调用事件
- 新增 LoadTaskMessages 命令,加载子智能体任务的历史消息
- SubAgentEmitter 通过 MessageBus 实时广播子智能体工具调用
- 前端新增子智能体视图,支持导航进入/退出子智能体会话
- 外部渠道过滤子智能体事件,避免推送到飞书/微信
- ToolCall/ToolResult 新增 subagent_task_id 字段
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-29 11:15:38 +08:00 |
|
oudecheng
|
5d3a583915
|
fix: read工具单行超长时内容被完全丢弃
单行超过 MAX_CHARS(128K) 时,截断循环 end_idx=0 导致 lines[..0] 为空,
整行内容丢失。改为当首行就超长时使用 take_prefix_chars 字符级截断。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-29 09:47:47 +08:00 |
|
oudecheng
|
34011a6fa3
|
feat: 优化工具面板UI,外部渠道过滤工具消息
- 飞书/微信渠道不再推送 ToolResult/ToolPending 消息
- 聊天面板过滤 tool_call 消息,工具调用仅在工具面板展示
- 工具面板增加折叠预览、JSON格式化、状态动画等视觉优化
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-29 08:46:50 +08:00 |
|
oudecheng
|
5e5de7ce9f
|
refactor: 移除 show_tool_results 开关,始终实时推送工具调用消息
简化工具消息推送逻辑,去掉条件判断,让所有工具消息(含结果)
直接通过 emit_live_tool_call_message 实时发送给用户。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-28 18:52:40 +08:00 |
|
oudecheng
|
7755164df5
|
feat:记忆修改隔离
|
2026-05-28 14:55:52 +08:00 |
|
oudecheng
|
598d425c28
|
feat: 话题添加描述字段,工具消息按 tool_call_id 合并展示
- TopicSummary 新增 description 字段,侧边栏优先显示描述
- ToolPanel 使用 toolCallId 将 tool_call 和 tool_result 配对合并展示
- 保存消息时同步更新 topics 表的 message_count 和 last_active_at
- ChatMessage 新增 toolCallId 字段
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-28 14:30:21 +08:00 |
|
oudecheng
|
44e82e8473
|
feat: 附件通过 base64 内容实现前端直接下载
- MediaItem/MediaSummary 新增 content_base64 和 file_name 字段
- 解析附件时读取文件内容并 base64 编码(限 50MB),前端 Blob 下载
- 创建 Session 后返回完整 topics 列表,前端侧边栏实时同步
- 简化话题历史加载逻辑,不再回退到 session 消息
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-28 14:01:37 +08:00 |
|
oudecheng
|
7898ca69e4
|
feat: 添加附件支持、自动选择话题及消息展示优化
- 消息协议新增 attachments 字段,支持图片/音频/视频/文件附件
- 文本和附件合并在一条消息中发送,不再拆分为多条
- Topics 加载后自动选中第一个话题并加载历史消息
- 用户消息现在通过 WebSocket 发送,可在前端展示
- 前端过滤 tool_result 消息,添加附件卡片展示组件
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-28 11:51:48 +08:00 |
|
oudecheng
|
542e11d0b3
|
refactor: 将 Session 命令重构为 Topic 命令
- 新增 LoadTopic 命令处理器,替代 LoadSession
- 新增 SwitchTopic 命令处理器,替代 SwitchSession
- 删除 LoadSession 和 SwitchSession 处理器
- 更新 Command 枚举:LoadSession -> LoadTopic, SwitchSession -> SwitchTopic
- 同步更新前端协议类型定义
- 调整适配器和网关代码以适应新命令
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-27 16:01:07 +08:00 |
|
oudecheng
|
10fb67320a
|
refactor(web): 简化 UI 架构,移除三级选择器
- 移除 ChannelSelector 和 SessionSelector 组件
- 新增 SessionInfo 组件显示当前会话信息
- 简化 useChat hook,移除 channels/sessions 状态管理
- 优化 TopicList UI,添加时间格式化显示
- 将废弃组件移至 .deprecated/ 目录
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-27 15:39:50 +08:00 |
|
oudecheng
|
e9e1439428
|
feat: 添加通道和话题管理功能
后端:
- 新增 ListChannels 命令,列出所有可用通道 (WebSocket/CLI)
- 新增 ListSessionsByChannel 命令,支持按通道筛选会话
- 新增 ListTopics 命令,列出 Session 的所有 Topics
- 添加 Channel 和 TopicSummary 数据结构
- 更新 WebSocket 协议,支持 channel_list 和 topic_list 消息
前端:
- 新增 ChannelSelector 组件用于通道选择
- 新增 SessionSelector 组件用于会话选择
- 更新 TopicList 组件支持话题展示
- 更新 useChat hook 和协议类型定义
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-27 14:55:09 +08:00 |
|
oudecheng
|
624d8e8943
|
feat: 添加 React Web UI 前端界面
- 使用 React 18 + TypeScript + Vite + Tailwind CSS 构建前端
- 实现 WebSocket 实时通信(useWebSocket hook)
- 添加聊天界面组件(MessageList, MessageBubble, MessageInput)
- 集成 Topic 管理(新建、列出、切换)
- 支持 Markdown 渲染(react-markdown + remark-gfm)
- 添加工具调用展示面板
- 实现深色科技主题(Tech Dark)
- 后端集成静态文件服务(tower-http)
- 添加 Makefile 和 build.sh 构建脚本
- 更新 .gitignore 忽略前端构建产物
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-26 17:43:15 +08:00 |
|
oudecheng
|
644f5f9132
|
feat: 子代理继承主代理的 MCP 工具
- 为 McpToolWrapper 添加 Clone trait,支持工具实例复用
- 修改 build_subagent_tools 方法,支持传入 MCP 工具列表
- 调整 runtime 构建顺序:先等待 MCP 连接,再将 MCP 工具传递给子代理
子代理现在可以自动使用主代理配置的 MCP 工具(如 filesystem、fetch 等)。
|
2026-05-26 11:53:40 +08:00 |
|
oudecheng
|
861aa04690
|
feat: 将 TaskConfig 默认超时时间统一改为60分钟
- default_task_max_execution_secs: 1200 -> 3600 (20分钟 -> 60分钟)
- default_task_explore_max_execution_secs: 600 -> 3600 (10分钟 -> 60分钟)
确保配置层默认值与代码层一致。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-26 08:52:30 +08:00 |
|