Replies: 2 comments
|
你的根因分析( 关键事实:没有 0.1.2 发布线 carry 过 v2我把所有 0.1.2 出的 tag 的
没有一个 0.1.2 发布 tag 是 v2。 v2 是 PR #2663( 这改变了什么
建议这大概率不是「released-data 回归」, 而是「从开发中间态构建的会话被 0.1.3 拒收」。两种处理路径都值得 maintainer 定夺:
一个可证伪的验证点: 你在 0.1.2-rc.1 下
|
|
你的根因分析( 关键事实:没有 0.1.2 发布线 carry 过 v2我把所有 0.1.2 出的 tag 的
没有一个 0.1.2 发布 tag 是 v2。 v2 是 PR #2663( 这改变了什么
建议这大概率不是「released-data 回归」, 而是「从开发中间态构建的会话被 0.1.3 拒收」。两种处理路径都值得 maintainer 定夺:
一个可证伪的验证点: 你在 0.1.2-rc.1 下
|
Uh oh!
There was an error while loading. Please reload this page.
Environment
npx @deepseek-ai/dsh webWhat happened
After upgrading, every old session that contains a subagent child (created by the
0.1.2-era build) fails to open / continue — the composer stays locked and the
migration fails with:
Old sessions without subagent descriptors open and migrate fine.
Root cause (from source inspection)
packages/session/session-format-v0-to-v1/src/validation.ts(
assertReleasedEventPayload) requiressubagent/descriptorin a v0 log to haveversion === 3, otherwise it throwsSessionFormatUnsupportedMigrationError:But builds from before PR #2663 (2026-08-24) wrote
SUBAGENT_DESCRIPTOR_VERSION = 2,so real v0 logs written by the 0.1.2-era release legitimately contain descriptor
version 2. The v1 validation path tolerates other versions (
return), while the v0path hard-refuses, breaking migration for the whole session.
Workaround
For each affected
session.jsonl.zstd, change thesubagent/descriptorevent'sdata.versionfrom2to3(the v2 payload shape is already v3-compatible).After that, the shipped migration chain (v0→v1→v2) completes and validates cleanly.
I verified all 9 affected sessions on my machine this way.
Suggestion
Either (a) tolerate descriptor version 2 in v0 logs like the v1 path does, or
(b) normalize descriptor 2→3 inside the v0→v1 edge when the payload shape is
compatible. Thanks!
All reactions