oudecheng
725efe3f85
docs(changelog): 0.4.3 补充 fix(chat) 滚动位置修复并修正 commit 数量为 14
2026-08-18 15:37:35 +08:00
oudecheng
3cef9da443
chore(release): 0.4.3——max_run_secs 默认改为不限制
...
max_run_secs 默认值由 3600(60 分钟)改为 0(不限制),避免长任务被单次执行时间上限中断;需要时可在 config.json 的 agents 段显式配置。同步版本号提升至 0.4.3 并更新 CHANGELOG。
2026-08-18 15:35:22 +08:00
oudecheng
8a4799656c
chore: 升级版本号至 0.4.2 并更新 CHANGELOG
2026-08-17 09:59:56 +08:00
oudecheng
867b7df409
chore: 升级版本号至 0.4.1 并更新 CHANGELOG
2026-08-16 14:04:52 +08:00
oudecheng
2dead61697
chore: 升级版本号至 0.4.0 并更新 CHANGELOG
2026-08-13 23:20:44 +08:00
oudecheng
f05f09b636
docs: 异步子代理设计文档
...
记录 v8 设计方案的三个核心不变量、wait 模式、取消机制与崩溃恢复策略
2026-08-13 22:13:00 +08:00
oudecheng
e0313ab8f3
fix: 增强 panic 安全与计算器健壮性
...
- agent_loop/processor: catch_unwind 隔离 panic,防止消息静默丢失
- calculator: 拒绝 NaN/Infinity 输入,修复阶乘溢出(上限 34),拒绝非有限表达式结果
- message: 修复 sanitize 两阶段删除索引未排序导致的越界 panic
- utils: 新增 panic_payload_message 提取可读 panic 消息
- .gitignore: 忽略 artifacts/ 测试产物目录
2026-08-13 08:38:36 +08:00
oudecheng
a9ce308c05
fix(web): 移除 ChatContainer 的 key remount,修复新建话题列表刷新延迟
...
话题切换时 key={selectedTopic} 导致整个 ChatContainer 子树卸载重建,
触发 ExpertSelector/ModelSelector 重新挂载并发起 3 次冗余 HTTP 请求
(getSelectedExpert/listModelOptions/模型选择刷新),引入 200-500ms 延迟。
改用 topicId prop 透传话题 ID:
- App.tsx: 移除 key,viewKey 纳入 selectedTopic 保持各话题独立滚动位置
- ChatContainer: 新增 topicId prop 透传给 MessageInput
- MessageInput: 监听 topicId 变化清空草稿,替代原 key remount 重置机制
2026-08-12 09:16:38 +08:00
oudecheng
3910bc324b
chore: 升级版本号至 0.3.5 并更新 CHANGELOG
2026-08-12 08:39:40 +08:00
oudecheng
da62905505
chore: 升级版本号至 0.3.3 并更新 CHANGELOG
2026-08-07 11:55:59 +08:00
oudecheng
03be2ef5bc
chore: remove optimization plan doc from repo
2026-08-07 08:34:39 +08:00
oudecheng
510520e08e
refactor: 提取公共工具函数,修复飞书正则重复编译和网关路由DRY问题,添加CI安全审计
2026-08-07 08:33:15 +08:00
oudecheng
3abd22ddf4
chore: 升级版本号至 0.3.2 并更新 CHANGELOG
...
Cargo.toml: 0.3.1 → 0.3.2
CHANGELOG: 新增 0.3.2 条目,涵盖 7 个 commit 的变更:
- 压缩算法关键参数暴露到设置页面
- HTTP API 认证与 CORS 防护
- 上下文压缩重构为两阶段+双阈值+三段保留
- 迁移 parking_lot 锁并优化阻塞 IO
- 修复子智能体任务状态卡死、飞书消息丢失、防御性错误处理
2026-08-06 17:51:15 +08:00
oudecheng
bc26c66169
chore: 升级版本号至 0.3.1 并更新 CHANGELOG
...
收录自 0.3.0 以来 19 个 commit 的变更,涵盖五大方向:
- 历史压缩保留原消息(双视图分离)
- Topic 维度 token 统计
- 前端渲染稳定性修复
- 工具执行可靠性修复
- 网关吞吐与存储查询优化
2026-08-05 12:56:58 +08:00
oudecheng
134aa073d5
docs: CHANGELOG 补充 LLM 重试机制条目并修正 commit 计数
2026-08-04 13:10:59 +08:00
oudecheng
457f6b2408
feat(retry): 为 LLM 主调用添加可配置重试机制,默认 3 次
...
- config: ProviderConfig 增加 max_retries 字段(serde default=3,向后兼容)
- config: LLMProviderConfig 透传 max_retries,不进 ProviderRuntimeConfig(保持 provider 构造包纯净)
- agent: AgentRuntimeConfig 增加 max_retries,归属 agent 行为层
- agent_loop: 流式 + summary 两个调用点实现重试循环
- 指数退避 1s/2s/4s,仅对 429/502/503/504/timeout/connection reset 重试
- 流式仅在未 emit delta 时重试(AtomicBool 跟踪),避免重复输出
- 退避 sleep 期间响应 cancel_signal,取消优先
- 前端: ProviderConfig 类型和表单增加 max_retries 字段
- 测试: 7 个单元测试(3 判定 + 4 行为),540 个 lib 测试全绿
2026-08-04 12:53:33 +08:00
oudecheng
14d903e067
fix: Agent 执行与显示层解耦,修复锁屏冻结根因
...
浏览器锁屏导致 WebSocket 半死,ws_sender.send().await 永久阻塞,
级联阻塞 dispatcher → MessageBus → Agent Loop,后端停止执行直到解锁。
基于第一性原理建立"执行-显示解耦"原则:agent 执行只依赖 SQLite
持久化,实时广播是可丢弃的最佳努力通道。
核心改动:
- MessageBus::publish_outbound 由 send().await 改为 try_send(),
bus 满时丢弃消息并告警,agent 不再被显示层阻塞
- WebSocket writer task 包裹 30s 超时,使用每连接独立的
CancellationToken(非共享 CliChannel 级 token),避免一个连接
超时关闭所有连接;writer 退出时 cancel 通知主 loop 退出
- CliChannel::send 由 send().await 改为 try_send(),避免 dispatcher
单线程被卡住的 writer 阻塞 37s
- 全仓 13 处 publish_outbound 调用统一区分 Dropped(warn)/Closed(error)
- scheduler 3 处 ? 改为 warn,避免 Dropped 触发 misfire 重试风暴
- 前端 WebSocket 添加 25s ping + 指数退避重连(3s→60s封顶)
- 前端 session_list 区分重连恢复/首次连接,重连时保留 messages
并刷新 topic 列表
经五轮对抗性审查验证,修复了共享 cancel token、dispatcher 阻塞、
load_chat_messages 跨 topic 污染、原 session 删除后状态不一致等
回归问题。
同时升级版本号至 0.3.0 并更新 CHANGELOG。
验证:cargo clippy --all-targets --all-features ✓
npm run build ✓ | useChat.test.ts 13 passed ✓
2026-08-04 10:55:52 +08:00
oudecheng
f8e1f3c2eb
chore: bump 版本至 0.2.0 并新增 CHANGELOG
...
- Cargo.toml / Cargo.lock: 0.1.2 → 0.2.0
- 新增 docs/CHANGELOG.md,记录 0.2.0 相对 0.1.2 的 47 个 commit 迭代内容,
按新增功能/性能优化/修复/重构/内部改进分类,涵盖四大方向:
CapabilityPolicy 统一策略模型、专家/子代理模型独立配置、
话题级并发隔离、Agent Loop 性能优化
2026-07-31 08:28:36 +08:00
b6f2de053d
refactor: 移除会话重置逻辑中的 reset_cutoff_seq 字段,优化会话管理和历史压缩逻辑
2026-05-23 18:38:34 +08:00
f3f369b329
feat: add llm_timeout_secs to provider configuration and implement timeout handling
...
- Introduced llm_timeout_secs in ProviderConfig and LLMProviderConfig to specify timeout for LLM requests.
- Updated OpenAIProvider and AnthropicProvider to utilize the timeout setting when creating HTTP clients.
- Enhanced error handling for API responses to include timeout information.
- Modified SessionManager to support agent-specific provider configurations, allowing for more flexible agent management.
- Added tests to verify the correct behavior of timeout settings and agent task validation.
2026-04-23 09:23:15 +08:00
1ffdcab585
feat(scheduler): 添加 agent_task 类型支持,扩展任务调度功能
2026-04-23 08:45:32 +08:00
a3ae8acde5
feat: add DB-backed scheduler for heartbeat, delayed jobs, interval jobs, and cron jobs
...
- Add scheduler module with SQLite persistence
- Support schedule types: delay, interval, at, cron
- Support job kinds: internal_event, outbound_message
- Add scheduler_manage tool for runtime management
- Add session_cleanup internal event for expired sessions
- Update memory tool usage prompt for better context awareness
- Add chrono and cron dependencies
2026-04-22 20:32:18 +08:00
0dfa615ca9
feat(agent_profile): 实现代理配置文件的注入与周期性重注入机制
2026-04-22 09:45:19 +08:00
0c724e37bb
feat: add runtime skill management and persistence
2026-04-21 18:21:14 +08:00