@hueyexe/opencode-ensemble 0.9.0 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![npm version](https://img.shields.io/npm/v/@hueyexe/opencode-ensemble.svg)](https://www.npmjs.com/package/@hueyexe/opencode-ensemble)
4
4
  [![npm downloads](https://img.shields.io/npm/dm/@hueyexe/opencode-ensemble.svg)](https://www.npmjs.com/package/@hueyexe/opencode-ensemble)
5
- [![tests](https://img.shields.io/badge/tests-432%20passing-brightgreen.svg)]()
5
+ [![tests](https://img.shields.io/badge/tests-460%20passing-brightgreen.svg)]()
6
6
  [![TypeScript](https://img.shields.io/badge/TypeScript-strict-blue.svg)]()
7
7
  [![OpenCode SDK](https://img.shields.io/badge/deps-OpenCode%20SDK%20only-blue.svg)]()
8
8
  [![license](https://img.shields.io/badge/license-MIT-blue.svg)](./LICENSE)
@@ -89,6 +89,31 @@ Lead: "All validation and tests are complete. 5 endpoints validated,
89
89
 
90
90
  All teammate changes are now in your working directory, unstaged, ready for you to review file-by-file with `git diff`.
91
91
 
92
+ ## Dashboard
93
+
94
+ A real-time mission control dashboard runs at `http://localhost:4747` while OpenCode is active.
95
+
96
+ ![Ensemble Dashboard](docs/dashboard.png)
97
+
98
+ - **Health ring** — at-a-glance team health indicator in the header
99
+ - **Agent cards** — status, current task, activity sparklines, timing. Click to open detail drawer
100
+ - **Agent drawer** — full prompt, model, execution status, chat-style message history with markdown rendering
101
+ - **Task board** — progress bar, collapsible status groups, dependency arrows
102
+ - **Activity feed** — chat-style message bubbles with avatars, expandable with full markdown
103
+ - **Timeline** — horizontal event strip showing spawns, messages, completions, shutdowns
104
+ - **Keyboard shortcuts** — `j/k` navigate agents, `Enter` opens drawer, `Esc` closes, `?` shows help
105
+ - **Live clock** — current time + team session duration
106
+
107
+ Configure the port in `.opencode/ensemble.json`:
108
+
109
+ ```json
110
+ {
111
+ "dashboardPort": 4747
112
+ }
113
+ ```
114
+
115
+ Set to `0` to disable. The dashboard starts automatically when OpenCode loads the plugin.
116
+
92
117
  ## Install
93
118
 
94
119
  Two steps: add the plugin, then allowlist worktree paths.
@@ -101,7 +126,7 @@ Add to your OpenCode config with a pinned version. Project-level or global.
101
126
 
102
127
  ```json
103
128
  {
104
- "plugin": ["@hueyexe/opencode-ensemble@0.9.0"]
129
+ "plugin": ["@hueyexe/opencode-ensemble@0.10.0"]
105
130
  }
106
131
  ```
107
132
 
@@ -109,7 +134,7 @@ Add to your OpenCode config with a pinned version. Project-level or global.
109
134
 
110
135
  ```json
111
136
  {
112
- "plugin": ["@hueyexe/opencode-ensemble@0.9.0"]
137
+ "plugin": ["@hueyexe/opencode-ensemble@0.10.0"]
113
138
  }
114
139
  ```
115
140
 
@@ -159,7 +184,7 @@ export { default } from "/path/to/opencode-ensemble/src/index.ts"
159
184
 
160
185
  ## Tools
161
186
 
162
- 13 tools. The lead has all of them. Teammates get 6 (messaging + tasks).
187
+ 14 tools. The lead has all of them. Teammates get 6 (messaging + tasks).
163
188
 
164
189
  **Team lifecycle** (lead only)
165
190
 
@@ -167,8 +192,9 @@ export { default } from "/path/to/opencode-ensemble/src/index.ts"
167
192
  |------|-------------|
168
193
  | `team_create` | Create a team. Caller becomes the lead. |
169
194
  | `team_spawn` | Start a new teammate with a task. Supports `plan_approval` mode. |
170
- | `team_shutdown` | Ask a teammate to stop. Supports `force` flag for immediate abort. |
171
- | `team_cleanup` | Remove the team when done. |
195
+ | `team_shutdown` | Ask a teammate to stop. Preserves their branch before aborting. Supports `force` flag. |
196
+ | `team_merge` | Merge a shutdown teammate's branch into working directory (unstaged). |
197
+ | `team_cleanup` | Remove the team when done. Safety-net merges any forgotten branches. |
172
198
  | `team_status` | See all members, their status, and a task summary. |
173
199
  | `team_view` | Switch the TUI to a teammate's session. |
174
200
 
@@ -236,7 +262,8 @@ Configure via JSON files, environment variables, or both. Project config overrid
236
262
  "stallMinSteps": 3,
237
263
  "stallTokenThreshold": 500,
238
264
  "timeoutMs": 1800000,
239
- "rateLimitCapacity": 10
265
+ "rateLimitCapacity": 10,
266
+ "dashboardPort": 4747
240
267
  }
241
268
  ```
242
269
 
@@ -252,6 +279,7 @@ All fields are optional. Missing fields use defaults.
252
279
  | `stallTokenThreshold` | `500` | Output tokens per step below which the agent is considered stalled |
253
280
  | `timeoutMs` | `1800000` (30 min) | Hard timeout for busy teammates. `0` disables. |
254
281
  | `rateLimitCapacity` | `10` | Token bucket capacity for team tool calls. `0` disables. |
282
+ | `dashboardPort` | `4747` | Dashboard server port. `0` disables. |
255
283
 
256
284
  ### Environment variables
257
285
 
@@ -308,7 +336,7 @@ Same coordination model (shared tasks, peer messaging, lead coordination) with s
308
336
  ```bash
309
337
  bun install
310
338
  bun run typecheck
311
- bun test # 432 tests
339
+ bun test # 460 tests
312
340
  bun run build
313
341
  ```
314
342