🎉 v1.0.32
中文
✨ 新功能
-
消息存储迁移至 pi JSONL 单一数据源: 将消息读写统一迁移到 pi 的 JSONL 条目存储,移除旧 SQLite 消息表、
MessageRow等大量死代码。新增entriesToMessages转换层,fork改为通过PiSessionManager.forkFrom线性化实现,并提供幂等的migrate-messages-to-jsonl回填脚本,历史数据可平滑迁移,存储逻辑更简单、更可靠。 -
历史助手消息支持 Fork 操作: 历史 AI 回复上新增 Fork 动作,方便基于旧消息派生新的对话分支。
-
升级 pi SDK 至 0.84.4: 底层 SDK 从 0.82.1 升至 0.84.4(pi-subagents 0.14.3 → 0.19.0),迁移
pi-tui的 TUI 类为TuiMainScreen,并接入新的SubagentWorkflow工具在聊天摘要中的归类与图标展示。
⚡ 性能
- 修复历史加载卡顿与滚动迟缓: 移除消息滚动容器上的 mask-image 渐隐效果——它迫使 Chromium 在每次滚动帧重新栅格化,拖垮合成器快速路径;同时为
MessageCard共享稳定的空数组常量,保住React.memo优化,历史卡片不再在每次流式 tick 与历史前插时重复渲染。
🔧 工程
- 版本号提升至 1.0.32。
English
✨ New Features
-
Migrate message storage to pi JSONL as single source of truth: Unified message read/write to pi's JSONL entry storage and removed the legacy SQLite message table,
MessageRow, and a large amount of dead code. Added theentriesToMessagesconversion layer, reimplemented fork viaPiSessionManager.forkFrom(linearized, no SQLite copy), and shipped an idempotentmigrate-messages-to-jsonlbackfill script for smooth historical-data migration — simpler and more reliable storage. -
Fork action on historical assistant messages: Added a Fork action to past AI replies, making it easy to branch a new conversation from an older message.
-
Upgrade pi SDK to 0.84.4: Bumped the underlying SDK from 0.82.1 to 0.84.4 (pi-subagents 0.14.3 → 0.19.0), migrated the pi-tui TUI class to
TuiMainScreen, and wired up the newSubagentWorkflowtool's grouping, icon, and copy in chat summaries.
⚡ Performance
- Fixed janky history load and slow scrolling: Removed the mask-image fade on the message scroll container — a mask on a scrollable element forces Chromium to re-rasterize every scroll frame, defeating the compositor fast path. Also shared stable empty-array constants for
MessageCardartifact/video props to preserveReact.memo, so historical cards no longer re-render on every streaming tick and history prepend.
🔧 Engineering
- Bumped version to 1.0.32.
38 files changed · +1416 −1869
Full Changelog: 1.0.31...1.0.32