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
2558d6dae1
优化代码格式,调整断言和格式化共享日历事件输出
2026-06-17 22:40:43 +08:00
fe2bc3dfd3
更新版本号至1.1.2,优化Dockerfile中的himalaya安装方式,调整内容块构建逻辑以保留文本,增强Feishu通道的媒体处理,新增交互式消息设计文档
2026-06-17 22:22:41 +08:00
e707774175
清理代码问题
2026-06-16 22:56:01 +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
014538eedc
feat(tools): add PtyTool with PtyManager for persistent PTY sessions
2026-05-29 17:03:19 +08:00
3df628bd28
补充/info信息
2026-05-29 16:23:35 +08:00
ea1338c94f
优化子agent提示词
2026-05-29 11:22:48 +08:00
b89dce013c
修改版本号。
2026-05-25 23:25:58 +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
b84c6f85db
优化浏览器工具
2026-05-24 16:36:11 +08:00
b85578a7d2
新增浏览器调用能力。
2026-05-21 17:11:53 +08:00
2f11aed44a
feat(skills): add built-in skill packaging mechanism and about-picobot documentation
...
- Add build.rs: scan resources/skills/, compress each with tar+zstd, embed via include_bytes!
- Add src/skills/builtin.rs: runtime auto-install built-in skills to ~/.picobot/skills/
- Add about-picobot built-in skill: SKILL.md index + references/ (config, db-schema, architecture, faq, commands) + assets/config.example.json
- Update skill loading: reverse priority (agents < picobot < workspace), deduplicate by name
- Update skills prompt: re-query get_skill when user asks about installed skills
- Change max_tool_iterations default from 20 to 99
2026-05-15 12:00:18 +08:00
7a30848f65
修改skill加载机制
2026-05-15 10:39:35 +08:00
c92b07f2c6
fix(dependencies): update reqwest, regex, tokio, uuid, cron, ratatui, crossterm, hostname, and which versions; improve input area cursor positioning
2026-05-13 22:51:16 +08:00
db24d42076
feat(file_read): enhance file reading with encoding detection and support for binary files
2026-05-13 22:43:03 +08:00
1a3cfbb0af
系统提示词优化
2026-05-13 18:31:23 +08:00
2bff987be1
飞书渠道简化
2026-05-13 18:07:34 +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
1e69fa3bd1
feat: enhance memory section guide and improve search tool descriptions for clarity
2026-05-11 18:01:25 +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
5aec8cefb9
feat: add config.example.json template and update AGENTS.md with new config path
2026-05-10 18:45:53 +08:00
a479b92cdf
feat(tools): add ContentSearchTool and FileSearchTool for enhanced file and content searching capabilities
2026-05-10 18:32:35 +08:00
af07eaf820
feat: add default AGENTS.md and USER.md templates and ensure their presence in the user's config directory
2026-05-10 18:07:50 +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
11a8e93b77
feat(chat-manager): enhance message retrieval with pagination and time range filtering
2026-05-10 15:12:30 +08:00
8c0c76a232
fix(session): persist compression marker on retry, warn on storage/persist errors
2026-05-10 14:52:10 +08:00
25d37bcdc1
feat(system-prompt): add history section prompting agent to use timeline_recall
2026-05-10 14:46:20 +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
29543444da
feat(storage): add load_messages_after_timestamp, load_session_timelines, get_max_message_seq
2026-05-10 14:36:40 +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
cb1140e9be
refactor(memory): Timeline 按 session 隔离,拆分知识/摘要检索工具
...
- storage/memory: search_memories 和 search_memories_by_time 增加 session_id 过滤参数
- memory/manager: recall/recall_by_time 透传 session_id
- tools: MemoryStoreTool/MemoryRecallTool 锁定 Knowledge 类别,移除 category 参数
- tools: 新增 TimelineRecallTool 用于检索会话摘要,支持可选 session_id 过滤
- tools: 输出格式化增加 session 信息显示
- tests: 新增 test_session_id_filter 验证会话级过滤
2026-05-10 13:35:21 +08:00
f9ae4b2c69
fix(context): 全面修复和增强上下文压缩机制
...
Bug修复:
- fast_trim 死代码: 去掉 .clone() 使其真正修改原 history
- compress_once 边界错误: 第一条 user 重复 + 最后一条 user 丢失
- handle_cron_message 遗留的重复压缩调用
新特性:
- System prompt 不参与压缩,在压缩后注入
- 孤儿 tool 清理: compress_once 返回前修复 tool 对完整性
- Agent Loop 内每轮 token 检查: 80% 窗口阈值时预裁剪旧 tool 输出
- 上下文溢出恢复: 解析 LLM 错误中的实际 token limit 并降级重试
- 硬截断降级: tokens > 90% context_window 时 head+tail 保底
- parse_context_limit_from_error: 支持 OpenAI/Anthropic/llama.cpp 格式
测试: 新增 6 个单元测试覆盖上述所有场景
2026-05-10 12:23:26 +08:00
488e10dceb
fix: advance last_consolidated_at after compression, update docs
2026-05-08 21:56:05 +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