Skip to content

v0.1.4

Choose a tag to compare

@notload notload released this 24 Aug 11:26
· 6 commits to main since this release

v0.1.4 性能与安全加固(issue #2 完整修复)

本轮完整落地 issue #2 的性能问题与代码审查建议。

性能:切换会话不再全量重放

  • 落盘索引:读取结果落盘到 $DSH_HOME/storages/session-toc/<id>.json,跨进程/重启秒开;persisted 会话按 revision(框架 stat 级变更 token)失效。
  • 进程内 LRU 缓存(上限 64 会话):命中直接返回已序列化 JSON。
  • live 会话增量失效:用 ctx.sessions 零 IO 比对 lastSeq,仅新消息追加时才重读。
  • 三层降频:进程内缓存 落盘索引 readSession 兜底。

安全加固

  • CORS 收敛:去掉 Access-Control-Allow-Origin: *,跨源读取由浏览器同源策略拦截。
  • 会话可见性鉴权:sessionId 需属于 live/persisted 可见列表,否则返回 SESSION_NOT_FOUND。
  • 输入校验:sessionId 长度/字符白名单校验。
  • 错误脱敏:错误响应不再回显内部错误详情。

其他

  • peerDependencies 补上 react-dom(client.js 使用了 createPortal)。
  • 测试扩展至 25 个,覆盖缓存、提取、内存稳态、readSession 频率、落盘索引、鉴权。

完整改动见 main 分支。