feat: adapt to DSH 0.1.7-rc.1

Move the support line from 0.1.7-alpha.1 to 0.1.7-rc.1 (peer floor
`^0.1.7-rc.1`). 0.21.0-alpha.1 never reached npm, and once the code-card
labels below are fixed the same build crashes on alpha.1 (its DiffBlock
still reads the `labels.files` upstream deleted), so declaring only the
host we verify against is the honest floor — and from rc.1 on the host
enforces peers at boot anyway: a row whose `@deepseek-ai/dsh-*` peers do
not satisfy the runtime is silently disabled.

Dependencies: 28 devDependency pins and 14 peers move to 0.1.7-rc.1.
rc.1 also raised the vendored runtime (cordis 4.0.4, schemastery 3.18.4,
cordis-plugin-group 1.0.4, cordis-plugin-include 1.0.9) and publishes DSH
cross-references as exact versions, so bumping schemastery/cordis alone
left four unmet transitive peers — the three vendor packages are hoisted
into devDependencies, which is what makes `pnpm peers check` clean again.

One compile break: rc.1 added `CodeToolbarLabels` (codeLabel / wrapLabel /
unwrapLabel, all required), made DiffBlockLabels / ReadBlockLabels extend
it and deleted `DiffBlockLabels.files`. Fixing SideChatView then leaving
markdown on the legacy banner would render two different code-card styles
inside one side-chat view, so the plugin adopts the card everywhere:
`markdownTextProps()` now passes `labels.code.toolbarLabels` with the
host's own wording (codeBlock.title|wrap|unwrap, added to all 20
dictionaries; `sideChatBlockFiles` retires with the deleted footer).

Adopting the card surfaced a silent regression the suite caught: the new
toolbar shows `codeLabel` for languages the highlighter does not know, and
mermaid has no shiki grammar, so the info string no longer reaches the DOM
and the banner-text probe in mermaid.tsx matched nothing — mermaid fences
stopped being swapped for diagrams. Detection now matches the FENCE BODY
from the source that produced the render.

