|
|
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 |
|
oudecheng
|
c41c2a1d2e
|
feat: 将内置子代理默认超时时间统一改为60分钟
- general 子代理: 20分钟 -> 60分钟
- explore 子代理: 10分钟 -> 60分钟
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-25 12:59:34 +08:00 |
|
oudecheng
|
b3dc207ad1
|
fix: 移除 temperature 和 max_tokens 的硬编码默认值
如果配置中没有设置 temperature 或 max_tokens,不再传递这些参数给模型,
让模型使用自己的默认值,而不是硬编码 0.7。
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-25 12:58:15 +08:00 |
|
oudecheng
|
86d48a3ec0
|
feat: 实现自定义子代理加载功能
- 添加 SubagentCatalog::discover() 方法,支持从文件系统加载自定义子代理
- 支持 ~/.picobot/subagents/ 和 ./.picobot/subagents/ 两个目录
- 项目级定义可覆盖用户级定义
- 支持 YAML frontmatter + body 格式解析
- 修复 Windows 换行符兼容性问题
- 移除未使用的 read_only 字段
- 实现 TaskTool 动态 schema,子代理类型列表从运行时获取
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
|
2026-05-25 11:56:44 +08:00 |
|
|
|
58b37bb796
|
fix: 更新合并规则,明确命名空间限制和合并条件
|
2026-05-24 22:33:07 +08:00 |
|
|
|
9ae2813c20
|
feat: 添加子代理配置,支持自定义子代理定义和运行时管理
|
2026-05-24 21:35:36 +08:00 |
|
|
|
b571d7b7b3
|
feat: 添加图片上下文限制配置,支持最大图片数量和消息轮次限制
|
2026-05-24 18:06:22 +08:00 |
|
|
|
4605c2dad3
|
feat: 重构 MCP 配置,支持 mcpServers 字段,优化工具注册和连接管理
|
2026-05-24 10:00:25 +08:00 |
|
|
|
0732b31e6b
|
feat: 添加主题描述生成和更新功能,优化会话信息展示
|
2026-05-24 08:32:34 +08:00 |
|
|
|
5e04832f20
|
feat: 更新 MCP 配置和工具适配器,支持 Claude Desktop 格式,优化服务器连接管理
|
2026-05-23 23:37:45 +08:00 |
|
|
|
ef7e899584
|
feat: 集成 MCP (Model Context Protocol),支持 Stdio 和 HTTP 传输方式,优化工具注册和连接管理
|
2026-05-23 23:22:36 +08:00 |
|
|
|
b3fa0bb978
|
feat: 添加 HTTP 传输连接支持,优化 MCP 客户端管理器
|
2026-05-23 22:57:08 +08:00 |
|
|
|
cbb384a4e6
|
feat: 添加 MCP (Model Context Protocol) 支持,包含客户端管理器和工具适配器
|
2026-05-23 22:52:36 +08:00 |
|
|
|
f68e915b04
|
feat: 更新技能管理工具文档,明确技能创建和修改的正确流程及存储路径
|
2026-05-23 21:12:39 +08:00 |
|
|
|
b6f2de053d
|
refactor: 移除会话重置逻辑中的 reset_cutoff_seq 字段,优化会话管理和历史压缩逻辑
|
2026-05-23 18:38:34 +08:00 |
|
|
|
b4ef56803f
|
feat: 添加内存维护配置,优化记忆整理逻辑和限制
|
2026-05-23 16:05:11 +08:00 |
|
|
|
44d9171b86
|
feat: 更新内容处理逻辑,支持图片转换为通知文本并添加模型支持检查
|
2026-05-23 14:08:06 +08:00 |
|
|
|
4a24758262
|
feat: 添加交互式配置向导,支持强制覆盖和跳过频道配置选项
|
2026-05-23 10:26:42 +08:00 |
|
oudecheng
|
c36650c9aa
|
feat: 优化技能管理工具,延迟解析禁用名称以提高执行效率
|
2026-05-22 18:23:18 +08:00 |
|
oudecheng
|
2724334d52
|
feat: 移除 SkillListTool,简化技能管理工具
|
2026-05-22 14:01:22 +08:00 |
|
oudecheng
|
5f0fdb7b2e
|
feat: 更新技能说明格式,增强可读性并提供使用指南
|
2026-05-22 11:10:24 +08:00 |
|
oudecheng
|
cc3e890ccd
|
feat: 添加 list_skill_events 方法到 SkillEventRepository,支持可选 session_id 参数
|
2026-05-22 10:47:55 +08:00 |
|
oudecheng
|
70b35d2cc1
|
feat: 更新聊天历史加载逻辑,支持按话题加载历史记录并避免借用冲突
|
2026-05-22 10:47:25 +08:00 |
|
oudecheng
|
ea5a9e0656
|
feat: 更新技能说明格式,优化可读性并移除不必要的字符限制
|
2026-05-22 09:35:06 +08:00 |
|
oudecheng
|
c817b1dde1
|
feat: 优化会话消息处理逻辑,支持在话题切换时正确保存消息并更新内存历史
|
2026-05-21 18:04:11 +08:00 |
|
oudecheng
|
159c1bbb7a
|
feat: 移除日志中的响应内容和模型信息,优化工具调用的日志记录
|
2026-05-21 17:20:26 +08:00 |
|
oudecheng
|
3128abe3c6
|
feat: 优化 parse_post_content 函数,支持处理包含内容数组的代码块,并添加相关单元测试以确保向后兼容性
|
2026-05-21 17:17:44 +08:00 |
|
oudecheng
|
efc8af12eb
|
feat: 添加参数提取工具函数,支持处理字符串化 JSON 数组,优化技能管理和会话发送功能
|
2026-05-21 17:00:22 +08:00 |
|
oudecheng
|
da9cec6d35
|
feat: 添加参数提取工具函数,优化 JSON 参数处理,确保处理空值和类型转换
|
2026-05-21 16:30:09 +08:00 |
|
oudecheng
|
32a9e2946e
|
feat: 优化 MemorySearchTool 的查询参数处理,支持多种格式的查询输入
|
2026-05-21 11:35:17 +08:00 |
|
oudecheng
|
9adaa93ecc
|
feat: 优化 StreamingAccumulator 中工具调用的 ID 和名称更新逻辑,确保空值不会覆盖有效数据,并添加相关单元测试
|
2026-05-21 08:50:41 +08:00 |
|
oudecheng
|
1c6ee160e5
|
feat: 添加父话题 ID 支持,优化子智能体任务管理和会话关联
|
2026-05-20 18:11:16 +08:00 |
|
oudecheng
|
49475783a2
|
feat: 添加子智能体支持到保存话题和会话功能,优化数据持久化
|
2026-05-20 17:52:46 +08:00 |
|