Skip to main content

deepseek-harness-desktop/packages/dsh-task-board

156Stars5Forks6Issues0Watchers

Adds multi-column task board to DSH Web GUI with sidebar entry for one-click switching. Tasks execute through Host real session and write back status. Five-segment cron timing is maintained by Host with browser fallback.

Evidence5/5methodologySourceInstallMaintenanceDSH versionSecurity scan
Machine-auditedInstall commandRepo verifieddsh-plugin topicLicenseREADMEAI wiki

ⓘ This plugin is a sub-package of the ningbainb/deepseek-harness-desktop monorepo — stars and activity count the whole repository.

Language
TypeScript
License
BSD-3-Clause
Branch
main
ai-agentai-coding-assistantcodexdeepseekdeepseek-harnessdesktop-appdshdsh-plugin

Install

cmdweb profile
$ dsh plugin --profile web add @linxin666/dsh-client-ui-task-board

Run the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial

Install via your agent

Install the DeepSeek Harness plugin ningbainb/deepseek-harness-desktop/packages/dsh-task-board for me: review the repository at https://github.com/ningbainb/deepseek-harness-desktop first, then run the install command and verify the plugin loads successfully.

Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.

At a Glance

This plugin adds a "Task Board" entry point to the DSH Web interface. After switching, the middle column becomes a multi-column card board, where tasks can be executed instantly (driving real agent sessions) or scheduled via cron, with results written back to cards in real time.

Core Capabilities

  • Inject "Task Board" entry row under "New Session" in the sidebar (wide column shows icon + text, collapsed rail shows only icon). Clicking switches the middle column to a five-column Kanban board
  • Five-column view: To Plan / To Do / In Progress / Completed / Failed; cards display title, description, status, update time, execution count; top supports search, create task, return to conversation
  • Click card to open details (title/description/execution Prompt/execution history), one-click does not immediately execute; details provide "Execute/Re-execute", "Delete (with confirmation)", "View Session (jump to real transcript)"
  • Real execution: After clicking "Execute", connect to workspace session via client runtime (reuse blank session or create new), set task title as session name, drive real agent with task Prompt via session.prompt; subscribe to session snapshots until the round ends, mark card as completed/failed and record results
  • Scheduled tasks: Detail panel enables 5-segment cron expression (minute hour day month week, supports * / */n / a-b / comma list) with common presets (daily 09:00, hourly, every 10 minutes, every Monday 09:00); upon enabling, calculate and persist "next run time", card displays schedule indicator
  • Host file persistence: Authoritative v3 ledger saved to Host-side profile isolated path, stores Project, compact Task Run, derived Evidence and optional persistent scheduling state; write serialized and atomically publish, keep corrupted files, copy backup before v2 document migration
  • System prompt injection: Host half registers plugin:task-board section via SystemPrompt.section (order 200), declares this plugin's existence, capabilities and limitations to every agent; the section automatically disappears after uninstall

Technical Implementation

  • Language: TypeScript (ESM, host + client halves)
  • Key Dependencies: @deepseek-ai/cordis (cordis plugin skeleton), @deepseek-ai/dsh-client-runtime / dsh-client-connection / dsh-client-ui-settings (client runtime services), @deepseek-ai/dsh-host-webserver + dsh-system-prompt (Host routing and system prompt injection), schemastery (configuration Schema)
  • Architecture Pattern: Official cordis bundle form, patch.yml inserts ui-task-board row into web profile; host half runs in dsh host process (SystemPrompt + file storage + fixed routes), client half runs in browser (runtime service wiring + DOM mount), the two sides depend on each other via cordis inject
  • Entry Files: src/index.ts (host loader) + src/client/index.ts (client apply), bundled output lib/index.js / lib/client.js

Use Cases

Users need to elevate scattered agent tasks in DSH from "temporary sessions" to "trackable, manageable, schedulable automation" workflows. Typical scenarios: Ops teams need to run the same set of prompts at fixed times (data patrol, daily report generation), teams need to沉淀 task execution status to Host for audit, individuals want to run ideas asynchronously into reproducible DSH sessions.

Prerequisites & Compatibility

DependencyMin VersionDescription
DSH runtime>=0.1.0-rc.7 <0.2.0Explicitly declared in package.json#dsh.compatibility.runtime
DSH Desktop>=2.7.0 <3.0.0Explicitly declared in package.json#dsh.compatibility.desktop, 2.6 tasks support Worktree mode
Python Native API^1.2.0Declared in package.json#dsh.compatibility.desktop.api
Node^22.19 || >=24No engines declared in source, follows monorepo convention; devDependencies includes @types/node ^22.20.0
React^18.2.0peerDependencies declared, client half is a React application
PlatformCross-platformPure JS/TS implementation, no native module dependencies

