v0.6.4 — 会话归属正确 + 零拷贝哈希校验
把本地自 v0.6.3 以来的修复合并为一次发布。
附件会话归属(修复「附件跑到别的对话框」)
- 文本/文档卡片的归属改按 shell 当前会话解析(sessions.list 快照的 current,
与浏览器标题同源):按钮路径用按钮自身 sessionId,拖放/粘贴用当前会话,
插槽单例仅作最后兜底——chips 打标、合并/移除、cwd、零拷贝、上下文预算
全部跟随同一解析 - 转换图片在合成 drop 前等待当前会话空闲(input phase 为 adjudicating/
submitting 视为忙,最多 15s),不再因「当前会话忙时拒绝、其它空闲会话
接住」而流到别的对话;README 补充多会话并存的 Harness 原生限制
工作区零拷贝同源校验
- 不再把「文件名+字节数」当作同源:浏览器本地读文件计算完整 SHA-256,
host 在 name+size 候选上逐字节比对哈希才返回引用;无哈希直接拒绝判定——
同名同大小的不同内容不再被静默替换 - 512KB~16MB 尝试零拷贝;>16MB 明确拒绝(产品边界,README 如实标注)
缓存与 INDEX
- INDEX.md 单元格转义(管道符/反斜杠/换行),文件名不再炸裂表格
- INDEX 重建按工作区串行化(per-root async queue),并发写请求不再互相覆盖
- 缓存命中回传 sourceCharCount/sourceLineCount:命中与重新转换的响应 shape
一致(cache-transparent) - legacy Office(.doc/.xls/.ppt)manifest 直接标注 libreoffice+builtin 引擎,
/attach list 等读 manifest 的口径一致
门禁
- 新增冒烟:SHA-256 同源命中/同名同大小内容区分/无哈希拒绝、INDEX 转义、
缓存命中保留 source 口径、会话路由(切到其它会话后 Enter 不合并本会话芯片) - CI(Node 20/22,actions v7)全绿