Skip to content

Releases: XWIDE/dsh-xwide-handoff

v0.2.2 (beta) — 修复:重启 DSH 后交接会话打不开(判 stored log is corrupt)

Choose a tag to compare

@XWIDE XWIDE released this 15 Oct 12:52

中文

0.2.2 根治「重启机器后,所有交接会话都判 stored log is corrupt、历史打不开」。

实证链(逐帧解 session.v4.jsonl.zstd):插件自己合成的 turn/end t1(seq=9)让重载回放器的 nextTurn 变成 2,而 DSH 驱动首轮时按自己的内存状态在 seq=11 写 turn/start t1 → 重载回放到 seq=11 撞 @deepseek-ai/dsh-session/lib/types/invariant.js:746-749(turn/start 必须 data.turn === nextTurn)→ 抛错 → 整条会话标成 corrupt。

本版做法=插件零合成事件:占位头候选置空(不再写 turn/start / step/start / system/message)、卡片注入段整段停用;卡片唯一投递通道改为官方 sessionController.prompt(),surface 首位与 turn/step 全部由官方取号。投递失败就如实报「卡片没送进去」并提示手动粘贴,绝不回退到「插件自己写事件」那条会写坏日志的老路。

0.2.1 只修掉了旧形状(seq=4 占位头没有 open turn),把冲突挪到了 seq=11 —— 所以当时表现为「猛猛操作一番,问题一模一样」。

已知问题(本版未修):自愈重钉的名单是挂载时的一次性快照,本进程内新建的交接会话被官方改名后不会重钉,直到重启 DSH。


English

0.2.2 root-fixes "after a machine restart, every handoff session is flagged stored log is corrupt".

Chain: the plugin-synthesized turn/end t1 (seq=9) moves the replay nextTurn to 2, while DSH writes turn/start t1 at seq=11 from its own in-memory state → replay collides with invariant.js:746-749 (turn/start must satisfy data.turn === nextTurn) → throws → the whole session is marked corrupt.

The fix: the plugin synthesizes zero events now — placeholder candidates emptied (no more turn/start / step/start / system/message), the card-append block disabled; the card is delivered solely through the official sessionController.prompt() channel, leaving the surface head and turn/step numbering entirely to DSH. A delivery failure is reported honestly instead of falling back to writing events.

0.2.1 only fixed the old shape (a seq=4 placeholder head with no open turn) and moved the collision to seq=11 — which is why the problem looked identical after that attempt.

Known issue carried over: the self-heal rename list is a one-shot snapshot taken at mount, so sessions handed off inside the same process are not re-pinned until DSH restarts.

v0.2.1 (beta)

v0.2.1 (beta) Pre-release
Pre-release

Choose a tag to compare

@XWIDE XWIDE released this 14 Oct 01:33

Fix: the placeholder system/message candidate list contained an illegal (turn=0, step=0). That validation runs on the read/restore path, so the bad row was persisted and only failed when reopening the session ('format v4 system/message turn must be positive'). Only legal values are used now.

Docs: Chinese-first README + English mirror, bilingual install guide, command-palette screenshot.
Known issue (unfixed): the self-heal watcher reads the names file once at mount, so sessions handed off in the same process are not re-pinned until a restart.

v0.2.0 (beta)

v0.2.0 (beta) Pre-release
Pre-release

Choose a tag to compare

@XWIDE XWIDE released this 14 Oct 01:33

Beta. Core flow: /handoff -> structured handoff card + clean new session, auto-numbered title, sidebar pin, project-group filing, threshold auto-prepare.

Known issue in this release: the placeholder system/message used an illegal turn/step (fixed in v0.2.1, see CHANGELOG).