Repository navigation
Replies: 1 comment
|
你报的这两条形状我们一直在覆盖(#6151 / #6175 / #6189 / #6194 那一族),可以给你已经量过的结论,省得你在 fork 里重做一遍归一化。 1. 2. 一条你可能还没量到的爆炸半径(我们在 #7995 上实测的): 边界(我们刻意不碰的):未知事件类型(如 和你的补丁的关系:你的是写侧/编解码侧的历史归一化(让以后不再产生这种工件),我们的是离线工件修复(已经落盘的救回来)。两者互补,不冲突 —— 你已经有的那 42 条会话,不用等新版本也能开。 安装/更新:桌面端「插件」页 → dsh-session-surgeon → 更新; |
Uh oh!
There was an error while loading. Please reload this page.
Two released v0 writers stamped payloads the frozen v0 codec refuses, so their sessions cannot be observed by any current dsh — the web gateway reports
Failed to load historyand resuming refuses before any turn runs.1.
permission/preset.origin@deepseek-ai/dsh-permission-presets@0.1.1-rc.1wrotepermission/presetdata as{ preset, origin }withorigin ∈ {default, inferred, selection}.0.1.1-rc.2removedoriginand no later format carries it. The frozen v0 disposition isrequired: ['preset'], so the v0→v1 edge throws:2.
subagent/descriptorversion 2@deepseek-ai/dsh-subagent0.0.1-rc.3through0.1.1-rc.2stampedsubagent/descriptorversion: 2;0.1.2-rc.1raised it to3. The v0 edge refuses version 2 (unsupported descriptor version 2), so child sessions fail to restore and a parent's catalog degrades those children to unavailable.Reproduction
A store written by
0.1.1-rc.1reproduced both: 15 top-level sessions and 27 child sessions refuse exactly as above. The largest parent holds 36,642 events (99,074 physical rows) and 24 children; every one of them was unreadable.Patch
I have a branch in my fork that adds two bounded historical normalizers beside the existing
request/header.header.messagePrefixremoval, both applied beforeassertReleasedEventPayloadso the normal outcome validation still runs:permission/preset— drop the retiredoriginmember. Effective permission is folded frompresetplussandbox/modeandapproval/policy;originwas consumed only by the blank-session default-reuse path, which no later format has, and the affected sessions are non-blank.presetand every other fact are preserved.subagent/descriptor— advanceversion: 2to3. Version 3's schema is a superset that adds only the optionalagentReasoningEffort, and the v3→v4 catalog interpreter already admits descriptor versions1..3. The advanced marker is validated under the existing version 3 semantics, so a payload that version 2 accepted without a label still refuses.A member no released writer produced still refuses; added negative cases cover that.
Branch:
mcknicks/deepseek-harness→fix/v0-legacy-writer-variants(single commit). Since this repository does not accept external pull requests, this discussion is the report.Verification
packages/session/session-format-v0-to-v1: 113/113 tests pass, including two new cases.v1-to-v2145/145,v2-to-v3519/519,v3-to-v4388/388 pass.dsh --profile headless --session-idresume loads the history through the production persistence stack.Workaround for owners of affected stores
Until a release carries the normalizers, the two members can be removed from the stored v0 JSONL: strip
data.originfrompermission/presetevents and setdata.versionto3onsubagent/descriptorevents with version 2. Keep the originals, and note thatdsh-session-persistence-jsonlrequires the first Zstandard frame to contain exactly the header line and every later frame to end on a record boundary, so a repair must preserve or rebuild the frame layout, not recompress the whole file as one frame.All reactions