How to use DSH-taskboard
Adds a native local task board to DeepSeek Harness with SQLite storage for projects, tasks, claims, and automation. Requires manual sign-off for done status. Web profile only.
This article is auto-derived from indexed fields (wiki / faq / compatibility_json), not freshly AI-generated.
This article is derived from the plugin's already-indexed fields (wiki / faq / compatibility_json / readme), not freshly generated by AI. Source field is noted at the end of each section.
Quick start
DSH-taskboard
— source: plugin_wiki.wiki_content
Install & verify
dsh plugin --profile web add @shengsheng/dsh-taskboard
Run the command above in your DSH Web Profile. Then enable the plugin in the plugin list.
— source: plugins.install
Key points
- A Taskboard sidebar button and a native overlay page (not an iframe, not a second chat runtime)
- Local SQLite projects, tasks, comments, relations, attachments, workflows, and automation
- Stable readable keys such as
DSH-42plus opaque ids and optimistic versions - Seven statuses:
backlog→todo→in_progress→in_review→done, plusblockedandcanceled - In-process Agent tools
taskboard_*(no accept / no generic status mutation)
— source: plugin_wiki.readme_en (fallback readme_raw)
FAQ
What gets added to DSH after installation?
A 'Task Board' entry appears at the bottom of the sidebar with a native overlay page (not an iframe, no separate chat runtime), and 8 in-process tools are registered for all Agents (taskboard_list / get / claim / comment / submit_review / block / release_claim / relate) (README.zh.md:18-32, src/index.ts:65-90, src/tool/index.ts:32-150).
Where is data stored? Will uninstalling the plugin lose data?
Defaults to .dsh/taskboard.sqlite (WAL mode) and .dsh/taskboard-attachments directory; the path is resolved by Host on first start and cannot be changed by the browser. Can be overridden via DSH_TASKBOARD_DATABASE / DSH_TASKBOARD_ATTACHMENTS environment variables. Backups must include both the SQLite file (WAL for online) and the attachments directory; for consistent offline backups, stop Harness first (README.zh.md:204-209, README.zh.md:319-344).
Why don't Agent tools have 'approval/status change' capabilities?
This is by design: Agents can only submit verified work to in_review; approval, acceptance, rejection, archiving, restoration, cancellation, reopening, forced takeover, and permanent deletion can only be performed by humans (UI or CLI). The source code requireHuman throws errors in multiple write paths, and Agent/automation paths cannot obtain these capabilities (README.zh.md:239-240, src/sqlite/provider.ts:344/375/394/416/556/603/658/729/753/758/792/797/811).
What to do when encountering TASK_STALE_VERSION (optimistic conflict)?
Re-read task details and resubmit with the current actual version; do not retry with old versions. All non-creation writes require the current exact version (the SQL UPDATE ... WHERE id = ? AND version = ? throws TASK_STALE_VERSION when result.changes !== 1, CLI exits with code 5) (README.zh.md:254-256, src/sqlite/provider.ts:695, src/cli.ts:329).
Does DSH need to be restarted after installation?
Restart is required. Plugin bundle registration and client-modules scanning only execute at startup; profile layer changes do not hot-reload the UI; after installation completes, polling continues until GET / containing package name + /plugins/@shengsheng/dsh-taskboard/client.js returns 200 to be considered active (README.zh.md:153-202).
Can dsh-taskboard CLI be used directly without restarting web?
Yes. CLI is an independent headless JSON entry point that reads SQLite directly and does not depend on the Harness process; as long as ~/.dsh/taskboard.sqlite path is accessible, commands like dsh-taskboard project list can be used (src/cli.ts:111-148, README.zh.md:288-313).
How does project-level automation work?
Create an automation rule for a project on the task board page (interval, Agent preset, model routing, worker limit, quota); after enabling, the Host scheduler claims eligible todos, drives the root Agent Session + Goal, and stops at in_review; when quota is exhausted, new claims pause but running work is not interrupted (README.zh.md:315-317, src/automation/index.ts).
Is there a limit on attachment size?
Single file defaults to 25 MiB, single task defaults to 100 MiB; allowed types are fixed in the configuration schema as json / pdf / zip / images / markdown / text, etc. (src/index.ts:49-52).
— source: plugin_wiki.faq_json
Compatibility
- DSH: 0.1.0-rc.5+
- Node: ^22.19.0 || >=24.0.0
— source: plugin_wiki.compatibility_json
Pitfalls
Review the upstream repo before installing. This guide is auto-derived from indexed fields and may lag the latest release. If anything contradicts the official docs, treat the upstream source as authoritative.
— source: general rule