Replies: 2 comments
|
I checked all five against the source. They hold — and there is one detail that matters for the fix: they do not live at the same stage.
Four of the five sit on the v0→v1 edge. So the normalization you propose — unknown source kind → Upstream status: none of these have changed on One policy note that may help your Ask land: the refusal is deliberate rather than incidental.
Your Ask is exactly the input that line is inviting. Naming which of those three options you would pick would probably carry further than the mechanism alone. |
|
Data point (2026-09-15): on the same install described in #6045, 104 of 393 sessions fail with
|
Uh oh!
There was an error while loading. Please reload this page.
Environment: dsh web 0.1.5-rc.2 (Node 22), macOS. Sessions written by older hosts (v0 artifacts, up to ~0.1.2 era) with third-party community plugins installed (at-file, mnemon, a custom attack-atlas build, a results panel plugin).
Symptom: opening history fails with
and, for other sessions, sibling errors from the same migration chain.
Root cause: the v0→v3 migration chain in
@deepseek-ai/dsh-session-persistence-jsonlrefuses (correctly refusing to touch data) historical events written by pluginagent/inboxinjections that older hosts accepted. Across 331 local v0 sessions I hit five distinct refusals:source summary requires notice form— plugin message source{kind:"plugin", form:"instructions", summary:"..."}(summary requiresform:"notice").cannot safely transform unclassified message source— source kinds outside the v3 SOURCE_KINDS whitelist (e.g.at-file-mention).subagent/descriptor N uses unsupported descriptor version 2— descriptors withversion:2whose fields are otherwise v3-compatible.agent/inbox/spliced ... inserted message lacks required member "role"— spliced injected messages missingrole.inserted message content must be an array— spliced content written as a bare string.Ask: consider making the v0→v3 migration chain safely degrade these legacy plugin-injection shapes instead of refusing (e.g. normalize unknown source kinds to
plugin, dropsummarywhen form≠notice, accept descriptor v2 fields as v3, backfillrole:"user"and wrap string content). Right now a host upgrade silently bricks history loading for any workspace that used community plugins, and the only recovery is hand-editing zstd session artifacts.Workaround applied locally: I rewrote the offending fields in-place across all sessions (full backup kept, per-file trash, then re-verified every artifact through
JsonlSessionPersistence.open()+read()— 331/331 now migrate). Happy to share the normalization script if useful.All reactions