diff --git a/Cargo.lock b/Cargo.lock index 387400b..0a658d9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1728,7 +1728,7 @@ dependencies = [ [[package]] name = "picobot" -version = "0.4.3" +version = "0.4.4" dependencies = [ "anyhow", "async-trait", diff --git a/Cargo.toml b/Cargo.toml index 34b780c..4de191b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "picobot" -version = "0.4.3" +version = "0.4.4" edition = "2024" [lints.rust] diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index c89bd16..618816f 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -2,6 +2,38 @@ 本文件记录 Picobot 各版本的显著变更,遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/) 风格。 +## [0.4.4] - 2026-08-18 + +较 [0.4.3] 的 8 个 commit 迭代,聚焦 **全项目扫描修复**、**话题列表刷新提速** 与 **前端竞态与浮层修复** 三大方向。 + +### 性能优化 + +#### 话题列表刷新提速 +- token 统计改为增量维护列(`topics` 表新增统计列并由运行期增量归因),替代每次刷新的全表聚合,话题列表刷新显著变快;配套 129 行迁移与 262 行单测。 +- 新建/删除/重命名话题同样走 `spawn_blocking` 移出 async worker,与批量操作统一提速。 + +#### 日志降噪 +- 会话消息投递成功日志由 info 降级为 debug,减少高频运行时日志输出。 + +### 修复 + +#### 存储数据一致性(全项目扫描 F0) +- 修复外键约束失效根因:切换/删除话题与 http 清理路径补全被动删除(级联删除内存态与关联行),避免遗留孤立行导致外键约束在批量删除时触发失败。 +- 计数一致性:删除后按活 COUNT 重算 `sessions/topics` 的 `message_count`,新增 106 行回归单测覆盖。 + +#### 并发健壮性 +- bash 取消泄漏:取消时正确终止子进程并将运行中标记回收,避免 bash 工具取消后进程残留、占住资源。 +- 子代理队列阻塞:subagent 等待队列在取消/异常路径下正确清理,修复子代理完成通知丢失导致主代理等待队列长期阻塞。task runtime 重构 158 行并补充取消语义。 + +#### 前端竞态与浮层 +- `list_topics` / `switch_topic` 响应乱序覆盖:为话题列表与视图切换增加请求序号/响应对账,过期响应不再覆盖新状态,修复快速切换话题时列表与消息被旧响应覆盖。 +- 图片放大与工具详情浮层:修复被相邻内容覆盖及定位错乱问题(MessageBubble 图片放大、ToolDetailModal 浮层)。 + +#### 指标可观测 +- 初始化时即注册基线 counter,避免各指标启动后首次渲染为空、直到首个事件才出现。 + +--- + ## [0.4.3] - 2026-08-18 较 [0.4.2] 的 14 个 commit 迭代,聚焦 **长话题历史分页**、**全链路性能优化(两批)**、**长会话稳定性兜底** 与 **对抗性审查修复** 四大方向。