Repository navigation
Replies: 1 comment
|
补充同类现象,rc.3 上仍可复现,并带来一个原帖没提到的后果:设置里的"子 Agent 模型选择"会静默失效。 环境
复现
会话头 附加后果:子 Agent 模型选择设置不生效工作区配置里
对照:同一工作区几天前真正新建的一条会话( 根因补充(
|
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.
环境
332895e0f7c9d4dbfb29729f5eb367fa263ff986)~/.dsh/sessions/<workspace>/<session-id>/session.v4.jsonl.zstd(zstd 多帧 JSONL)现象
/image命令生成的图片卡片,新消息被追加在它后面。复现(本机实测,日志可查)
/image agnes 2k 16:9 生成一个变形金刚大战孙悟空建过一条会话session-3316db88-…,日志里只有command/run+command/done,没有 turn。即:新建会话并没有新建,而是把这条旧会话当成"空白会话"复用并 seed 了。
根因
1.
blank的判定是「折叠后没有 turn」,不是「没有内容」所以任何「发过消息 / 跑过命令,但没形成 turn」的会话——斜杠命令会话、被打断的首条消息、命令失败——都会永久算 blank。本机实测:
/image会话(command/run+command/done)和只有一条user/message的会话,sessionListMetadata都是:{"blank": true, "lastPromptAt": …}2. 新建会话时直接复用任意一条 blank
3. Host 收到带
sessionId的 create 时,把已有日志当成 seed 继续写(session/end-seed),旧内容就出现在"新"会话里。更严重的后果:一条坏会话会让「新建会话」整体失败
被复用的 blank 会话如果日志校验不过,创建直接抛错,而不是跳过它:
本机实际遇到:一条 10-20(旧版本)的
/image会话,user/message事件没有data.id,而当前版本assertMessageEventShape()要求每条 message 必须有id。结果完全无法新建会话,只能手工修日志或删会话才恢复。建议
blank改成「日志为空」:只有 header + 默认初始化事件(permission/preset、sandbox/mode、approval/policy)才算 blank,或至少把含user/message/command/run的会话排除;refreshProjections()现在只在restoreBlank分支调用,普通新建用的是可能过期的 cached hint;附:清理方法(给遇到同样问题的人)
(本次是通过脚本解压 zstd 帧后检查
turn/start事件定位的;删掉这些会话后新建会话恢复空白。)All reactions