Repository navigation
Pi-Remote v2.1.1
2.1.1 — 存储与打开性能修复
没有新功能,专治两个老毛病:大会话打开卡死、日志文件越长越难收拾。升级后 relay 首次启动会自动把既有日志迁移到新结构,数据不丢、过程可重入。
改了什么
- 打开大会话不再冻结:首次打开改为后台异步分块建索引,打开调用毫秒级返回;索引期间新到的消息按序排队、落地后按真实锚点补入,不丢不乱序。此前上百 MB 的房间打开一次会把整个 relay 冻住数百毫秒。
- 日志分段与分组:一场对话默认仍是一个文件,写满 8MB 后封存为带序号的段文件(
.0001.jsonl递增)续写新段,一条记录不跨段。对话日志按data/rooms/<设备>/<工作区>/<会话>两级分组存放,按设备/项目查看、备份、清理都以文件夹为单位。 - 清单索引:每场对话一份
.index.json,封存段的索引随段落盘——冷打开只现扫仍在写的尾段:110MB / 14 段的房间实测约 30ms 完成索引(此前约 0.7 秒且伴随冻结),封存段读取 0 字节。清单缺失或与段文件对不上时自动全量重扫重建,不报错。 - 单房总量上限(256MB)改为按全部段总和计算,到顶行为不变。
完整记录见仓库内 CHANGELOG.md。
Storage & open-performance fixes. First open of a large room no longer blocks the event loop: indexing is now asynchronous and chunked, with messages arriving during indexing journaled and replayed in order. Room logs are grouped by device/workspace, roll into 8 MB sealed segments, and carry a persisted manifest index, so a 110 MB room cold-opens in ~30 ms with zero reads of sealed segments. Existing logs migrate automatically on first start; a missing or stale manifest is rebuilt by rescanning. See CHANGELOG.md.