Replies: 2 comments 2 replies
|
这个形状(packed 行从已提交 seq 往回重叠一小截、后面连续到文件末尾)我们默认 不会自动吃掉重叠前缀再接上后缀——那是发明「哪一段是真的」。当前 repair 在认不出崩溃恢复闭包时,仍裁到第一个 committed 缺口前的完整 dsh-session-surgeon 的 inspect 现在会保留 overflow(缺口后的行),dry-run 能看到会丢掉多少。你这种「只丢 2 条重复、保住 52 万后续」的手工选边,请先备份、用你 fork 里已经验证过的路径;不要对同一文件连 apply 两次。 dsh plugin --profile web add "github:xiaoshenming/dsh-session-surgeon#main" |
0 replies
|
补一刀:这个形状现在默认会修。 packed 行从已提交 seq 往回重叠、但连续接到当前游标时(你写的 已推到 dsh plugin --profile web add "github:xiaoshenming/dsh-session-surgeon#main"不要对已经手工改过、又被第二个写者追加的文件连 apply 两次。健康会话点 repair 仍然不改字节。 |
2 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.
We observed a persisted Zstandard JSONL session that could not resume. The surfaced error was
complete frame contains a torn JSONL record, but byte-level inspection showed all 20,581 Zstd frames were complete and the plaintext ended on a newline.The actual first invalid decoded range was:
seq: 106277tool-call-chunksrow decoded toseq: 106276..106320106276..106277overlapped;106278..106320was the valid continuationseq: 522302/turn/endA manual recovery backed up the original artifact, decoded packed storage rows, discarded only the two-event duplicated prefix, rebuilt the Zstandard log, and verified 522,303 contiguous events (
0..522302).Proposed conservative behavior: when a decoded storage row starts before the current sequence cursor but reaches it contiguously, discard only the already committed prefix and consume the remaining suffix. Continue rejecting gaps and non-contiguous overlaps. This makes replayed packed appends idempotent without masking arbitrary corruption.
A tested fork implementation is available at cloga#13 and is tracked at cloga/dsh-windows-ops#38. Focused JSONL/Zstd tests pass (236 tests) and the host build/typecheck passes.
All reactions