96 Commits

Author SHA1 Message Date
aa989cbaf1 feat(gateway): runtime introspection for status endpoint 2026-07-24 18:02:28 +08:00
115e77ff27 feat(config): optional provider pricing for cost metrics 2026-07-24 17:11:37 +08:00
0d61354ba1 feat: add gateway configuration hot reload 2026-07-21 12:59:46 +08:00
b043fcf531 fix(session): commit same-turn media with final reply 2026-07-20 00:11:39 +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
355244a3d6 refactor: unify turn progress delivery 2026-07-19 13:36:42 +08:00
42fe650785 refactor: centralize turn input preparation 2026-07-19 13:34:12 +08:00
0c835db380 fix: observe terminal turn delivery 2026-07-19 13:23:01 +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
3ada5b9421 feat: stream agent turns through session lifecycle 2026-07-17 15:44:08 +08:00
a7980b7f72 feat: add authoritative turn state machine 2026-07-17 14:52:56 +08:00
740d0f4f33 feat: persist streaming turn metadata 2026-07-17 14:37:10 +08:00
f4172fea38 实现tui和webui的附件收发,优化文件在消息中的处理 2026-07-16 17:49:51 +08:00
351af8870d 初步实现todo功能 2026-07-15 17:48:14 +08:00
9ac898acbb 扩充定时任务功能、实现类似其他agent软件的heartbeat功能 2026-07-15 16:36:10 +08:00
6e56a84054 增加命令补全 2026-07-15 14:00:36 +08:00
27d126cf73 tui客户端增强。 2026-07-14 14:31:16 +08:00
f42e9d44cc refactor(session): isolate messaging and persistence 2026-07-14 11:56:19 +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
f691c1aad6 fix(agent): supervise background tasks atomically 2026-07-14 11:30:32 +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
b06bc4f025 fix(runtime): harden session persistence and outbound dispatch 2026-07-14 10:08:55 +08:00
fdd7f47305 系统提示词精简,拆分固定部分与可变部分,固化工具skill顺序,提升缓存命中率 2026-06-17 23:25:28 +08:00
ad7fa70a02 优化session的锁 2026-06-16 22:47:07 +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
3df628bd28 补充/info信息 2026-05-29 16:23:35 +08:00
ea1338c94f 优化子agent提示词 2026-05-29 11:22:48 +08:00
41b4895ff0 增加sub-agent机制。 2026-05-25 23:23:10 +08:00
a77c026826 增加deepseek的支持。 2026-05-25 17:40:17 +08:00
f0879f8d13 重构文件消息处理流程。 2026-05-25 11:59:29 +08:00
22be6e404b 优化斜杠命令处理机制,增加/stop命令 2026-05-24 18:12:18 +08:00
b85578a7d2 新增浏览器调用能力。 2026-05-21 17:11:53 +08:00
52925fcd73 增加MCP适配 2026-05-13 16:43:38 +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
ebbf7e4036 refactor(session): make cron stateless, split session lock, eliminate deadlock
- handle_cron_message: bypass Session entirely, use create_cron_agent() for direct LLM call; cron LLM delivers results via send_message tool
- handle_message: split session lock into Phase1(prepare)/Phase2(LLM unlocked)/Phase3(persist), allowing send_message to lock freely
- send_message: restore lock().await (remove try_lock workaround)
- scheduler: remove outbound publish (LLM handles delivery via send_message)
2026-05-13 10:40:58 +08:00
99a57a816a 增加LLM相关错误处理 2026-05-13 08:59:23 +08:00
3d42f22f83 fix(session): replace Mutex with task-local storage to prevent reentrant deadlock in send_message 2026-05-13 08:48:31 +08:00
ac2c1e0fe0 chore: fix clippy lints and suppress dead_code warnings 2026-05-10 23:26:55 +08:00
5ef89cd667 refactor: remove unused functions and improve path resolution in tools 2026-05-10 23:14:12 +08:00
c81b1e42c7 feat(skills): enhance SkillsLoader to support workspace skills directory and update skills loading logic
feat(get-skill): add action parameter for skill retrieval and implement skill listing functionality
fix(session): adjust skills prompt formatting for improved clarity
2026-05-10 17:45:34 +08:00
bafa7a606c fix: update database filename and improve session management in chat manager 2026-05-10 15:51:03 +08:00
8c0c76a232 fix(session): persist compression marker on retry, warn on storage/persist errors 2026-05-10 14:52:10 +08:00
3d29854079 feat(session): incremental recovery from storage using compressed timeline 2026-05-10 14:41:48 +08:00
e65130450e feat(compressor): return CompressionResult with created_timelines flag, record marker in handle_message and /compact 2026-05-10 14:40:13 +08:00
d022e30943 feat(storage): add last_compressed_message_at column to sessions table and Session struct 2026-05-10 14:35:21 +08:00