Installation

dsh plugin --profile web add github:ningbainb/deepseek-harness-desktop/packages/dsh-task-board

Configuration Options

ConfigTypeDescriptionDefault
enabledtoggleMaster switch for the plugin. After closing, system prompt will no longer be injected to agents, and board entry will not be mountedtrue
announceToAgenttoggleWhether to announce "Task Board" plugin existence in each agent's system prompt. After closing, agents can only learn about this plugin from userstrue
profileNamestringWhich DSH profile directory the Host-side ledger belongs to; if not specified, use DSH_PROFILE environment variable, defaults to web when not setRuntime DSH_PROFILE or web

Configuration options are displayed in the Web GUI's "Plugin Settings" panel, persisted under task-board namespace; takes effect immediately after save, no restart needed.

FAQ

Q: What does this plugin do?

A: Adds a "Task Board" entry in the DSH Web interface sidebar; clicking switches the middle column to a multi-column card board (To Plan/To Do/In Progress/Completed/Failed), allows creating tasks, instant execution (driving real agent sessions), and automatic scheduling via 5-segment cron expression.

Q: Does task execution consume API quota?

A: Yes. Each execution creates a real workspace session via client runtime and drives agent with session.prompt, consuming the same API quota as regular sessions.

Q: Where is task data stored?

A: Authoritative v3 ledger is on Host side at DSH_HOME/profiles/<profile>/state/task-board/tasks-v3.json; profile defaults to runtime DSH_PROFILE or web. Falls back to v2 Host path or browser localStorage v1 when Host endpoint is unavailable.

Q: Does the task board need to stay open for scheduled tasks?

A: Not necessarily. When Desktop 2.7 has user explicitly enable background automation and Runtime Provider provides host-job adapter, Host claims expired slots with lease, timezone cron and deterministic TaskRun (runs even with browser closed). Other cases (old Web Host, abnormal state format, no adapter) fall back to browser tab's ticker, requires tab to stay open, missed runs are skipped without queuing.

Q: Will missed cron triggers be backfilled?

A: Default is skip. Triggers missed during sleep/restart are all skipped, nextRunAt rolls forward from current time. Explicit run-once merges at most one backfill slot, queue-next keeps at most one pending slot while task is running.

Q: Will task data be lost after uninstall?

A: No. Uninstall only removes plugin registration row from profile and restores GUI to original state, ledger file remains in Host-side state/task-board directory.

Q: What needs to be done after installation?

A: Need to restart dsh web process. Profile layer (bundle row, dsh.client metadata) is only read at process startup, simply refreshing the page won't make the entry take effect.

Q: What is Worktree review mode?

A: Desktop 2.6 tasks can choose shared-workspace or Git Worktree. When Runtime Provider provides workspace/session observation capability, Host creates controlled Worktree, details display bounded Evidence and provide Commit/Merge/Keep/secondary confirmation Discard; clearly falls back to shared-workspace when capability is missing, doesn't fake isolation state.

Q: How to prevent plugin from exposing itself to agents?

A: Just turn off announceToAgent in Web GUI plugin settings, after saving the plugin:task-board section will be removed from system prompts in real time.

Ease of Use

Beginner — One-line installation command, after restarting GUI the entry is visible; configuration exposes only 3 toggle/string fields, full graphical operation; execution and scheduling both use DSH's own session mechanism, no coding required.

Known Issues & Limitations

  • Persistent Host Scheduler only enables when Desktop Runtime Provider intentionally provides host-job adapter (usually with user explicitly enabling background automation); other runtimes (old Web Host, state route unavailable or malformed) retain browser scheduling fallback
  • No commitment to continue scheduling after application fully exits; expired tasks are skipped after Host process holding executable ownership stops
  • Host advances nextRunAt before dispatching and writes deterministic TaskRun; after old owner lease expires, only re-dispatches unclaimed runs with original deterministic key that haven't recorded session identity yet
  • Worktree execution depends on optional Runtime Provider capability; uses shared-workspace when capability is missing, doesn't fake isolation state
  • Browser-side scheduler is 60s heartbeat + tab restore instant tick; tasks running at trigger time will be rejected by runTask guard, fall to next cron
  • Multiple same-origin browser tabs share the same ledger (synchronized via SSE from Host), deleted tasks won't be revived from other tabs' stale copies by writing back

Read the usage guide →

Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.

Listing badge

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/ningbainb/deepseek-harness-desktop/packages/dsh-task-board)

Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.

← Back to plugin directory