Workflow & Automation

dsh-todo-panel

1479650473/dsh-todo-panel · ★ 0

1479650473

Persistent to-do panel for DeepSeek Harness: header toggle opens a floating task panel fed by the todos projection

License
Apache-2.0
Added
2026-08-16
Maintenance
active
Install kind
github
Manifest details
Manifest status
Declared
Manifest path
package.json#dsh
Manifest checked
2026-08-19
Lifecycle scripts
None found

Static manifest checks report declarations only; they are not compatibility or security review.

安装

dsh plugin --profile web add github:1479650473/dsh-todo-panel

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

For install and environment setup, plus plugin development tutorials, see DSH community docs ↗

README

Source README · body: en · Read Chinese README

Table of contents
  1. Features
  2. Requirements
  3. Installation
  4. Screenshots
  5. Development
  6. Architecture
  7. License

A persistent, toggleable to-do panel for DeepSeek Harness: a conversation-header toggle opens a floating task panel fed by the todos projection, alongside the stock composer strip.

The stock conversation.input.dock to-do strip (mounted by @deepseek-ai/dsh-client-ui-conversation) is left untouched — this plugin only adds the persistent floating view, so both surfaces stay in sync off the same projection.

Features

  • Header toggle — a checklist button in the conversation header (conversation.session.header.actions) flips the panel; its pressed state mirrors the panel.
  • Floating panel — a fixed-position card over the frame-wide shell.overlay slot, with the to-do list, status glyphs, and an open-item count.
  • Same data, no duplication — the panel reads the todos projection from the current session summary; hidden while closed or while the session carries no to-dos.
  • Bilingual — zh / en dictionaries on its own todo-panel locale namespace.

Requirements

  • DeepSeek Harness >= 0.1.0-rc.6, with the to-do capability mounted (@deepseek-ai/dsh-tool-todo registers the todos projection). To-dos are cleared at the start of each turn, per the stock projection semantics.

Installation

dsh plugin add dsh-todo-panel

The dsh.bundle manifest (cordis.patch.yml) mounts the server-side plugin entry and the dsh.client declaration injects the browser half immediately (platform: web), so a profile restart is enough to enable it.

Screenshots

(TBD — added after the first tagged release.)

Development

npm install        # or pnpm install
npm run typecheck  # tsc --noEmit
npm run test       # vitest (jsdom per-file, __ModuleLoader__ harness)
npm run build      # tsc declarations + esbuild browser bundle → lib/

Architecture

  • src/client/index.ts — client plugin body: registers the todo-panel dictionaries and injects the toggle and the floating panel into their slots.
  • src/client/TodoToggle.tsx — the header toggle (conversation.session.header.actions).
  • src/client/TodoFloatingPanel.tsx — the floating panel (shell.overlay); reads the current session's projectionValues.todos because root-scoped entries receive no session framework hooks.
  • src/client/TodoGlyphs.tsx — status glyphs for the three todo states.
  • src/client/panel-store.ts — the cross-slot visibility store shared by toggle and panel.
  • src/client/locales.ts — zh / en dictionaries.
  • scripts/build.mjs — esbuild bundle with the harness's window.__ModuleLoader__.load wrapper and CSS Modules compiled to an injected <style> tag.

License

Apache-2.0 — see LICENSE.