dsh-ds-kanban
看板操作面板插件,为 DSH Web 引入侧边栏入口和全屏看板,用于管理会话、工作区及待处理交互。
AI 分析
核心用途是提供可视化的任务与会话管理看板。适合需要以看板形式组织、跟踪多个 AI 任务进度的用户。
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:Stijnus/dsh-ds-kanban说明文档
阅读完整 README ↗dsh-ds-kanban
English | 中文
Summary
DS Kanban is an external bundle-format plugin for DeepSeek Harness Web. It adds a sidebar action and a full-shell live board without replacing the Harness application shell or storing a second task database. Session, Workspace, projection, pending-interaction, and connection services remain authoritative; the plugin stores only Inbox/Ready placement and presentation preferences in the existing authenticated settings capability. The package is installable into any profile with the dsh plugin commands below and requires a Harness release on the 0.1.2-alpha.1 service vocabulary or newer.
Table of Contents
- Install this package
- Operate the board
- Understand the implementation
- Security and privacy
- Supported and unavailable capabilities
- Build from source
- Troubleshooting
- Model Experience
- Known Limitations and Deferred Work
Install this package
Prerequisites: a DeepSeek Harness install with the dsh CLI and a target profile (the Web profile exposes the full board). Install, update, or removal changes profile composition and Client bundle discovery, so restart the profile's Host afterward. Choose one channel:
npm (no build permission needed):
dsh plugin --profile add dsh-ds-kanban
Pinned git (source install; pnpm runs the package's prepare build once):
dsh plugin --profile add github:Stijnus/dsh-ds-kanban#
A git install fetches sources, so pnpm ≥10 refuses the prepare build until it is allowed: copy the exact package key pnpm prints into the profile's pnpm-workspace.yaml allowBuilds map and re-run the add. Pin a commit or tag so a later push cannot silently change what runs; treat the allowance as permission to execute the package's build on your machine.
Release tarball (no build permission needed):
Download dsh-ds-kanban-.tgz from the GitHub Releases page, then:
dsh plugin --profile add ./dsh-ds-kanban-.tgz
After the add and a Host restart, select DS Kanban in the sidebar. Update by adding the newer version of the package; remove the package and its ordered profile layer without deleting Harness sessions or Workspace data:
dsh plugin --profile remove dsh-ds-kanban
Removing the package stops loading the board. The ds-kanban settings section remains user-owned data unless the operator explicitly removes it.
What you get
The sidebar badge counts waiting, failed, and high-context-pressure tasks. The full board provides Inbox, Ready, Running, Waiting, Blocked or Failed, and Done columns; live statistics; search and filters; Workspace grouping; density and timestamp controls; explicit JSON/CSV export; diagnostics; task creation; existing-task navigation; cancellation; archive; and task-ID copy. Automatic state always overrides manual Inbox/Ready placement.
Operate the board
Click a card or focus it and press Enter to open its existing Harness task. Left and Right Arrow move focus between populated columns, / focuses search, and Escape closes the active board layer or dialog. The board covers the whole shell, including the sidebar, so its return paths never depend on the covered UI: opening the board moves focus onto the toolbar's Back to session control, and that control or a document-level Escape closes the board and restores focus to the sidebar action. Only blank Inbox/Ready cards are draggable; runtime, waiting, failed, completed, and archived facts cannot be overwritten by drag-and-drop. Archive and cancellation require confirmation. Failed archive, cancellation, or ID-copy actions surface an inline error banner with a dismiss control. Export contains the explicit card summary allowlist and never includes prompts, transcripts, credentials, tool results, or file contents.
Understand the implementation
The package declares dsh.bundle.patch in package.json. cordis.patch.yml inserts the Host settings registration. src/client/index.ts contributes one sidebar footer action and one shell overlay through lifecycle-owned slots. src/client/board.ts is the pure authoritative-state projection, while src/settings.ts owns the versioned manual placement and view preferences. ARCHITECTURE.md documents the ownership and update flow.
The Host adds no HTTP route. Browser mutations reuse authenticated Session, Workspace, Agent Preset, and settings RPC services already exposed by the Web profile. The existing settings provider validates the registered schema, revision-fences writes, and commits the plugin-owned section atomically.
Security and privacy
The plugin makes no external network request, starts no server, executes no browser-supplied shell command, and emits no telemetry. It reads list summaries and lightweight lifecycle/projection state rather than task content. Malformed or unknown-version settings are rejected without rewriting the stored section; the Client retains its last accepted snapshot. Lifecycle disposal removes Session subscriptions, slot rows, locale dictionaries, and the injected style element. See SECURITY.md for the threat and data summary.
Supported and unavailable capabilities
Current Harness APIs expose live Session state, Workspace membership and archive state, pending user interactions, model and preset projections, completed steps, token usage, context pressure, cancellation, Session navigation, and direct subagent Session counts.
The current APIs do not expose authoritative cost, task start/runtime history, durable completion timestamps for "completed today," tool-call totals, Git branch/worktree, changed-file count, or short final-result summaries in the task list projection. They also do not expose pin/unpin or unarchive actions. DS Kanban labels aggregate cost, runtime sorting, and completed-today statistics unavailable, omits unavailable card metrics, and never synthesizes them.
Build from source
pnpm install
pnpm typecheck
pnpm build
pnpm test
The test command reads the built Client artifact, so build it before testing after a clean checkout. The browser compatibility check rejects the removed @deepseek-ai/dsh-client-runtime import and any unexpected external require() call. Development happens on the main branch; releases are tagged vX.Y.Z and shipped by the ci.yml and release.yml workflows.
Troubleshooting
- No sidebar entry: rebuild, repeat the profile
addcommand, and restart the profile's Host. Inspect Host startup output for a failed bundle row. - Preferences show memory only: the Host profile does not expose the settings namespace to this Client connection. Board operation continues, but preference writes are not durable.
- Disconnected indicator: the board preserves the last received snapshots while the existing Harness connection loop reconnects. Use Refresh after connection recovery if the list remains stale.
- A metric or action is missing: open Diagnostics in the board. Unsupported capabilities stay disabled or absent by design.
- Client loader failure: run
pnpm buildandpnpm test; the bundle test lists the supported external modules.
Model Experience
None. DS Kanban is an operator-facing Client projection and does not add model-visible tools, prompt content, or request inputs.
Known Limitations and Deferred Work
The board projects top-level tasks and counts direct subagent Sessions; it does not render subagent Sessions as independent cards. Each column initially renders 60 cards and reveals further cards in 60-card pages, while filters and statistics continue to cover the complete authoritative set. Runtime and cost sort options are disabled in the dropdown because authoritative values are absent. Archive is one-way in the current supported Client API. The sidebar attention badge requires lightweight cached Session faces even while the full overlay is closed; it does not open transcript windows or poll the Host.
Dev Note
Working context for maintainers — click to expand
The bundle targets the 0.1.2-alpha.1 Client service vocabulary and deliberately has no compatibility path for the removed dsh-client-runtime package. Standalone devDependencies pin the @deepseek-ai/dsh-* snapshot the code is proven against (0.1.2-alpha.3); peerDependencies stay >=0.1.2-alpha.1. To pick up a newer alpha, bump the devDependencies to the newest published 0.1.2-alpha.x, re-run the suite, and release the result as a new version.