chore: 升级版本号至 0.3.3 并更新 CHANGELOG
This commit is contained in:
parent
79d099a3bc
commit
da62905505
@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "picobot"
|
||||
version = "0.3.2"
|
||||
version = "0.3.3"
|
||||
edition = "2024"
|
||||
|
||||
[lints.rust]
|
||||
|
||||
@ -2,6 +2,74 @@
|
||||
|
||||
本文件记录 Picobot 各版本的显著变更,遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/) 风格。
|
||||
|
||||
## [0.3.3] - 2026-08-07
|
||||
|
||||
较 [0.3.2] 的 12 个 commit 迭代,聚焦 **前端渲染性能飞跃**、**流式通信健壮性** 与 **代码质量治理** 三大方向。
|
||||
|
||||
### 新增功能
|
||||
|
||||
#### 执行状态对账端点
|
||||
- 新增 `GET /api/executions` HTTP 端点,返回后端权威的执行中话题集合。前端 WebSocket 重连时调用此端点对账,修正断连期间丢失的 `execution_completed` 信号导致的状态漂移。
|
||||
|
||||
### 性能优化
|
||||
|
||||
#### 消息列表虚拟化(长对话不再卡顿)
|
||||
- 引入 `@tanstack/react-virtual` 替换原 `messages.map` 全量渲染,只渲染视口内 + overscan=6 条消息,DOM 节点数恒定。
|
||||
- `measureElement` 动态测量变高度消息(一行文本 vs 50 行代码块),`estimateSize=120` 提供初始估计,测量后自动校正。
|
||||
- Firefox 特殊处理 `measureElement`(`getBoundingClientRect`)。
|
||||
- 适配现有功能:自动滚到底部改用 `virtualizer.scrollToIndex`;`viewKey` 滚动位置记忆保留;`highlightedMessageId` 先渲染目标项再 rAF 加 class;流式 delta 不计数(消息条数不变)。
|
||||
- 性能对比(500 条消息):DOM 节点 10000+ → ~200;首次渲染数百 ms → <16ms;流式 diff 从全量列表降至仅可见项。
|
||||
|
||||
#### 流式 delta 批处理(避免每 token 全数组拷贝)
|
||||
- 用 `streamingRef` 累加 delta chunks + `requestAnimationFrame` 批量 flush,将每秒数十次 O(n) 数组拷贝合并为一帧一次状态更新。
|
||||
- `useMessages.ts` 新增 `streamingRef` 累加器 + rAF 调度,所有 delta 只 push 到 ref,由 `flushStreaming` 批量落盘。
|
||||
- `useChat.ts` 5 处 `setMessages([])` 改为 `clearMessages()`,切话题/会话/通道时重置流式 ref,避免脏状态残留。
|
||||
- 复杂度:O(n²·L) → O(n) 每帧。
|
||||
|
||||
### 改进
|
||||
|
||||
#### 压缩阈值默认值下调
|
||||
- 工程化压缩阈值 `threshold_ratio` 从 0.7 下调至 0.5(50%),LLM 压缩阈值 `llm_compaction_threshold_ratio` 从 0.5 下调至 0.3(30%)。
|
||||
- 降低触发门槛使压缩更积极介入,减少上下文溢出风险。同步更新相关注释、日志信息和前端 hint 文案。
|
||||
|
||||
### 修复
|
||||
|
||||
#### 输入框/发送按钮状态按话题隔离
|
||||
- 将单一全局 `isLoading` 布尔值重构为按 `topic_id` 跟踪的 `processingTopicIds` 集合,`isLoading` 派生自当前选中话题是否在集合中。
|
||||
- 导航响应不再清空处理状态,切换话题后切回原话题仍能正确禁用输入。
|
||||
- 重连时通过 `/api/executions` 端点对账后端权威执行状态,修正断连期间丢失的 `execution_completed` 信号。
|
||||
|
||||
#### WebSocket 断连时清理流式状态
|
||||
- 修复 WebSocket 在流式输出中途断连时 `streamingRef`(contentChunks/index)不重置,导致重连后新消息 delta 追加到旧消息错误位置。
|
||||
- 修复链路:`useWebSocket` 的 `onDisconnect` 回调 → `useChat` 的 `finishStreaming` → `useMessages` 的 `finishStreaming`(重置 ref + flush pending chunks)。
|
||||
|
||||
#### 会话消息泄露到定时任务视图
|
||||
- `handleSchedulerMessage`(Tier 1 路由)原先无条件吞掉所有可转换的 chat 消息,导致正在执行的实时消息被错误追加到调度器视图。
|
||||
- 修复:调度器视图只接收不带 `topic_id` 的历史加载消息;实时流式消息和带 `topic_id` 的实时消息 fall through 到主视图。
|
||||
|
||||
### 重构
|
||||
|
||||
#### 公共工具函数提取与 DRY
|
||||
- 提取 `src/utils.rs` 公共工具函数模块,消除跨模块重复逻辑。
|
||||
- 修复飞书 channel 正则表达式重复编译问题,改为 `Lazy<Regex>` 一次编译。
|
||||
- 网关路由逻辑 DRY 化,减少 `gateway/mod.rs` 重复代码。
|
||||
- `agent_loop` / `providers` / `config` / `storage` 等多模块统一引用公共函数,20 个文件受影响。
|
||||
- CI 新增安全审计步骤(`cargo audit`)。
|
||||
|
||||
### 内部改进
|
||||
- 存储模块应用 `rustfmt` 格式化(`migrations.rs` / `row_mapping.rs` / `tests.rs`)。
|
||||
- 降低 `list_todos` handler 与 gateway 转发日志级别为 debug,减少子代理多次更新待办时的 INFO 日志噪音。
|
||||
- 删除临时优化计划文件 `OPTIMIZATION_PLAN.md`。
|
||||
|
||||
### 测试
|
||||
- 新增 MessageList 虚拟化对抗性 smoke test(5 个用例):空消息渲染、100 条消息不崩溃、highlight 视口外不崩溃、viewKey 切换不崩溃、流式 rerender 不崩溃。
|
||||
- 新增流式断连对抗性测试(2 个用例):`stream_end` 幂等性验证、多周期断连-重连循环下 `finishStreaming` 幂等验证。
|
||||
- 新增断连后新 delta 不污染旧消息测试(用例 17)。
|
||||
- 新增定时任务视图消息隔离测试(用例 16)。
|
||||
- 新增批量 delta 累加与 `stream_end` 后 `assistant_response` 替换对抗性测试。
|
||||
|
||||
---
|
||||
|
||||
## [0.3.2] - 2026-08-06
|
||||
|
||||
较 [0.3.1] 的 7 个 commit 迭代,聚焦 **上下文压缩可配置化**、**网关安全加固**、**并发模型优化** 与 **错误防御性提升** 四大方向。
|
||||
@ -312,6 +380,8 @@
|
||||
- 前端静态文件嵌入二进制。
|
||||
- React Web UI 前端界面。
|
||||
|
||||
[0.3.3]: https://github.com/picobot/picobot/compare/v0.3.2...v0.3.3
|
||||
[0.3.2]: https://github.com/picobot/picobot/compare/v0.3.1...v0.3.2
|
||||
[0.3.1]: https://github.com/picobot/picobot/compare/v0.3.0...v0.3.1
|
||||
[0.3.0]: https://github.com/picobot/picobot/compare/v0.2.0...v0.3.0
|
||||
[0.2.0]: https://github.com/picobot/picobot/compare/v0.1.2...v0.2.0
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user