dsh-task-gantt

DSH PLUGINUI 与外观

仓库 xx529/dsh-task-gantt

UI 与外观 未标注验证等级 安全审查:未标注 可信度:未标注 可安装插件

为 DeepSeek Harness 侧边栏新增只读甘特图标签页,按队友泳道与真实会话时间轴展示共享任务的标题、摘要与状态。

一句话选型结论

按资料字段整理

dsh-task-gantt 是UI 与外观类的 DSH 可安装插件,未做沙盒验证,暂无安全审查结论,列出 5 项功能,没有现成安装命令,需要按仓库 README 接入。验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么;涉及密钥或系统权限的,建议先在隔离环境试装。

分类UI 与外观 收录类型可安装插件 验证等级未标注验证等级 安全审查未标注
验证等级 UNKNOWN 未标注验证等级
GitHub 星标 0 复刻 0 · 未关闭 issue 0
最近更新 2026-10-10 创建于 2026-10-10
README 12.7 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
  1. 1
    确认版本与运行环境

    仓库没有标注兼容版本与 Node.js 要求,先确认你的 DSH 版本能装,再继续。

  2. 2
    执行安装命令

    在 DSH 里执行上面的命令;多包仓库要注意区分具体子包名,别装错包。

  3. 3
    确认已挂载

    用 dsh plugin list 查看列表里是否出现这个插件,出现即挂载成功。

  4. 4
    试跑并检查权限

    加载后跑一个最小用例,确认它能正常工作;同时看它申请了哪些文件、命令或网络权限。

兼容 DSH 版本未标注版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名未发布到 npm可用 npm view 查看包信息

能做什么

5 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-task-gantt:为 DeepSeek Harness 侧边栏绘制团队任务甘特图

  • 队友泳道对应任务归属
  • 基于会话日志的真实时间轴
  • 回合带与步骤条嵌套展示
  • 任务卡含标题摘要与状态
  • 无法定位时诚实降级标注

上游标签

deepseek-harnessdshdsh-plugingantt

验证等级与安全审查

未标注验证等级
自动化流程结论,不是人工审核
验证等级未标注验证等级上游未给出验证结论,安装前请自行确认
安全审查未标注静态分析结论,未标注不代表已通过审查
仓库健康度未标注按仓库活跃度与最近更新时间给出
可信度未标注综合仓库活跃度与验证结果

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 列出了 5 项功能,能直接看出它解决什么问题。

先想清楚的地方

  • 安全审查还没结论,装之前先看仓库改了什么、要什么权限。
  • 没有现成安装命令,要按仓库 README 手动接入。
  • 验证通过不等于安全:插件会读写文件、执行命令或联网,装前先到仓库确认它做了什么。

更适合

  • 需要在UI 与外观场景里给 DSH 补能力的人。
  • 能接受在本地装依赖、愿意自己确认权限的人。

不太适合

  • 只使用 DSH 官方内置能力、不接受第三方插件的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
插件验证等级安全审查星标兼容版本安装命令
dsh-task-gantt当前 未做沙盒验证 未标注 0 未标注 无
nuwa-skill 未做沙盒验证 未标注 3.8 万 未标注 有
awesome-dsh-plugin L4 · 沙盒安装通过 低风险 1.8 万 0.1.1-rc.2 有
deepseek-balance-whale-widget L4 · 沙盒安装通过 低风险 4,492 0.1.7-rc.2 等 2 个 有
dsh-better-sidebar L4 · 沙盒安装通过 低风险 4,112 0.1.7-rc.2 等 10 个 有
dsh-deep-whale L4 · 沙盒安装通过 低风险 2,470 未标注 有

仓库档案

UI 与外观
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方xx529仓库 dsh-task-gantt · 默认分支 main
分类UI 与外观interface
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言TypeScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue0 / 0 / 0收录时的数值,非实时
创建 / 更新2026-10-10 · 2026-10-10最后推送 2026-10-11
本站收录2026-10-11首次进入本站目录的时间

README 全文

12.7 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-task-gantt

An agent-team task Gantt chart for the DeepSeek Harness sidebar — one swimlane per teammate on the y-axis, real session time on the x-axis, and every shared task drawn with its title and summary.

English | 中文

