Repository navigation
Replies: 1 comment
|
你的排查结论完全正确,我把关键代码位置补上,并说明这条校验目前在启动路径上的行为。 1. 校验本身被调用于打开日志的两处( 2. "一个坏会话拖垮整个启动"这件事,已经动过一半当前树里有一条隔离行为: ⇒ 至少目录/子目录目录(catalog)层面已经会隔离并报出路径。但你遇到的是工作区会话扫描路径(报错来自 3. 你的两条诉求我建议这样提
顺带一句:你已经找到的手工解法(改写首帧 header 的 边界:读的是 |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
环境
pnpm dsh web)问题描述
我把一个项目目录从
E:\Users\<用户名>\Desktop\<项目>迁移到了E:\Code\Agent\<项目>。dsh 里没有把旧分区的会话迁移到新分区的功能,我又不想丢掉里面的会话记录,于是手动把C:\Users\<用户名>\.dsh\sessions下旧分区目录里的会话文件夹移动到了新分区目录。结果
dsh web每次启动都会直接崩溃:排查结论
崩溃来自
packages/session/session-persistence-jsonl的assertStoredIdentity:会话文件头里记录的
cwd必须与文件实际所在的存储目录一致,否则整个启动失败。分区目录名由
projectKey(cwd)编码生成,文件头才是会话归属的唯一事实来源,所以手动移动会话文件夹后身份校验必然失败。
另外这个校验是在启动时全量扫描会话库执行的,只要有一个会话损坏,整个 dsh 就起不来,没有跳过/隔离机制。
临时解决办法
我把每个
session.jsonl.zstd首帧里的 header 行cwd改写为新路径后恢复了正常,会话在新分区下完整可见。但普通用户不太可能自己做到这一步。
希望改进
All reactions