# firetruck666/dsh-task-board architecture

> Architecture diagram of the GitHub repository firetruck666/dsh-task-board, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/firetruck666/dsh-task-board
- Repository: https://github.com/firetruck666/dsh-task-board

## Overview

dsh-task-board is a DeepSeek Harness web plugin. A user opens its sidebar board, edits a task, and launches it into a real DSH session; execution results update the task lifecycle and are reflected across connected devices. The README also documents a separate checklist, AI-driven task operations, schedules, session rules, cruise automation, presets, and review/notification surfaces. Host authority and client behavior are supported by the sampled entry points and service excerpts; finer wiring for unsampled feature modules is intentionally not inferred.

Main entry points: [`src/core/controller.ts`](https://github.com/firetruck666/dsh-task-board/blob/main/src/core/controller.ts) (Board controller), [`src/client/index.ts`](https://github.com/firetruck666/dsh-task-board/blob/main/src/client/index.ts) (Client bootstrap), [`src/host/board-service.ts`](https://github.com/firetruck666/dsh-task-board/blob/main/src/host/board-service.ts) (Authoritative board service), [`src/core/execution.ts`](https://github.com/firetruck666/dsh-task-board/blob/main/src/core/execution.ts) (Execution service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interface["User interface"]
  node_sidebar["Sidebar panels<br/>[TaskBoardPanel.tsx]"]
  node_boardui["Kanban board<br/>[TaskBoard.tsx]"]
  node_taskdetail["Task details<br/>[TaskDetail.tsx]"]
  node_sessionui["Session surfaces<br/>[SessionDetail.tsx]"]
end

subgraph group_runtime["Client runtime"]
  node_client["Client bootstrap<br/>[index.ts]"]
  node_transport["Board transport<br/>[board-transport.ts]"]
end

subgraph group_domain["Task domain"]
  node_controller["Board controller<br/>[controller.ts]"]
  node_taskmodel["Task lifecycle<br/>[tasks.ts]"]
  node_execution["Execution service<br/>[execution.ts]"]
  node_automation["Schedules and rules<br/>[automation.ts]"]
  node_scheduler["Scheduler and cruise<br/>[scheduler.ts]"]
  node_presets["Run and schedule presets<br/>[run-presets.ts]"]
  node_checklist["Task checklist<br/>[items-doc.ts]"]
end

subgraph group_host["Host services"]
  node_hostentry["Host plugin entry<br/>[index.ts]"]
  node_boardroute["Board API route<br/>[board-route.ts]"]
  node_boardservice["Authoritative board service<br/>[board-service.ts]"]
  node_storage[("Host documents<br/>[data-root.ts]")]
end

subgraph group_integrations["DSH integrations"]
  node_agent["AI commands and tools<br/>[register.ts]"]
end

node_user(("Board user"))
node_dshsessions[("DSH sessions")]
node_realtime(("SSE clients"))

node_user -->|"opens panel"| node_sidebar
node_sidebar -->|"shows board"| node_boardui
node_boardui -->|"uses runtime"| node_client
node_taskdetail -->|"edits tasks"| node_controller
node_sessionui -->|"uses session runtime"| node_client
node_client -->|"creates"| node_controller
node_client -->|"configures"| node_execution
node_controller -->|"transitions"| node_taskmodel
node_controller -->|"launches runs"| node_execution
node_execution -->|"drives sessions"| node_dshsessions
node_controller -->|"evaluates rules"| node_automation
node_scheduler -->|"triggers work"| node_controller
node_controller -->|"coordinates automation"| node_scheduler
node_taskdetail -->|"manages presets"| node_presets
node_client -->|"loads checklist"| node_checklist
node_hostentry -->|"registers route"| node_boardroute
node_hostentry -->|"registers AI"| node_agent
node_boardroute -->|"dispatches requests"| node_boardservice
node_boardservice -->|"reads and writes"| node_storage
node_transport -->|"syncs documents"| node_boardroute
node_transport -->|"watches updates"| node_realtime
node_boardservice -->|"publishes changes"| node_realtime
node_agent -->|"adds AI operations"| node_dshsessions

click node_sidebar "https://github.com/firetruck666/dsh-task-board/blob/main/src/client/TaskBoardPanel.tsx"
click node_boardui "https://github.com/firetruck666/dsh-task-board/blob/main/src/client/board/TaskBoard.tsx"
click node_taskdetail "https://github.com/firetruck666/dsh-task-board/blob/main/src/client/board/TaskDetail.tsx"
click node_sessionui "https://github.com/firetruck666/dsh-task-board/blob/main/src/client/board/SessionDetail.tsx"
click node_client "https://github.com/firetruck666/dsh-task-board/blob/main/src/client/index.ts"
click node_transport "https://github.com/firetruck666/dsh-task-board/blob/main/src/client/board-transport.ts"
click node_controller "https://github.com/firetruck666/dsh-task-board/blob/main/src/core/controller.ts"
click node_taskmodel "https://github.com/firetruck666/dsh-task-board/blob/main/src/core/tasks.ts"
click node_execution "https://github.com/firetruck666/dsh-task-board/blob/main/src/core/execution.ts"
click node_automation "https://github.com/firetruck666/dsh-task-board/blob/main/src/core/automation.ts"
click node_scheduler "https://github.com/firetruck666/dsh-task-board/blob/main/src/core/scheduler.ts"
click node_presets "https://github.com/firetruck666/dsh-task-board/blob/main/src/core/run-presets.ts"
click node_checklist "https://github.com/firetruck666/dsh-task-board/blob/main/src/core/items-doc.ts"
click node_hostentry "https://github.com/firetruck666/dsh-task-board/blob/main/src/index.ts"
click node_boardroute "https://github.com/firetruck666/dsh-task-board/blob/main/src/host/board-route.ts"
click node_boardservice "https://github.com/firetruck666/dsh-task-board/blob/main/src/host/board-service.ts"
click node_storage "https://github.com/firetruck666/dsh-task-board/blob/main/src/host/data-root.ts"
click node_agent "https://github.com/firetruck666/dsh-task-board/blob/main/src/host/agent/register.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_sidebar,node_boardui,node_taskdetail,node_sessionui,node_user,node_realtime toneBlue
class node_client,node_transport,node_dshsessions toneAmber
class node_controller,node_taskmodel,node_execution,node_automation,node_scheduler,node_presets,node_checklist toneMint
class node_hostentry,node_boardroute,node_boardservice,node_storage toneRose
class node_agent toneIndigo
```

## Components

### User interface

- [Sidebar panels](https://github.com/firetruck666/dsh-task-board/blob/main/src/client/TaskBoardPanel.tsx): `src/client/TaskBoardPanel.tsx`
- [Kanban board](https://github.com/firetruck666/dsh-task-board/blob/main/src/client/board/TaskBoard.tsx): `src/client/board/TaskBoard.tsx`
- [Task details](https://github.com/firetruck666/dsh-task-board/blob/main/src/client/board/TaskDetail.tsx): `src/client/board/TaskDetail.tsx`
- [Session surfaces](https://github.com/firetruck666/dsh-task-board/blob/main/src/client/board/SessionDetail.tsx): `src/client/board/SessionDetail.tsx`

### Client runtime

- [Client bootstrap](https://github.com/firetruck666/dsh-task-board/blob/main/src/client/index.ts): `src/client/index.ts`
- [Board transport](https://github.com/firetruck666/dsh-task-board/blob/main/src/client/board-transport.ts): `src/client/board-transport.ts`

### Task domain

- [Board controller](https://github.com/firetruck666/dsh-task-board/blob/main/src/core/controller.ts): `src/core/controller.ts`
- [Task lifecycle](https://github.com/firetruck666/dsh-task-board/blob/main/src/core/tasks.ts): `src/core/tasks.ts`
- [Execution service](https://github.com/firetruck666/dsh-task-board/blob/main/src/core/execution.ts): `src/core/execution.ts`
- [Schedules and rules](https://github.com/firetruck666/dsh-task-board/blob/main/src/core/automation.ts): `src/core/automation.ts`
- [Scheduler and cruise](https://github.com/firetruck666/dsh-task-board/blob/main/src/core/scheduler.ts): `src/core/scheduler.ts`
- [Run and schedule presets](https://github.com/firetruck666/dsh-task-board/blob/main/src/core/run-presets.ts): `src/core/run-presets.ts`
- [Task checklist](https://github.com/firetruck666/dsh-task-board/blob/main/src/core/items-doc.ts): `src/core/items-doc.ts`

### Host services

- [Host plugin entry](https://github.com/firetruck666/dsh-task-board/blob/main/src/index.ts): `src/index.ts`
- [Board API route](https://github.com/firetruck666/dsh-task-board/blob/main/src/host/board-route.ts): `src/host/board-route.ts`
- [Authoritative board service](https://github.com/firetruck666/dsh-task-board/blob/main/src/host/board-service.ts): `src/host/board-service.ts`
- [Host documents](https://github.com/firetruck666/dsh-task-board/blob/main/src/host/data-root.ts): `src/host/data-root.ts`

### DSH integrations

- [AI commands and tools](https://github.com/firetruck666/dsh-task-board/blob/main/src/host/agent/register.ts): `src/host/agent/register.ts`

### Other components

- **Board user**
- **DSH sessions**
- **SSE clients**

## Connections

- Board user → Sidebar panels: opens panel
- Sidebar panels → Kanban board: shows board
- Kanban board → Client bootstrap: uses runtime
- Task details → Board controller: edits tasks
- Session surfaces → Client bootstrap: uses session runtime
- Client bootstrap → Board controller: creates
- Client bootstrap → Execution service: configures
- Board controller → Task lifecycle: transitions
- Board controller → Execution service: launches runs
- Execution service → DSH sessions: drives sessions
- Board controller → Schedules and rules: evaluates rules
- Scheduler and cruise → Board controller: triggers work
- Board controller → Scheduler and cruise: coordinates automation
- Task details → Run and schedule presets: manages presets
- Client bootstrap → Task checklist: loads checklist
- Host plugin entry → Board API route: registers route
- Host plugin entry → AI commands and tools: registers AI
- Board API route → Authoritative board service: dispatches requests
- Authoritative board service → Host documents: reads and writes
- Board transport → Board API route: syncs documents
- Board transport → SSE clients: watches updates
- Authoritative board service → SSE clients: publishes changes
- AI commands and tools → DSH sessions: adds AI operations
