Skip to content

Releases: Han-Yao94/dsh-session-toolkit

v1.0.0 — 首个正式版:会话管理工具包(DSH)

Choose a tag to compare

@Han-Yao94 Han-Yao94 released this 01 Oct 12:11

首个正式版(此前 0.1.12–0.1.16 为预发布线)。

npm 上 dsh-session-toolkit@1.0.0 已发布(2026-10-01T12:02:32Z),tarball shasum = b53ca95f1a576fc63b395efa83499bb8b39db402、19 个文件 —— 与发布前 npm pack --dry-run 的读数逐位相同。本 Release 对应 tag v1.0.0(附注对象 3e01ec9b6b19f6884340c7178aa223037df028da)指向的提交 071b8af。


release: bump the three version positions to 1.0.0 and re-land the two §0 anchors

  • package.json:3, README.md:7, README.zh.md:7: 0.1.16 -> 1.0.0. These are the
    three version-declaration sites (pnpm verify fails if they disagree), each
    a single line.
  • docs/agents/integration-contracts.md §0: re-land the package.json and
    README.zh.md rows with the new SHA-256 digests and byte counts (2,023 ->
    2,022 and 40,856 -> 40,855), and append the "重落锚㉓" note to the header row.
  • The four "latest published version: v0.1.16" claims in both READMEs are
    deliberately NOT touched: they are still true right now (registry
    dist-tags.latest = 0.1.16), and charter §10.4 step 4 rewrites them only after
    the publish has actually succeeded. Writing them now would be a false claim.

Evidence (commands, exit codes, raw readings):
pnpm check -> EXIT 0
pnpm verify -> EXIT 0 ("current version" claim = 1.0.0, 2 hits)
node scripts/anchor.contract.selftest.mjs -> EXIT 0 (13/13 MATCH)
19 further single gates -> EXIT 0, plus bl090 self-restore (the gate restores
scripts/prompt-contract.assert.mjs byte-for-byte, frame 90d30f9625039ca3
before and after), verify.selftest.mjs, official-refs, prompt.contract.selftest
(full per-gate readings in docs/agents/board/a.md §85.5)
npm pack --dry-run -> dsh-session-toolkit@1.0.0, total files 19, tarball
contains no docs/, scripts/ or .github/ paths