> Screenshot below is the real panel rendered from a synthetic fixture
> (5 lanes with 5 different agent colours, tasks of clearly different durations,
> one still running, message arrows in both directions), captured from a real
> browser at 2× and cropped to the panel itself: docs/screenshots/panel-v4.png.
> It is labelled as such on purpose: the drawing is the shipped component, but the
> DATA is a fixture, so it is not a real-team capture. The footer in the image
> carries the build identity (v0.2.11 · label-in-box), which is how a reader can
> tell which build drew it.
> The remaining shots (board overview from real team data, task-card detail,
> degraded state) are still pending; see
> docs/SCREENSHOTS.md. No mock-ups will be published.

dsh-task-gantt is a plugin for dsh-better-sidebar: it registers one extra sidebar tab. It is read-only — it never creates, claims, or completes a task.


Project status

Version 0.3.2
Frozen contract (src/shared/contract.ts) done
Host data layer (src/host/**) in progress
Sidebar tab registration (src/client/index.ts) done
Gantt rendering (src/client/ui/**) in progress
Real-machine mount smoke test not run yet

The chart is described below as specified by the frozen contract; for what has
actually been executed and observed, read
docs/VALIDATION.md (owned by the verification teammate) —
this README does not restate untested claims as results.

What you get

  • Swimlanes = the roster. The Lead first, then the teammates in roster order,
    then an unassigned row for tasks the board has not handed to anyone.
  • A real time axis. Every span and every task transition is dated from the
    durable session event log (epoch ms) — not from "when the panel happened to
    open".
  • Turn bands with step bars inside. A whole prompt/response turn is a faint
    band; each model step inside it is a solid bar. A span that has not closed yet
    is drawn open-ended and extends toward now.
  • Task chips carry the work, not just a colour. subject plus a one-line
    description, with status, owner, blockedBy, writeScopes and readiness in
    the detail view.
  • Honest degradation. When a lane cannot be dated, the panel says so and
    labels the task as live instead of inventing an interval.
  • Themed by tokens, bilingual by default. All colour comes from DSH's
    --dsw-alias-* / --dsw-font-* / --ds-* tokens, so every skin works; the UI
    is Chinese or English depending on the page language.

Requirements

Requirement Value
DSH 0.2.0-rc.2 (the version this plugin was developed against)
dsh-better-sidebar >= 0.4.0 (the release that introduced the ctx.betterSidebar registry service)
Node >= 20
Profile any browser-backed DSH Web profile

The plugin declares one peer, @deepseek-ai/cordis@^4.0.0, and marks it
optional. It declares no @deepseek-ai/dsh-* peer on purpose: the host's
startup compatibility preflight evaluates those ranges and silently disables the
whole profile row when one fails. See docs/DESIGN.md §8.

If dsh-better-sidebar is not installed, the plugin still loads and logs one
warning; it simply has no tab to register into.

Install

The commands below are quoted verbatim from
docs/INSTALL.md (owner: packaging), which is the single
place they are written down and carries the full evidence for each one.

cd ~/.dsh && dsh plugin --profile web add "github:xx529/dsh-task-gantt"

Then restart dsh web and hard-refresh the browser page (Cmd+Shift+R).

> Status: [not run]. xx529/dsh-task-gantt does not exist on GitHub yet
> (gh repo view xx529/dsh-task-gantt → "Could not resolve to a Repository"),
> so this exact command cannot be run end-to-end today. It is written from
> first-hand sources, not from memory: dsh plugin forwards its arguments
> verbatim to pnpm (~/.nvm/versions/node/v22.22.2/lib/node_modules/@deepseek-ai/dsh/lib/bin.js:96),
> and github:owner/repo is the form the official docs print for a bundle
> plugin (docs/INSTALL.md §1.1, with the same form verified
> against a real package).

> ### ⚠️ Do not install it under an alias
>
> … add "dsh-task-gantt@github:xx529/dsh-task-gantt" also parses, but it lands
> the package at node_modules/ while its inner package.json still says
> "name": "dsh-task-gantt". The profile's dsh.profile.bundles list and the
> Loader row are keyed by the package name, so the mismatch degrades to
> "warn, then skip". Use the unaliased form above
> (docs/INSTALL.md §1.1).

Optional prerequisite: the panel needs dsh-better-sidebar to have somewhere
to register. It is deliberately not a dependency of this package.

cd ~/.dsh && dsh plugin --profile web add dsh-better-sidebar

Uninstall

cd ~/.dsh && dsh plugin --profile web remove dsh-task-gantt

Restart dsh web afterwards.

> ⚠️ remove does not rewrite the patch layer. Uninstalling deletes the
> dependency but does not remove manually-added insert lines from a
> cordis.patch.yml. This package's row comes from its own bundle patch
> (dsh.bundle.patch → cordis.patch.yml), which leaves with the package, so
> nothing should be left behind — but if you had also hand-added an
> - insert: - id: dsh-task-gantt line to
> ~/.dsh/profiles/web/cordis.patch.yml, delete that line too
> (docs/INSTALL.md §5).

Usage

Opening the panel

  1. Open a session that has an agent team (a Lead session with teammates or at
    least one shared task).
  2. Open the right sidebar and click +.
  3. Pick the tab:
    - Chinese UI: 任务甘特图
    - English UI: Task Gantt

The tab is declared single: true — the documented single-instance sugar
(single: true ≡ dedupeKey: () => id): reopening it focuses the existing tab
instead of stacking a second one. If your sidebar shows no description next to
the entry, that is a host-side rule, not a plugin bug — the host only renders
descriptions while the new-tab list holds 4 or fewer entries.

Reading the chart

Element Meaning
Lane header one roster member: name, role, and a status dot
Faint band a whole turn (turn/start … settlement)
Solid bar one model step inside a turn (step/start … step/end)
Open-ended bar the span has not closed yet — it extends toward "now"
Vertical "now" line the current wall-clock time
Task chip a shared task, positioned by its dated history
Task chip with a live marker the task has no dated history; its position is its current state, not a recorded interval

Hover or focus a task chip for the full subject, description, blockedBy,
writeScopes, and whether it is ready. The chart is built from real DOM
elements rather than a canvas, so it is selectable text and screen-reader
reachable.

Degraded states

The panel always tells you how its timeline was assembled. The response carries a
source field with exactly three values:

source What it means What you see
log spans came from readable durable session logs — authoritative full timeline
partial some lanes' logs were unreadable the readable lanes are drawn; the others degrade, with a note
live no log was readable — the board is projection-only current state only, clearly labelled, with a note

Two more states are worth knowing:

  • No agent team in this session — the empty state; there is nothing to chart
    yet.
  • The board stopped early — the Lead's durable team failure string is shown
    as a banner.

In no degraded state does the plugin invent a timestamp. A task with no recorded
history is drawn at its current position and marked as live; that is deliberate.

How it works

The chart is assembled from two sources, because either one alone cannot draw
it:

  1. The agentTeam session projection (browser side) is authoritative for
    what exists and what state it is in — the roster, phases, and the shared
    tasks with their status, owner, dependencies and write scopes. It contains no
    timestamps at all
    : neither the member records nor the task records carry a
    createdAt / startedAt / completedAt. It can tell you a task is
    completed; it can never tell you when.
  2. The durable session event log (host side, one log per session — the Lead
    and each teammate) is the only authoritative clock. Events carry time (epoch
    ms) and seq. The host half reads the logs and folds them into activity spans
    and dated task transitions.

The host half exposes the folded result over a small read-only JSON API
(POST /dsh-task-gantt/api/timeline), and the browser half renders it. The
browser cannot read session logs itself, which is why the split exists.

Where task times come from

Task transitions could in principle be invisible to the log, so the plugin tries
three tiers in order and stops at the first that yields data:

  1. a task-related event in the log (team/task) → use its time verbatim;
  2. otherwise a tool/call for the shared-task-board tool (team_task_create /
    team_task_update) → use the call's time, and use its expected_revision
    to attribute the change to the teammate that made it;
  3. otherwise nothing → history stays empty and the task is drawn as live.

Tier 1 is the normal path, and this was measured. team/task events are
written into the Lead's own session log and flushed immediately, so a read
right after a board change already sees them; the six teammate logs contained
zero such events
(docs/FINDINGS-host.md §1, §4.1–4.2). Tier 2 remains
as a fallback and as the attribution channel, because team/task carries the
full task snapshot but no action field — the action has to be derived from
revision continuity plus status transitions
(docs/FINDINGS-host.md §4.4).

Tier 3 is a real outcome, not a bug. See docs/DESIGN.md §3.

Configuration

None. The plugin registers one tab and one HTTP route prefix and has no settings
surface, no config file, and no environment variables.

FAQ

Does it modify my tasks?
No. The plugin is read-only; it never calls the task-create/update service. The
only HTTP routes it registers are POST …/timeline and POST …/ping, both
same-origin.

Why is a bar missing for a task that clearly ran?
Because its transition was never recorded in a readable session log (tier 3
above). The task is still drawn at its current position and marked live rather
than being placed at a guessed time.

Why does the tab not appear?
Either dsh-better-sidebar is not mounted in this profile, or the plugin row is
not active. Check that the plugin appears in the profile's
dsh.profile.bundles, then restart dsh web.

Does it work on a profile without an agent team?
Yes — it shows the empty state. The plugin probes every service it needs with
ctx.get(...) and never requires the agent-team layer to activate.

Will it work with my skin?
It should. The panel consumes only DSH theme tokens (--dsw-alias-*,
--dsw-font-*, --ds-*) and contains zero colour literals; that is enforced by a
test.

Development

pnpm install
pnpm run typecheck     # tsc --noEmit, must be 0 errors
pnpm run test          # vitest
pnpm run build         # emits lib/index.js (host) + lib/client.js (browser)

lib/ is committed on purpose: the plugin installs from GitHub with no build
step, so the published bundle has to be in the repository — and CI checks that it
is current.

To try a local checkout against your profile without installing a copy (quoted
verbatim from docs/INSTALL.md §1.2):

cd ~/.dsh && dsh plugin --profile web add "link:/Users/lzx/Documents/GitHub/dsh-task-gantt"

Design notes and data-source rationale: docs/DESIGN.md.
Market/submission material: docs/MARKET.md.
What has actually been verified: docs/VALIDATION.md.

License

MIT — see LICENSE.

常见问题

7 问
答案由本站依据条目字段整理,不引用上游原文
dsh-task-gantt 怎么安装?

本站没有抓到该条目的安装命令,请到仓库主页确认安装方式;这类条目多数是生态应用或尚未发布安装包的项目。

dsh-task-gantt 的验证等级是什么意思?

未标注验证等级。上游未给出验证结论,安装前请自行确认

dsh-task-gantt 安全吗?

未标注。

dsh-task-gantt 装之前要先确认什么?

先看它会读写哪些文件、执行哪些命令、连接哪些网络地址;验证等级只说明装得上、跑得起来,不等于安全。涉及密钥或系统权限的,建议先在隔离环境试装。

dsh-task-gantt 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-task-gantt 有哪些功能?

队友泳道对应任务归属、基于会话日志的真实时间轴、回合带与步骤条嵌套展示、任务卡含标题摘要与状态、无法定位时诚实降级标注。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

UI 与外观
按星标排序,可作替代方案

nuwa-skill

nuwa-skill

女娲 DSH plugin 只需输入一个名字,就自动调研、提炼并验证任何人的心智模型、决策启发式与表达 DNA,生成可直接调用的思维视角 S

未标注验证等级 3.8 万 星

awesome-dsh-plugin

awesome-dsh-plugin

A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harnes

L4 · 沙盒安装通过 1.8 万 星

deepseek-balance-whale-widget

DeepSeek-Balance-Whale-Widget

DSH 界面右下角的常驻小鲸鱼余额挂件,实时显示 DeepSeek 账户余额、今日已用与每轮对话消耗,支持拖拽吸附、Q 弹动画与音效,开箱即

L4 · 沙盒安装通过 4,492 星

dsh-better-sidebar

DSH-better-sidebar

面向 DeepSeek Harness 的服务化侧边栏工作台插件,把文件编辑、终端、Git 变更、子代理任务与侧边对话整合进右侧栏与底部面板

L4 · 沙盒安装通过 4,112 星

dsh-deep-whale

dsh-deep-whale

DSH Web 鲸鱼娘皮肤系列(深海女仆工坊 maid-atelier)。

L4 · 沙盒安装通过 2,470 星

deepseek-design

deepseek-design

可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。

L4 · 沙盒安装通过 1,438 星

xx529 的其它插件

3 个

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 —。