dsh-task-gantt
Agent-team task Gantt chart for the DSH sidebar — teammates on the y-axis, real session time on the x-axis, task title and summary in every bar. · DSH 侧边栏的 agent team 任务甘特图。 用于可视化团队任务进度。适合需要直观监控多Agent协同任务执行时间与状态的用户。
Install
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:xx529/dsh-task-ganttREADME
Read the full README ↗Usage
Opening the panel
- Open a session that has an agent team (a Lead session with teammates or at least one shared task).
- Open the right sidebar and click
+. - 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.
Configuration
None. The plugin registers one tab and one HTTP route prefix and has no settings surface, no config file, and no environment variables.