Not green - listed rather than hidden:
scripts/rc1-basis.assert.mjs -> EXIT 3 INCOMPLETE. The cross-generation basis
gate was NOT run this round: this host checkout resolves only 13 of the
@deepseek-ai packages it needs (7 are MODULE_NOT_FOUND: dsh-tools,
dsh-home-paths, dsh-client-locale, dsh-client-store, dsh-client-ui-primitives,
cordis, schemastery) and it lacks the gate command files, so no --alpha-base
could be supplied. EXIT 3 is the gate's own "precondition absent, do not read
as a pass" code - not a pass, and not a failing assertion either. If CI-driven
publishing is ever restored, .github/workflows/npm-publish.yml:458 keeps this
job in publish-npm.needs and treats EXIT 3 as blocking.
scripts/dependency-skew.content.probe.mjs -> EXIT 1. Two host packages
(@deepseek-ai/dsh-client-locale, @deepseek-ai/dsh-client-ui-primitives) are
skewed. Parked by human decision (BL-091, "keep it on the books, do not
touch") and host-side only (BL-102); it is not on the publish path.

Independent review before commit (charter §14.1①): QA, docs/agents/board/d.md
§162-D -> "committable", explicitly carrying the rc1 precondition failure
forward and correcting my earlier "3 missing packages" to 7.

v0.1.16 — 全切 DeepSeek Harness dsh-v0.2.0-rc.1

Choose a tag to compare

@Han-Yao94 Han-Yao94 released this 28 Sep 15:48

v0.1.16

首个要求 DeepSeek Harness dsh-v0.2.0-rc.1(cordis 4.0.4 / schemastery 3.18.4)的版本。

变更

  • 全切 0.2.0-rc.1:dependencies 与 peerDependencies 里的宿主包代位全部抬高 —— @deepseek-ai/dsh-home-paths、@deepseek-ai/dsh-tools 为 ^0.2.0-rc.1,@deepseek-ai/cordis 为 ~4.0.4,@deepseek-ai/schemastery 为 ^3.18.4,三个客户端 peer(locale / store / ui-primitives)为 ^0.2.0-rc.1。
  • pnpm-workspace.yaml 的 minimumReleaseAgeExclude 由 alpha.1 代 13 条换成 rc1 代 24 条(供应链延迟保护仍然生效,只放行本依赖链)。
  • 两份 README 的宿主版本声明同步抬高;新增 scripts/rc1-basis.assert.mjs 断言门(自检 14 条全过,含四条负向对照)。
  • 版本位 0.1.15 → 0.1.16。

兼容性

  • 最低支持版本 = dsh-v0.2.0-rc.1。0.1.6 及更早的内核上本插件会响亮失败而非静默降级。
  • 本次核对的是契约面 + 全套门(锚表、提示词契约、自动恢复契约、客户端原语导出、打包契约等),不是一次完整的功能回归。

已知限制(环境性,非本包缺陷)

  • 本机 dependency-skew 门为红,经独立归因 = 宿主侧解析根仍停在 0.1.7-rc.2(本机 harness checkout 尚未同步到 rc1),不是本包产物的问题;在已同步到 rc1 的宿主上该门应转绿。
  • 真机端到端(安装到真实 profile 并逐功能操作)未在本次发布中执行。

v0.1.15

Choose a tag to compare

@Han-Yao94 Han-Yao94 released this 28 Sep 14:01

Inbound peer messaging gains an inbox_check tool surface (session-scoped, caller-only view of what is still queued) and the peer-inbox-discipline prompt section (order 45); inject no longer declares settings (lazy read with a null guard). The auto-resume contract gate now locates the bad fingerprint by content (earliest git log -S commit plus a tree-level filter) instead of a 50-commit window, and exits 3 when the anchor is wrong. New documentation-reference contract gate (prompt-contract.assert.mjs, C1 extraction / C2 recomputation / C3 retired-wording) mounted in CI as prompt-contract-assert; contract table re-anchored for README.zh.md; version 0.1.15.

v0.1.14

Choose a tag to compare

@Han-Yao94 Han-Yao94 released this 28 Sep 07:48

Group prompt section (order 55, keyed by session id, spanning workspaces) with a third settings tab; settings panel re-laid-out to match the native section look; checkbox lag fixed via a local optimistic layer; the group-prompt contract gate now reports an unevaluable subject as exit 2 and no longer leaks temp dirs.

v0.1.13

Choose a tag to compare

@Han-Yao94 Han-Yao94 released this 28 Sep 02:54

Release 0.1.13

Breaking: the whole web-restart feature is gone.

  • Remove the web-restart feature (e7ec303) — lib/web-restart.js and lib/dsh-web-restart-launcher.vbs are deleted, together with its client code, its POST-style restart route, the restartTimeoutMs / restartSettleMs config knobs, and the request-guard exemption that existed only to authorise it. package.json goes from 6 plugins to 5. Auto-resume is unaffected — "come back online after a restart" still works; only the service that restarted on request is gone.
  • Keep the workspace-prompt sync from wiping user content (049ced6) — the sync reads the existing entry before writing it back, and a new guard (scripts/workspace-prompt.guard.assert.mjs) pins the behaviour by mutation rather than by assertion.
  • Internal tooling and gate hygiene — board-rotation tooling (689f7e4, f15baf4), the stale "12 anchors" comment in the anchor gate (47f95e2), and contract/README corrections (97bb5b7, a79b6f9, ff7879c, a619eab).
  • Compatibility unchanged — still verified against DeepSeek Harness dsh-v0.1.7-alpha.1 (also the minimum supported version) and re-verified on dsh-v0.1.7-rc.1 (contract surfaces + the full gate suite, not a complete functional regression). Both READMEs were re-anchored for this version.

Published from commit e7ec30366593c6d6c1be7e6a6e9b1c1de38cd934 (tag v0.1.13), through the release-event publish job — the same path as v0.1.11 and v0.1.12.

v0.1.12

Choose a tag to compare

@Han-Yao94 Han-Yao94 released this 24 Sep 11:04

Release 0.1.12

Four commits since v0.1.11:

  • Cross-session delivery fix (7849fed) — a peer message that arrives while the receiving session is mid-turn is spliced into that running turn instead of waiting for the next one.
  • Re-verified on harness dsh-v0.1.7-rc.1 (cf021d5) — contract surfaces plus the full gate suite; the README compatibility notes were corrected to match.
  • Shared workspace-immutability guard (617edc4) — the guard now lives in scripts/lib/manifest-guard.mjs and is proven by mutation instead of by assertion.
  • Recursive syntax gate (a1e5f4a) — pnpm check walks nested lib//scripts/ JavaScript, and refuses symlinks it cannot follow (dangling links, symlinked directories) rather than silently skipping them.

Verification

pnpm check and pnpm verify exit 0 on this tree; the anchor gate reports 14/14 MATCH; the packaging audit builds dsh-session-toolkit-0.1.12.tgz with 21 files.

Note

0.1.9 and 0.1.10 were tagged but never reached npm, so this is the first published version since 0.1.8.

v0.1.11

Choose a tag to compare

@Han-Yao94 Han-Yao94 released this 23 Sep 07:48

First version to reach npm since 0.1.8 — 0.1.9 and 0.1.10 were tagged but never published.

  • harness: adapted to DSH dsh-v0.1.7-alpha.1. A plugin entry's user data
    (identity text, global/workspace prompts, the per-session auto-resume switch, the UI
    knobs) now lives in that entry's Config volatile fields and is read and written
    through ctx.configForms; the settings namespace and lib/ui-config.js are gone. The
    two runtime projections that used to be namespaces moved to the plugin's own read-only
    route GET /api/session-toolkit/state. Harness-provided ranges name one prerelease
    generation each (^0.1.7-alpha.1, cordis ^4.0.3); the client half uses the icon
    names 0.1.7 renamed (IconXxxOutlineRegular), and peer messages are attributed to
    their producer (source.kind: 'agent-message') as session format V4 requires.
  • session tools: create_session and rename_session, including attaching a newly
    created session to its workspace and reporting which of attached / not-found /
    unavailable / resolve-failed / attach-failed happened.
  • client: the identity overlay card is draggable by its title row and is clamped to
    the viewport, so every edge stays reachable when the card is larger than the window;
    the sidebar session-row menu gains a "Copy session ID" row.
  • host: the plugin's own HTTP routes carry an Origin guard. They are registered
    directly on webServer, which puts them under /api/ while bypassing the gateway that
    guards that prefix, so POST /api/restart was reachable from a page in the browser.
    Known limits are recorded in the contract table: a 0.0.0.0 bind still admits DNS
    rebinding, and the guard addresses browser pages rather than local processes.
  • fixes: the session-log menu row no longer throws (react is required where
    react.useState is called — it had been broken since 2026-09-18 and every gate missed
    it); the prompt-contract gate's fake request now carries a Host header.
  • gates: two new ones, both wired into CI and into publish-npm's needs —
    scripts/request-guard.assert.mjs (49 cases, four structural assertions, seven
    mutations, two self-defences) and scripts/scope-identifiers.assert.mjs (a block that
    uses a module alias it never bound fails loudly).

v0.1.9

Choose a tag to compare

@Han-Yao94 Han-Yao94 released this 18 Sep 07:18

Patch release against dsh-v0.1.6-alpha.2.

  • auto-resume: normalize the persistence entries so startup restore works on both
    the snapshot and bare-header list() shapes; unrecognized shapes now leave a
    diagnosable warning instead of failing silently.
  • prompt pipeline: the three own prompt sections render literally
    (interpolate: false), with a fallback for pre-0.1.6 kernels; prompt dedup keeps
    blank lines; oversized referenced files are skipped rather than injected.
  • host: lazy service resolution via ctx.inject across identity / global-prompt /
    web-restart / peer-message; workspace-prompt isolation and projection fixes.
  • deps: harness-provided packages declared as forward-compatible version unions
    (^0.1.2-alpha.5 || ^0.1.6-alpha.2) instead of fictional lower bounds.
  • docs: published-version claim bumped to 0.1.9; the §0 README anchor re-landed and
    six off-by-N line references in the contract table corrected.
  • ci: contract gates run without node_modules; the auto-resume gate gets full
    history so its negative control can read the parent revision.