Repository navigation
v0.1.4
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 分支。