安装
September 2, 2026 · View on GitHub
简体中文 | English
Current default:
v0.9.5(targetingdsh-v0.1.2-alpha.1, source-built install) — install the latest tag directly; below is the historical snapshot compat record.
Version selection:
v0.9.1(default) targets DSH snapshot snapshot0810 (snapshots/20260810T155924Z) and is also compatible with snapshot0811 (snapshots/20260811T152241Z) and the final snapshot snapshot0812 (snapshots/20260812T172954Z-final);v0.9.0targets snapshot0809 (snapshots/20260809T140917Z);v0.8.0targets snapshot0808 (snapshots/20260808T121140Z);v0.6.0targets snapshot0807 (snapshots/20260807T130646Z);v0.1.0targets snapshot0805 (snapshots/20260805T134133Z) and is installed via the legacy method. See README.md for the version mapping.
npm release:
v0.9.1is compatible with the DSH npm releases@deepseek-ai/dsh@0.0.1-rc.5(dist-tagnext, i.e. the npm release of the final snapshot snapshot0812) and@deepseek-ai/dsh@0.0.1-rc.2(the npm release of snapshot0811); runtime/type/startup manifest verified on a real instance. Starting from 0811 the vendored cordis was renamed to@deepseek-ai/cordis— this plugin has migrated its type imports and peer to@deepseek-ai/cordis(^4.0.1-rc.1, which is4.0.1-rc.4on the npm rc.5 baseline), and a plainnpm installno longer fails with ERESOLVE. Handled automatically bydsh plugin/pnpm installation.
Prerequisites: a built DSH snapshot (~/.dsh/source/current pointing at a snapshot containing lib/ artifacts — the link: dev dependencies of cordis and the various @deepseek-ai/dsh-client-* packages resolve from that snapshot) + dsh web running. This plugin is a pure browser-half plugin (the host half is empty; since v0.8.0 it no longer bundles a report_progress tool or reporting guidance; browser half: progress presentation). Installing = ① the package is resolvable by the configuration tree + ② one line added to the configuration.
Current default install (dsh-v0.1.2-alpha.1, v0.9.5)
Latest default install: v0.9.5 targets dsh-v0.1.2-alpha.1 (GitHub tag, source-built install, not published to npm; it is also the latest version after 0.1.1-rc.1).
# 1. Clone the repository; build artifacts are already in-tree (no build needed)
git clone https://github.com/lhh010/dsh-ui-progress.git
cd dsh-ui-progress && pnpm install
# 2. Install into the web profile
dsh plugin --profile web add link:/path/to/dsh-ui-progress
# or a pinned-tag git dependency:
# dsh plugin --profile web add '@dsh-external/dsh-ui-progress@github:lhh010/dsh-ui-progress#v0.9.5'
Config line (
$DSH_HOME/profiles/web/cordis.patch.yml, hot-reloaded, no restart needed):- insert: - id: dsh-ui-progress name: '@dsh-external/dsh-ui-progress'
Prompt install (let DSH install it)
Paste this prompt into any DSH session and the agent installs it for you:
Install the dsh-ui-progress plugin (DSH session progress strip plugin):
- Run
dsh plugin --profile web add '@dsh-external/dsh-ui-progress@github:lhh010/dsh-ui-progress#v0.9.5'(the first run may fail because pnpm 11 blocks node-pty build scripts)- Under
~/.dsh/profiles/web, runpnpm approve-builds --all(approve the build scripts)- Re-run the install command from step 1
- Remind me to hard-refresh the browser (Ctrl/Cmd+Shift+R) On errors, first check the FAQ/known limitations in the README at https://github.com/lhh010/dsh-ui-progress
Migration guide (DSH 0.1.1-rc.1 → 0.1.2-alpha.1)
0.1.2-alpha.1 is an author-facing alpha (not published to npm) with breaking Client API rework; the official ChatSnapshot.legacy compatibility projection keeps the old fields, and this plugin v0.9.4 has completed the migration:
- The
@deepseek-ai/dsh-client-runtimepackage was removed:ClientContextnow imports from@deepseek-ai/cordis(import type { Context as ClientContext }). ConversationSnapshotwas refactored into a views architecture: the oldnodes/turnTimings/turnEnds/partial/runningCallsall moved to theChatSnapshot.legacycompatibility projection; the turn timeline is onChatSnapshot.timeline. Session lifecycle fields (running/lastAgentErroretc.) remain on the newSessionSnapshot(@deepseek-ai/dsh-api-session-controller/client).- Component props:
PropsRuntimeis read through theuseSession(Session lifecycle) +useConversation(ConversationSnapshot) double seats; cross-package slot registration now usesctx.slots.inject(name, () => ctx.slots.register(...)). - Plugin-author migration steps: ① replace
ClientContext/type import paths; ② read streaming/tool/node state viauseConversation → views.get('chat')?.legacy; ③ read session lifecycle viauseSession; ④ register viactx.slots.inject; ⑤ updatepackage.jsondsh.client.inject(dropdsh-client-runtime) and thedevDependencieslink.
snapshot0810 (v0.9.1) — profile installation
# 1. Clone the repo; build artifacts are checked in, no build needed
git clone https://github.com/lhh010/dsh-ui-progress.git
cd dsh-ui-progress && pnpm install
# 2. Install into the web profile (equivalent to running pnpm add under $DSH_HOME/profiles/web)
dsh plugin --profile web add link:/path/to/dsh-ui-progress
# or as a pinned-tag git dependency:
# dsh plugin --profile web add '@dsh-external/dsh-ui-progress@github:lhh010/dsh-ui-progress#v0.9.1'
snapshot0809 users pin
#v0.9.0(0809 build); snapshot0808 users pin#v0.8.0(0808 build, also compatible with 0809 hosts); snapshot0807 users pin#v0.6.0(old slot contractconversation.chat.toolview, not applicable to 0808/0809).
Since v0.8.0 the host half is empty (no longer registers a
report_progresstool or reporting guidance): after an upgrade install there is no need to restartdsh web— the browser half takes effect on page refresh. The 0809 host validates the build artifacts ofdshClientpackages at activation (missing artifacts throwClientPackageCompositionErrorand refuse to start) — after upgrading the snapshot or changing the source, you must re-runpnpm run buildbefore starting.
Configuration line ($DSH_HOME/profiles/web/cordis.patch.yml, hot-reloaded, no restart needed):
- insert:
- id: dsh-ui-progress
name: '@dsh-external/dsh-ui-progress'
snapshot0805 (v0.1.0) — legacy installation
Option 1: clone + link into the harness (recommended)
# 1. Clone the repo; build artifacts are checked in, no build needed
git clone https://github.com/lhh010/dsh-ui-progress.git
cd dsh-ui-progress && pnpm install
# 2. Get the package into the harness dependency chain (at the DSH snapshot root, the one ~/.dsh/source/current points to)
pnpm add -w link:/path/to/dsh-ui-progress
If your pnpm refuses
pnpm add -wdue to a store version mismatch, you can symlink manually instead:mkdir -p node_modules/@dsh-external && ln -s /path/to/dsh-ui-progress node_modules/@dsh-external/dsh-ui-progress
Option 2: git dependency (pinned commit/tag, no implicit latest)
# Run at the harness root; <commit> is the release commit (use tag v0.1.0 for 0805)
pnpm add '@dsh-external/dsh-ui-progress@github:lhh010/dsh-ui-progress#v0.1.0'
Configuration line (legacy 0805 mechanism)
~/.dsh/config.yaml (create it if it does not exist):
- insert:
- id: dsh-ui-progress
name: '@dsh-external/dsh-ui-progress'
Restarting dsh web
Plugin-set changes follow the "restart to take effect" discipline (applicable under the legacy 0805 mechanism; with the 0806+ profile method the configuration line hot-reloads and no restart is needed). Since v0.8.0 the host half is empty, so browser-half updates only need a page refresh. Stop the current web (Ctrl+C) and start it again.
Verification
While a session is running: the loader on the left of the persistent progress bar above the input spins; while running it shows the real-time elapsed time, the real-time token generation rate (self-calibrating estimate + 1s sliding-window smoothing, shown while the model is generating, e.g. 12.3 tok/s, refreshed once per second) and the ETA (when reported by the model). Sessions with a todos list show the real completion ratio; sessions without todos keep the fill fixed at 100%. After manually stopping a session or an API-error interruption, the progress bar switches to the orange-red "已中断" state; after the interruption, sending again and completing normally restores the green completed state.