62 Commits

Author SHA1 Message Date
23e0b3e7a6 fix(feishu): bound media and retry API requests 2026-07-19 16:02:01 +08:00
7e53fa658b fix(feishu): preserve reply and thread semantics 2026-07-19 15:52:53 +08:00
0512d91729 fix(feishu): harden websocket event processing 2026-07-19 15:47:27 +08:00
5d081e2580 fix(feishu): enforce inbound admission rules 2026-07-19 15:42:01 +08:00
76de8139de perf: calibrate turn history incrementally 2026-07-19 13:51:14 +08:00
76685c3983 refactor: normalize inbound channel context 2026-07-19 13:42:43 +08:00
c6e022f6cb feat: stream turns through Feishu cards 2026-07-17 17:30:38 +08:00
6230ac8e36 feat: stream turn snapshots to TUI and WebUI 2026-07-17 16:53:21 +08:00
55da3204f8 feat: coordinate live turn delivery 2026-07-17 15:56:52 +08:00
f4172fea38 实现tui和webui的附件收发,优化文件在消息中的处理 2026-07-16 17:49:51 +08:00
7a144cea8a 优化前端显示,渲染markdown、新增黑白主题 2026-07-15 18:16:18 +08:00
351af8870d 初步实现todo功能 2026-07-15 17:48:14 +08:00
27d126cf73 tui客户端增强。 2026-07-14 14:31:16 +08:00
18f1e47f77 fix(feishu): bound shutdown during connection 2026-07-14 12:43:02 +08:00
3f1350c33b fix(channels): retry only transient delivery errors 2026-07-14 11:57:47 +08:00
24d3e26b43 fix(runtime): eliminate unowned persistence tasks 2026-07-14 11:50:55 +08:00
954bfd1d75 fix(messaging): make persistence and delivery explicit 2026-07-14 11:49:02 +08:00
c2d4fc5f09 refactor: remove dead code and unused state 2026-07-14 11:41:07 +08:00
a9c297764e fix(channels): unify lifecycle ownership 2026-07-14 11:24:03 +08:00
63d20d1eb8 refactor: eliminate build warnings and legacy evaluator
Resolve strict Clippy findings across all targets, preserve public API compatibility with scoped lint exceptions, and fix sourced messages retaining media references. Replace meval and its future-incompatible nom dependency with a bounded internal expression parser and regression tests.
2026-07-14 11:00:39 +08:00
3d580828b5 fix(runtime): harden persistence scheduling and shutdown
Add versioned SQLite migrations, enforced runtime pragmas, and transactional message constraints. Claim scheduled jobs with durable leases, execute them concurrently within bounds, and commit completion atomically. Supervise background tasks and clean up WebSocket clients and writer tasks during ordered shutdown.
2026-07-14 10:37:58 +08:00
2558d6dae1 优化代码格式,调整断言和格式化共享日历事件输出 2026-06-17 22:40:43 +08:00
fe2bc3dfd3 更新版本号至1.1.2,优化Dockerfile中的himalaya安装方式,调整内容块构建逻辑以保留文本,增强Feishu通道的媒体处理,新增交互式消息设计文档 2026-06-17 22:22:41 +08:00
8f4ee79d8d Format codebase with rustfmt 2026-06-15 23:47:24 +08:00
c6f4392e63 Fix CLI session routing and dialog controls 2026-06-15 23:44:41 +08:00
f0879f8d13 重构文件消息处理流程。 2026-05-25 11:59:29 +08:00
2bff987be1 飞书渠道简化 2026-05-13 18:07:34 +08:00
d957f9c649 feat(send_message): support file sending via Feishu; fix upload endpoint and message format
- OutboundMessenger trait: add media: Vec<MediaItem> param to send_message()
- send_message tool: add optional 'files' param with path-to-MediaItem conversion
- SessionManager::send_message(): forward media to OutboundMessage
- Feishu: fix image upload endpoint (/im/v1/images/upload → /im/v1/images)
- Feishu: fix post image tag (image → img)
- Feishu: fix file upload file_type mapping (use valid Feishu types)
- Feishu: send files as separate messages (file/audio/media msg_type), not embedded in post
- Feishu: add debug logging for upload/send responses
- Skip [message from] prefix for pure file messages to same session
2026-05-13 12:06:55 +08:00
5ef89cd667 refactor: remove unused functions and improve path resolution in tools 2026-05-10 23:14:12 +08:00
81e9f1e7db clippy --fix: 合并嵌套if、简化map_or、移除冗余引用等机械性优化 2026-05-08 16:35:21 +08:00
ceb8234a30 飞书渠道剥离思维链内容,不显示<think>标签 2026-05-08 16:19:19 +08:00
5d62141658 1、修复和提升记忆系统 2、简化消息标记 2026-05-08 15:09:27 +08:00
0e146a8f2a 可观测性改善,llm api兼容性改善 2026-05-04 23:04:28 +08:00
98eb7bea3d 新增跨session消息发送能力 2026-05-04 00:32:24 +08:00
5c558027fa feat(session): 添加 /? 帮助命令,错误命令显示友好提示
- 新增 /? 和 /help 命令显示所有可用斜杠命令
- 未知命令不再报错,而是提示"未知命令:/xxx。输入 /? 获取帮助。"
- execute_slash_command 错误现在返回友好提示而非传播为服务器错误
2026-04-29 22:57:59 +08:00
c48ed83a23 refactor(session): 移除 InboundMessage.dialog_id,dialog_id 完全由 SessionManager 管理
Channel 消息不再携带 dialog_id,完全由 SessionManager 通过
current_sessions 内部管理。/new 后下一条消息会自动路由到新 session。