`tests/market-manifest.spec.ts` pins every DSH peer as a floating caret
range: an exact pin (the devDependency style) or a comparator without a
prerelease would fail rc.1's preflight and silently stop the plugin from
loading, and `pnpm peers check` cannot see that — it validates the
resolved dev tree, not the range shape the host reads.
This commit is contained in:
Menghuan1918
2026-09-23 22:24:56 +08:00
parent 2d2d78f3f2
commit bd11bad65c
36 changed files with 773 additions and 610 deletions
+47 -44
View File
@@ -1,6 +1,6 @@
{
"name": "dsh-better-sidebar",
"version": "0.21.0-alpha.1",
"version": "0.21.0-rc.1",
"description": "Better Sidebar for DSH — file tree, editor, changes, tasks and side chat in one column, separate for every conversation. Also exposes a service other plugins use to register sidebar tabs and file viewers.",
"type": "module",
"repository": {
@@ -93,21 +93,21 @@
},
"license": "MIT",
"peerDependencies": {
"@deepseek-ai/cordis": "^4.0.3",
"@deepseek-ai/dsh-agent": "^0.1.7-alpha.1",
"@deepseek-ai/dsh-client-locale": "^0.1.7-alpha.1",
"@deepseek-ai/dsh-client-ui-conversation": "^0.1.7-alpha.1",
"@deepseek-ai/dsh-client-ui-primitives": "^0.1.7-alpha.1",
"@deepseek-ai/dsh-client-ui-settings": "^0.1.7-alpha.1",
"@deepseek-ai/dsh-client-ui-sidebar-right": "^0.1.7-alpha.1",
"@deepseek-ai/dsh-client-ui-slots": "^0.1.7-alpha.1",
"@deepseek-ai/dsh-host-webserver": "^0.1.7-alpha.1",
"@deepseek-ai/dsh-invariants": "^0.1.7-alpha.1",
"@deepseek-ai/dsh-llm": "^0.1.7-alpha.1",
"@deepseek-ai/dsh-session": "^0.1.7-alpha.1",
"@deepseek-ai/dsh-settings": "^0.1.7-alpha.1",
"@deepseek-ai/dsh-subagent": "^0.1.7-alpha.1",
"@deepseek-ai/dsh-tools": "^0.1.7-alpha.1",
"@deepseek-ai/cordis": "^4.0.4",
"@deepseek-ai/dsh-agent": "^0.1.7-rc.1",
"@deepseek-ai/dsh-client-locale": "^0.1.7-rc.1",
"@deepseek-ai/dsh-client-ui-conversation": "^0.1.7-rc.1",
"@deepseek-ai/dsh-client-ui-primitives": "^0.1.7-rc.1",
"@deepseek-ai/dsh-client-ui-settings": "^0.1.7-rc.1",
"@deepseek-ai/dsh-client-ui-sidebar-right": "^0.1.7-rc.1",
"@deepseek-ai/dsh-client-ui-slots": "^0.1.7-rc.1",
"@deepseek-ai/dsh-host-webserver": "^0.1.7-rc.1",
"@deepseek-ai/dsh-invariants": "^0.1.7-rc.1",
"@deepseek-ai/dsh-llm": "^0.1.7-rc.1",
"@deepseek-ai/dsh-session": "^0.1.7-rc.1",
"@deepseek-ai/dsh-settings": "^0.1.7-rc.1",
"@deepseek-ai/dsh-subagent": "^0.1.7-rc.1",
"@deepseek-ai/dsh-tools": "^0.1.7-rc.1",
"@huanlin/dsh-plugin-better-locale": "^0.1.0",
"react": "^18.2.0",
"react-dom": "^18.2.0"
@@ -142,7 +142,7 @@
"@codemirror/search": "^6.7.1",
"@codemirror/state": "^6.7.1",
"@codemirror/view": "^6.43.8",
"@deepseek-ai/schemastery": "^3.18.3",
"@deepseek-ai/schemastery": "^3.18.4",
"@lezer/highlight": "^1.2.3",
"clsx": "^2.1.1",
"dompurify": "^3.4.14",
@@ -154,33 +154,36 @@
},
"devDependencies": {
"@cordisjs/plugin-loader": "^1.0.0-rc.5",
"@deepseek-ai/dsh-agent": "0.1.7-alpha.1",
"@deepseek-ai/dsh-agent-loop": "0.1.7-alpha.1",
"@deepseek-ai/dsh-attachment": "0.1.7-alpha.1",
"@deepseek-ai/dsh-client-locale": "0.1.7-alpha.1",
"@deepseek-ai/dsh-client-store": "0.1.7-alpha.1",
"@deepseek-ai/dsh-client-ui-conversation": "0.1.7-alpha.1",
"@deepseek-ai/dsh-client-ui-primitives": "0.1.7-alpha.1",
"@deepseek-ai/dsh-client-ui-settings": "0.1.7-alpha.1",
"@deepseek-ai/dsh-client-ui-sidebar-right": "0.1.7-alpha.1",
"@deepseek-ai/dsh-client-ui-slots": "0.1.7-alpha.1",
"@deepseek-ai/dsh-host-webserver": "0.1.7-alpha.1",
"@deepseek-ai/dsh-invariants": "0.1.7-alpha.1",
"@deepseek-ai/dsh-llm": "0.1.7-alpha.1",
"@deepseek-ai/dsh-ptc-runtime": "0.1.7-alpha.1",
"@deepseek-ai/dsh-sandbox": "0.1.7-alpha.1",
"@deepseek-ai/dsh-sandbox-policy": "0.1.7-alpha.1",
"@deepseek-ai/dsh-scope": "0.1.7-alpha.1",
"@deepseek-ai/dsh-session": "0.1.7-alpha.1",
"@deepseek-ai/dsh-session-persistence": "0.1.7-alpha.1",
"@deepseek-ai/dsh-session-projection": "0.1.7-alpha.1",
"@deepseek-ai/dsh-settings": "0.1.7-alpha.1",
"@deepseek-ai/dsh-subagent": "0.1.7-alpha.1",
"@deepseek-ai/dsh-system-prompt": "0.1.7-alpha.1",
"@deepseek-ai/dsh-tools": "0.1.7-alpha.1",
"@deepseek-ai/dsh-user-approval": "0.1.7-alpha.1",
"@deepseek-ai/dsh-util-time": "0.1.7-alpha.1",
"@deepseek-ai/dsh-util-workspace-path": "0.1.7-alpha.1",
"@deepseek-ai/cordis": "4.0.4",
"@deepseek-ai/cordis-plugin-group": "1.0.4",
"@deepseek-ai/cordis-plugin-include": "1.0.9",
"@deepseek-ai/dsh-agent": "0.1.7-rc.1",
"@deepseek-ai/dsh-agent-loop": "0.1.7-rc.1",
"@deepseek-ai/dsh-attachment": "0.1.7-rc.1",
"@deepseek-ai/dsh-client-locale": "0.1.7-rc.1",
"@deepseek-ai/dsh-client-store": "0.1.7-rc.1",
"@deepseek-ai/dsh-client-ui-conversation": "0.1.7-rc.1",
"@deepseek-ai/dsh-client-ui-primitives": "0.1.7-rc.1",
"@deepseek-ai/dsh-client-ui-settings": "0.1.7-rc.1",
"@deepseek-ai/dsh-client-ui-sidebar-right": "0.1.7-rc.1",
"@deepseek-ai/dsh-client-ui-slots": "0.1.7-rc.1",
"@deepseek-ai/dsh-host-webserver": "0.1.7-rc.1",
"@deepseek-ai/dsh-invariants": "0.1.7-rc.1",
"@deepseek-ai/dsh-llm": "0.1.7-rc.1",
"@deepseek-ai/dsh-ptc-runtime": "0.1.7-rc.1",
"@deepseek-ai/dsh-sandbox": "0.1.7-rc.1",
"@deepseek-ai/dsh-sandbox-policy": "0.1.7-rc.1",
"@deepseek-ai/dsh-scope": "0.1.7-rc.1",
"@deepseek-ai/dsh-session": "0.1.7-rc.1",
"@deepseek-ai/dsh-session-persistence": "0.1.7-rc.1",
"@deepseek-ai/dsh-session-projection": "0.1.7-rc.1",
"@deepseek-ai/dsh-settings": "0.1.7-rc.1",
"@deepseek-ai/dsh-subagent": "0.1.7-rc.1",
"@deepseek-ai/dsh-system-prompt": "0.1.7-rc.1",
"@deepseek-ai/dsh-tools": "0.1.7-rc.1",
"@deepseek-ai/dsh-user-approval": "0.1.7-rc.1",
"@deepseek-ai/dsh-util-time": "0.1.7-rc.1",
"@deepseek-ai/dsh-util-workspace-path": "0.1.7-rc.1",
"@eslint/js": "^10.0.1",
"@huanlin/dsh-plugin-better-locale": "^0.1.0",
"@playwright/test": "^1.62.1",