dennisrongo/dsh-plugins--plugins-dsh-mission-control0

@dennisrongo/dsh-mission-control

Mission Control 舰队仪表盘插件,提供会话列表、子智能体树、Token 消耗及审批收件箱展示。

AI 分析

核心用途是全局监控和管理复杂的智能体集群。适合运行多会话、多子代理协同任务,需要统一视图进行调度和审批的用户。

包名
@dennisrongo/dsh-mission-control
版本
0.3.0
许可证
MIT
最近更新
2026年8月28日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:dennisrongo/dsh-plugins#377c8ef55a1bc9a64a99d08a7b73c398ae83b113&path:plugins/dsh-mission-control

dsh-mission-control

Mission Control — a fleet dashboard plugin for DeepSeek Harness (dsh).

One glass panel over your entire agent fleet: live sessions, subagent swarm tree, token burn, and a permission inbox — registered into dsh's additive shell.overlay slot, so it floats over the stock web UI without touching it.

What it shows

Docked as a right rail that the shell's layout reflows around:

  • Fleet — every session (root + subagents) with running / waiting / done states, grouped by workspace
  • Swarm tree — coordinator → worker lineages, nested
  • Stats strip — session count, running, subagents, waiting-on-you
  • Token burn — estimated spend broken down by model
  • Permission inbox — sessions blocked on approval / question / plan-review
  • Feed — a running log of fleet events

Built on public faces only: ctx.sessions.list and ctx.workspaces.list (ObservableSnapshot → React), sessionStats projections (turns / steps / llmMs / decodeTokens), and PendingInteraction off the session summaries. No services, no tools, no presets — a pure consumer, same posture as the shipped ui-trajectory plugin.

Stage

Stage is a full-screen takeover, not a fourth panel mode — it layers over whichever tab you were on and returns you to it on exit, via Esc or ×.

It renders a live grid of tiles: one per session that is running, waiting on you, or was touched inside the activity window (a 30m / 2h toggle), most active first so the busiest tiles sit far left. A tile carries the session's live conversation and lets you answer a pending permission in place — the operator is already looking at the tile, so sending them back to the inbox to approve it would be the wrong move. Clicking through jumps to the session.

Stage covers the whole viewport, so unlike the docked panel it also spans DSH Desktop's 36px window-drag strip. That region resolves before hit-testing and outranks the overlay's z-index, so the bar clears the band with top padding and every control opts out with data-dsh-no-drag — otherwise the exit button lands under the caption controls and simply doesn't click.

Control metrics are CSS custom properties (--mc-ctl-h, --mc-ctl-font, --mc-msg-size). The 400px rail wants compact controls; Stage is a full-screen surface and overrides the same tokens with comfortable ones, so the two scales derive from one place instead of drifting apart.

Settings

A drawer in the panel header, persisted to localStorage under dsh-mission-control:settings. Parsing is defensive — any bad shape falls back to defaults, and a storage failure (private mode, quota) degrades to an in-memory value rather than throwing into the shell.

SettingDoes
Sessions per workspaceHow many sessions each Fleet group lists; the rest stay one click away. 0 = all.
Fleet sortOrders sessions inside a group. Sessions needing attention always stay on top regardless.
Show break timerToggles the pomodoro footer.
Work / break / long breakPomodoro phase lengths, in minutes.

The pomodoro timer runs in the footer and fires a desktop notification on each phase change. The drawer is a two-column grid — one column for every label, one for every control — so labels and controls line up across all rows; per-row space-between cannot do that, because it aligns each control to its own label.

Install (dev)

pnpm install
pnpm run build          # emits lib/index.js + lib/client.js
pnpm test               # offline smoke test

Mount into a profile (dev checkout):

# ~/.dsh/profiles//cordis.patch.yml
- insert:
    - id: dsh-mission-control
      name: '@dennisrongo/dsh-mission-control'

with the package linked into the profile workspace:

cd ~/.dsh/profiles/
dsh plugin --profile  add @dennisrongo/dsh-mission-control

Then dsh web and the panel rides in the overlay seat.

Status

Verified against dsh 0.1.1-rc.2 seams: window.__ModuleLoader__.load closure-factory convention, ctx.slots.register additive list entry, and useSyncExternalStore binding over ctx.sessions.list.

dsh is a fast-moving 0.1.x dev preview — re-verify seams on upgrade.