改动:
- InboundMessage 移除 dialog_id 字段
- handle_message 移除 dialog_id 参数
- Feishu/CLI channel 创建 InboundMessage 时不再设置 dialog_id
- 路由逻辑简化为:current_sessions → find_active_session → 创建新 session
2026-04-28 23:05:06 +08:00
1ac6de118a 修复 /dump 命令:保存到文件并注入系统提示词
- /dump 现在保存到 {workspace}/dumps/ 目录而非仅返回文本
- dump 文件包含注入模型的完整系统提示词(AgentLoop + Skills)
- 修复 cli_chat 中 current_session_guard 变量声明问题
- gateway 正确处理 HandleResult::AgentResponse 和 CommandOutput
- 移除 cli_chat 中未使用的 parse_slash_command 导入
2026-04-28 21:27:36 +08:00
e61b78eaff 重构:斜杠命令通过 handle_message 处理,Channel 不再管理 Session
架构优化:
- Feishu 渠道的 handle_and_publish 简化为只发布消息到 bus
- Session 创建/复用由 SessionManager 在 handle_message 内部处理
- 斜杠命令检测移到 handle_message,execute_slash_command 直接调用
- CLI 和 Feishu 统一通过消息总线处理斜杠命令
2026-04-28 21:10:28 +08:00
e787203e94 修复飞书渠道会话创建时机:执行斜杠命令前先确保会话存在
在 Feishu 收到斜杠命令时,先通过 CreateDialog 创建会话,
再执行实际的命令。这样 /dump 等命令就能正确获取对话历史。
2026-04-28 21:06:25 +08:00
30b68599a4 为飞书渠道添加斜杠命令支持
重写 FeishuChannel 的 handle_and_publish 方法,在发布消息前
检查是否为斜杠命令。如果是,则通过控制平面执行命令并返回结果。
2026-04-28 20:58:31 +08:00
61eea62bfc 增强斜杠命令功能,支持参数解析和新命令;实现双重 Ctrl+C 退出确认 2026-04-28 00:01:28 +08:00
1abac85034 集成技能功能到系统提示词框架
- 在 AgentLoop 中添加 SkillsLoader 支持\n- 在系统提示词构建中集成技能提示\n- 更新 Session 以传递 SkillsLoader\n- 修复所有编译错误和测试问题
2026-04-27 23:04:24 +08:00
8226e8429d Merge remote-tracking branch 'origin/main' 2026-04-27 22:47:37 +08:00
f704900e07 统一工作目录管理 2026-04-27 17:23:52 +08:00
98259a7770 重构: 添加斜杠命令支持和命令菜单功能 2026-04-26 22:09:04 +08:00
0c356e7ac4 重构: 添加斜杠命令解析和执行功能 2026-04-26 21:51:24 +08:00
bcee62713f 重构: 移除调试日志以简化消息处理流程 2026-04-26 21:26:27 +08:00
86dea0f874 Refactor session management to support dialog-based architecture
- Removed InputHandler and related input event handling code.
- Updated GatewayState to handle new session commands for dialogs.
- Introduced UnifiedSessionId for managing session identifiers across channels and chats.
- Refactored Session and SessionManager to manage dialogs instead of sessions.
- Added methods for creating, listing, switching, renaming, archiving, and deleting dialogs.
- Updated storage functions to accommodate dialog IDs in persistent session management.
- Enhanced tests to cover new dialog functionalities and ensure stability.
2026-04-26 20:59:54 +08:00
75281952d0 refactor: 统一 current_timestamp 函数到 bus::message 模块
- bus/message.rs: current_timestamp 改为 pub(crate) 导出
- cli_chat.rs: 删除本地定义,改用 crate:🚌:message::current_timestamp()
- feishu.rs: 改用 crate:🚌:message::current_timestamp()
- storage/mod.rs: 删除本地定义,改用 crate:🚌:message::current_timestamp()
2026-04-26 17:24:44 +08:00
dfe0fad61e 重构: 统一消息总线与通道管理,消除重复引用
- OutboundDispatcher 改用 ChannelManager 获取通道,不再维护独立注册表
- CliChatChannel 通过控制消息通道操作 SessionStore,移除独立引用
- MessageBus 统一通过 ChannelManager 创建,避免重复实例
- GatewayState 移除冗余字段,统一通过 ChannelManager 访问
- 新增 ControlInbound/ControlOutbound/ControlMessage 类型支持会话管理操作
- 添加 ARCHITECTURE_REVIEW.md 记录架构问题与修复状态
2026-04-26 17:09:52 +08:00