@hueyexe/opencode-ensemble 0.9.1 → 0.11.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-452%20passing-brightgreen.svg)]()
5
+ [![tests](https://img.shields.io/badge/tests-471%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.1"]
129
+ "plugin": ["@hueyexe/opencode-ensemble@0.11.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.1"]
137
+ "plugin": ["@hueyexe/opencode-ensemble@0.11.0"]
113
138
  }
114
139
  ```
115
140
 
@@ -217,6 +242,7 @@ Teammate messages arrive in the lead's session as `[Team message from alice]: ..
217
242
  - **Spawn rollback**: if the initial prompt fails, the member, session, and worktree are all cleaned up
218
243
  - **Timeout watchdog**: teammates stuck busy beyond the TTL are automatically timed out and aborted
219
244
  - **Stall detection**: detects teammates making no progress (low output tokens or no communication) and escalates to the lead
245
+ - **Peer-to-peer communication**: teammates can message each other directly, with idle-flush delivery and chatty agent detection
220
246
  - **Auto-merge on cleanup**: worktree branches are squash-merged into your working directory as unstaged changes for review
221
247
  - **Spawn circuit breaker**: stops retrying after 3 consecutive spawn failures
222
248
  - **Graceful shutdown**: busy teammates receive a shutdown message and finish their current work. Use `force: true` to abort immediately.
@@ -237,7 +263,8 @@ Configure via JSON files, environment variables, or both. Project config overrid
237
263
  "stallMinSteps": 3,
238
264
  "stallTokenThreshold": 500,
239
265
  "timeoutMs": 1800000,
240
- "rateLimitCapacity": 10
266
+ "rateLimitCapacity": 10,
267
+ "dashboardPort": 4747
241
268
  }
242
269
  ```
243
270
 
@@ -253,6 +280,7 @@ All fields are optional. Missing fields use defaults.
253
280
  | `stallTokenThreshold` | `500` | Output tokens per step below which the agent is considered stalled |
254
281
  | `timeoutMs` | `1800000` (30 min) | Hard timeout for busy teammates. `0` disables. |
255
282
  | `rateLimitCapacity` | `10` | Token bucket capacity for team tool calls. `0` disables. |
283
+ | `dashboardPort` | `4747` | Dashboard server port. `0` disables. |
256
284
 
257
285
  ### Environment variables
258
286
 
@@ -309,7 +337,7 @@ Same coordination model (shared tasks, peer messaging, lead coordination) with s
309
337
  ```bash
310
338
  bun install
311
339
  bun run typecheck
312
- bun test # 452 tests
340
+ bun test # 471 tests
313
341
  bun run build
314
342
  ```
315
343