opencode-swarm-plugin 0.10.0 → 0.11.1

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.
@@ -6,10 +6,15 @@
6
6
  {"id":"opencode-swarm-plugin-044p.2","title":"Second","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:54.520507-08:00","updated_at":"2025-12-08T11:10:56.339784-08:00","closed_at":"2025-12-08T11:10:56.339784-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-044p.2","depends_on_id":"opencode-swarm-plugin-044p","type":"parent-child","created_at":"2025-12-08T11:10:54.520862-08:00","created_by":"daemon"}]}
7
7
  {"id":"opencode-swarm-plugin-044p.3","title":"Third","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:54.554603-08:00","updated_at":"2025-12-08T11:10:56.365658-08:00","closed_at":"2025-12-08T11:10:56.365658-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-044p.3","depends_on_id":"opencode-swarm-plugin-044p","type":"parent-child","created_at":"2025-12-08T11:10:54.55496-08:00","created_by":"daemon"}]}
8
8
  {"id":"opencode-swarm-plugin-044p.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:54.58671-08:00","updated_at":"2025-12-08T11:10:56.390567-08:00","closed_at":"2025-12-08T11:10:56.390567-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-044p.4","depends_on_id":"opencode-swarm-plugin-044p","type":"parent-child","created_at":"2025-12-08T11:10:54.587031-08:00","created_by":"daemon"}]}
9
+ {"id":"opencode-swarm-plugin-05mcs","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:24.790073-08:00","updated_at":"2025-12-09T10:00:26.756896-08:00","closed_at":"2025-12-09T10:00:26.756896-08:00"}
9
10
  {"id":"opencode-swarm-plugin-0720","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:55.375626-08:00","updated_at":"2025-12-08T08:56:57.950858-08:00","closed_at":"2025-12-08T08:56:57.950858-08:00"}
10
11
  {"id":"opencode-swarm-plugin-07m","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:10.92786-08:00","updated_at":"2025-12-07T19:39:12.442074-08:00","closed_at":"2025-12-07T19:39:12.442074-08:00"}
11
12
  {"id":"opencode-swarm-plugin-090","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-07T19:39:18.980247-08:00","updated_at":"2025-12-07T19:39:20.684844-08:00","closed_at":"2025-12-07T19:39:20.684844-08:00"}
12
13
  {"id":"opencode-swarm-plugin-0agp","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:22.766681-08:00","updated_at":"2025-12-08T11:11:25.385398-08:00","closed_at":"2025-12-08T11:11:25.385398-08:00"}
14
+ {"id":"opencode-swarm-plugin-0bodc","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-09T10:00:23.682038-08:00","updated_at":"2025-12-09T10:00:26.189078-08:00","closed_at":"2025-12-09T10:00:26.189078-08:00"}
15
+ {"id":"opencode-swarm-plugin-0bodc.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:23.726612-08:00","updated_at":"2025-12-09T10:00:26.219506-08:00","closed_at":"2025-12-09T10:00:26.219506-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-0bodc.1","depends_on_id":"opencode-swarm-plugin-0bodc","type":"parent-child","created_at":"2025-12-09T10:00:23.72705-08:00","created_by":"daemon"}]}
16
+ {"id":"opencode-swarm-plugin-0bodc.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-09T10:00:23.772101-08:00","updated_at":"2025-12-09T10:00:26.249968-08:00","closed_at":"2025-12-09T10:00:26.249968-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-0bodc.2","depends_on_id":"opencode-swarm-plugin-0bodc","type":"parent-child","created_at":"2025-12-09T10:00:23.772406-08:00","created_by":"daemon"}]}
17
+ {"id":"opencode-swarm-plugin-0bodc.3","title":"Subtask 3","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-09T10:00:23.815565-08:00","updated_at":"2025-12-09T10:00:26.281479-08:00","closed_at":"2025-12-09T10:00:26.281479-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-0bodc.3","depends_on_id":"opencode-swarm-plugin-0bodc","type":"parent-child","created_at":"2025-12-09T10:00:23.815895-08:00","created_by":"daemon"}]}
13
18
  {"id":"opencode-swarm-plugin-0giv","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:21:27.5822-08:00","updated_at":"2025-12-08T08:21:30.125084-08:00","closed_at":"2025-12-08T08:21:30.125084-08:00"}
14
19
  {"id":"opencode-swarm-plugin-0jxx","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:16.923763-08:00","updated_at":"2025-12-08T08:22:19.339586-08:00","closed_at":"2025-12-08T08:22:19.339586-08:00"}
15
20
  {"id":"opencode-swarm-plugin-0kb2","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:23:18.591779-08:00","updated_at":"2025-12-08T08:23:20.415392-08:00","closed_at":"2025-12-08T08:23:20.415392-08:00"}
@@ -30,6 +35,8 @@
30
35
  {"id":"opencode-swarm-plugin-0t77w.3","title":"Third","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:42.476141-08:00","updated_at":"2025-12-08T11:12:44.267359-08:00","closed_at":"2025-12-08T11:12:44.267359-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-0t77w.3","depends_on_id":"opencode-swarm-plugin-0t77w","type":"parent-child","created_at":"2025-12-08T11:12:42.476485-08:00","created_by":"daemon"}]}
31
36
  {"id":"opencode-swarm-plugin-0t77w.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:42.510238-08:00","updated_at":"2025-12-08T11:12:44.291151-08:00","closed_at":"2025-12-08T11:12:44.291151-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-0t77w.4","depends_on_id":"opencode-swarm-plugin-0t77w","type":"parent-child","created_at":"2025-12-08T11:12:42.510555-08:00","created_by":"daemon"}]}
32
37
  {"id":"opencode-swarm-plugin-0tgw","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:10.149976-08:00","updated_at":"2025-12-08T08:25:10.1787-08:00","closed_at":"2025-12-08T08:25:10.1787-08:00"}
38
+ {"id":"opencode-swarm-plugin-0w8hb","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-09T10:00:24.010017-08:00","updated_at":"2025-12-09T10:00:26.406101-08:00","closed_at":"2025-12-09T10:00:26.406101-08:00"}
39
+ {"id":"opencode-swarm-plugin-0w8hb.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-09T10:00:24.057192-08:00","updated_at":"2025-12-09T10:00:26.438429-08:00","closed_at":"2025-12-09T10:00:26.438429-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-0w8hb.1","depends_on_id":"opencode-swarm-plugin-0w8hb","type":"parent-child","created_at":"2025-12-09T10:00:24.057567-08:00","created_by":"daemon"}]}
33
40
  {"id":"opencode-swarm-plugin-0wk","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-07T19:37:34.417512-08:00","updated_at":"2025-12-07T19:37:36.339262-08:00","closed_at":"2025-12-07T19:37:36.339262-08:00"}
34
41
  {"id":"opencode-swarm-plugin-0zn","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:34.200661-08:00","updated_at":"2025-12-07T19:37:36.249197-08:00","closed_at":"2025-12-07T19:37:36.249197-08:00"}
35
42
  {"id":"opencode-swarm-plugin-12ro","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:10.129035-08:00","updated_at":"2025-12-08T11:11:11.6419-08:00","closed_at":"2025-12-08T11:11:11.6419-08:00"}
@@ -94,6 +101,7 @@
94
101
  {"id":"opencode-swarm-plugin-2dgp","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:25.972688-08:00","updated_at":"2025-12-08T11:12:28.230821-08:00","closed_at":"2025-12-08T11:12:28.230821-08:00"}
95
102
  {"id":"opencode-swarm-plugin-2e5","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:09.695902-08:00","updated_at":"2025-12-07T19:39:11.80833-08:00","closed_at":"2025-12-07T19:39:11.80833-08:00"}
96
103
  {"id":"opencode-swarm-plugin-2en2","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:36:16.538491-08:00","updated_at":"2025-12-08T08:36:19.141453-08:00","closed_at":"2025-12-08T08:36:19.141453-08:00"}
104
+ {"id":"opencode-swarm-plugin-2es9k","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-09T10:00:23.038522-08:00","updated_at":"2025-12-09T10:00:26.018021-08:00","closed_at":"2025-12-09T10:00:26.018021-08:00"}
97
105
  {"id":"opencode-swarm-plugin-2euk","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:38.431394-08:00","updated_at":"2025-12-08T11:11:40.884465-08:00","closed_at":"2025-12-08T11:11:40.884465-08:00"}
98
106
  {"id":"opencode-swarm-plugin-2foq","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-08T11:12:40.731653-08:00","updated_at":"2025-12-08T11:12:43.500259-08:00","closed_at":"2025-12-08T11:12:43.500259-08:00"}
99
107
  {"id":"opencode-swarm-plugin-2ge7l","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:57.450441-08:00","updated_at":"2025-12-08T11:12:57.525835-08:00","closed_at":"2025-12-08T11:12:57.525835-08:00"}
@@ -131,6 +139,7 @@
131
139
  {"id":"opencode-swarm-plugin-328o.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:09.091851-08:00","updated_at":"2025-12-08T11:11:10.910639-08:00","closed_at":"2025-12-08T11:11:10.910639-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-328o.4","depends_on_id":"opencode-swarm-plugin-328o","type":"parent-child","created_at":"2025-12-08T11:11:09.092192-08:00","created_by":"daemon"}]}
132
140
  {"id":"opencode-swarm-plugin-36uo","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:31.014966-08:00","updated_at":"2025-12-08T09:09:33.303459-08:00","closed_at":"2025-12-08T09:09:33.303459-08:00"}
133
141
  {"id":"opencode-swarm-plugin-37az","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:34.247814-08:00","updated_at":"2025-12-08T08:05:36.051352-08:00","closed_at":"2025-12-08T08:05:36.051352-08:00"}
142
+ {"id":"opencode-swarm-plugin-38j3h","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:22.576145-08:00","updated_at":"2025-12-09T10:00:25.812701-08:00","closed_at":"2025-12-09T10:00:25.812701-08:00"}
134
143
  {"id":"opencode-swarm-plugin-3aip","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:08.475806-08:00","updated_at":"2025-12-08T11:11:10.963225-08:00","closed_at":"2025-12-08T11:11:10.963225-08:00"}
135
144
  {"id":"opencode-swarm-plugin-3c0h","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:06.042676-08:00","updated_at":"2025-12-07T19:57:08.336974-08:00","closed_at":"2025-12-07T19:57:08.336974-08:00"}
136
145
  {"id":"opencode-swarm-plugin-3e3o","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:50.71229-08:00","updated_at":"2025-12-08T07:46:52.478079-08:00","closed_at":"2025-12-08T07:46:52.478079-08:00"}
@@ -236,6 +245,7 @@
236
245
  {"id":"opencode-swarm-plugin-5clp.3","title":"Third","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:43.794972-08:00","updated_at":"2025-12-07T19:56:45.385226-08:00","closed_at":"2025-12-07T19:56:45.385226-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-5clp.3","depends_on_id":"opencode-swarm-plugin-5clp","type":"parent-child","created_at":"2025-12-07T19:56:43.795274-08:00","created_by":"daemon"}]}
237
246
  {"id":"opencode-swarm-plugin-5clp.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:43.823681-08:00","updated_at":"2025-12-07T19:56:45.409007-08:00","closed_at":"2025-12-07T19:56:45.409007-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-5clp.4","depends_on_id":"opencode-swarm-plugin-5clp","type":"parent-child","created_at":"2025-12-07T19:56:43.823995-08:00","created_by":"daemon"}]}
238
247
  {"id":"opencode-swarm-plugin-5fbe","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T08:21:28.099537-08:00","updated_at":"2025-12-08T08:21:30.260533-08:00","closed_at":"2025-12-08T08:21:30.260533-08:00"}
248
+ {"id":"opencode-swarm-plugin-5j0dj","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-09T10:00:23.568472-08:00","updated_at":"2025-12-09T10:00:26.155879-08:00","closed_at":"2025-12-09T10:00:26.155879-08:00"}
239
249
  {"id":"opencode-swarm-plugin-5j9pz","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-08T11:12:55.370664-08:00","updated_at":"2025-12-08T11:12:57.903672-08:00","closed_at":"2025-12-08T11:12:57.903672-08:00"}
240
250
  {"id":"opencode-swarm-plugin-5kj7","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:08.875856-08:00","updated_at":"2025-12-08T11:11:11.121063-08:00","closed_at":"2025-12-08T11:11:11.121063-08:00"}
241
251
  {"id":"opencode-swarm-plugin-5l0v","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:11:40.362215-08:00","updated_at":"2025-12-08T11:11:40.551768-08:00","closed_at":"2025-12-08T11:11:40.551768-08:00"}
@@ -255,6 +265,7 @@
255
265
  {"id":"opencode-swarm-plugin-5s1ar.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-08T11:12:42.110834-08:00","updated_at":"2025-12-08T11:12:44.034215-08:00","closed_at":"2025-12-08T11:12:44.034215-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-5s1ar.2","depends_on_id":"opencode-swarm-plugin-5s1ar","type":"parent-child","created_at":"2025-12-08T11:12:42.111139-08:00","created_by":"daemon"}]}
256
266
  {"id":"opencode-swarm-plugin-5s1ar.3","title":"Subtask 3","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T11:12:42.14615-08:00","updated_at":"2025-12-08T11:12:44.058059-08:00","closed_at":"2025-12-08T11:12:44.058059-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-5s1ar.3","depends_on_id":"opencode-swarm-plugin-5s1ar","type":"parent-child","created_at":"2025-12-08T11:12:42.146502-08:00","created_by":"daemon"}]}
257
267
  {"id":"opencode-swarm-plugin-5sm","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:10.233019-08:00","updated_at":"2025-12-07T19:39:10.257081-08:00","closed_at":"2025-12-07T19:39:10.257081-08:00"}
268
+ {"id":"opencode-swarm-plugin-5t4k0","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:22.667287-08:00","updated_at":"2025-12-09T10:00:25.879488-08:00","closed_at":"2025-12-09T10:00:25.879488-08:00"}
258
269
  {"id":"opencode-swarm-plugin-5tio","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:38.963071-08:00","updated_at":"2025-12-08T08:11:41.63682-08:00","closed_at":"2025-12-08T08:11:41.63682-08:00"}
259
270
  {"id":"opencode-swarm-plugin-5tk","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:39:10.779775-08:00","updated_at":"2025-12-07T19:39:12.330046-08:00","closed_at":"2025-12-07T19:39:12.330046-08:00"}
260
271
  {"id":"opencode-swarm-plugin-5tk.1","title":"First","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:10.809874-08:00","updated_at":"2025-12-07T19:39:12.353042-08:00","closed_at":"2025-12-07T19:39:12.353042-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-5tk.1","depends_on_id":"opencode-swarm-plugin-5tk","type":"parent-child","created_at":"2025-12-07T19:39:10.810153-08:00","created_by":"daemon"}]}
@@ -323,6 +334,7 @@
323
334
  {"id":"opencode-swarm-plugin-7ecg","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:43.699621-08:00","updated_at":"2025-12-08T07:53:46.215175-08:00","closed_at":"2025-12-08T07:53:46.215175-08:00"}
324
335
  {"id":"opencode-swarm-plugin-7euso","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:55.783341-08:00","updated_at":"2025-12-08T11:12:58.22179-08:00","closed_at":"2025-12-08T11:12:58.22179-08:00"}
325
336
  {"id":"opencode-swarm-plugin-7fog","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:57.247738-08:00","updated_at":"2025-12-08T08:56:58.803615-08:00","closed_at":"2025-12-08T08:56:58.803615-08:00"}
337
+ {"id":"opencode-swarm-plugin-7glyd","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:22.622271-08:00","updated_at":"2025-12-09T10:00:25.846309-08:00","closed_at":"2025-12-09T10:00:25.846309-08:00"}
326
338
  {"id":"opencode-swarm-plugin-7hbr","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T11:12:26.089938-08:00","updated_at":"2025-12-08T11:12:28.282761-08:00","closed_at":"2025-12-08T11:12:28.282761-08:00"}
327
339
  {"id":"opencode-swarm-plugin-7ls9","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:36:16.40263-08:00","updated_at":"2025-12-08T08:36:19.090576-08:00","closed_at":"2025-12-08T08:36:19.090576-08:00"}
328
340
  {"id":"opencode-swarm-plugin-7lwj","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T07:46:49.954688-08:00","updated_at":"2025-12-08T07:46:52.018977-08:00","closed_at":"2025-12-08T07:46:52.018977-08:00"}
@@ -393,6 +405,7 @@
393
405
  {"id":"opencode-swarm-plugin-8pyb","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:30.014902-08:00","updated_at":"2025-12-08T08:14:31.732051-08:00","closed_at":"2025-12-08T08:14:31.732051-08:00"}
394
406
  {"id":"opencode-swarm-plugin-8rl6e","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:41.420444-08:00","updated_at":"2025-12-08T11:12:43.835874-08:00","closed_at":"2025-12-08T11:12:43.835874-08:00"}
395
407
  {"id":"opencode-swarm-plugin-8td","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:39:10.72267-08:00","updated_at":"2025-12-07T19:39:12.284908-08:00","closed_at":"2025-12-07T19:39:12.284908-08:00"}
408
+ {"id":"opencode-swarm-plugin-8thxw","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:22.786941-08:00","updated_at":"2025-12-09T10:00:25.916352-08:00","closed_at":"2025-12-09T10:00:25.916352-08:00"}
396
409
  {"id":"opencode-swarm-plugin-8tzk","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T11:11:23.483585-08:00","updated_at":"2025-12-08T11:11:25.807512-08:00","closed_at":"2025-12-08T11:11:25.807512-08:00"}
397
410
  {"id":"opencode-swarm-plugin-8u3","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:54.094622-08:00","updated_at":"2025-12-07T19:34:54.159994-08:00","closed_at":"2025-12-07T19:34:54.159994-08:00"}
398
411
  {"id":"opencode-swarm-plugin-8um","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:06.553979-08:00","updated_at":"2025-12-07T19:36:08.658993-08:00","closed_at":"2025-12-07T19:36:08.658993-08:00"}
@@ -414,6 +427,7 @@
414
427
  {"id":"opencode-swarm-plugin-9c6","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-07T19:34:52.310497-08:00","updated_at":"2025-12-07T19:34:54.508737-08:00","closed_at":"2025-12-07T19:34:54.508737-08:00"}
415
428
  {"id":"opencode-swarm-plugin-9csf","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:39.347968-08:00","updated_at":"2025-12-08T08:11:41.877049-08:00","closed_at":"2025-12-08T08:11:41.877049-08:00"}
416
429
  {"id":"opencode-swarm-plugin-9fo5","title":"Update test bead","description":"Blocked on dependency","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T11:10:25.398427-08:00","updated_at":"2025-12-08T11:10:27.65064-08:00","closed_at":"2025-12-08T11:10:27.65064-08:00"}
430
+ {"id":"opencode-swarm-plugin-9gdip","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-09T10:00:22.084056-08:00","updated_at":"2025-12-09T10:00:25.538382-08:00","closed_at":"2025-12-09T10:00:25.538382-08:00"}
417
431
  {"id":"opencode-swarm-plugin-9gks","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:11:41.194407-08:00","updated_at":"2025-12-08T08:11:41.390014-08:00","closed_at":"2025-12-08T08:11:41.390014-08:00"}
418
432
  {"id":"opencode-swarm-plugin-9gks.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:41.227583-08:00","updated_at":"2025-12-08T08:11:41.313181-08:00","closed_at":"2025-12-08T08:11:41.313181-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-9gks.1","depends_on_id":"opencode-swarm-plugin-9gks","type":"parent-child","created_at":"2025-12-08T08:11:41.227892-08:00","created_by":"daemon"}]}
419
433
  {"id":"opencode-swarm-plugin-9gks.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:41.260544-08:00","updated_at":"2025-12-08T08:11:41.363657-08:00","closed_at":"2025-12-08T08:11:41.363657-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-9gks.2","depends_on_id":"opencode-swarm-plugin-9gks","type":"parent-child","created_at":"2025-12-08T08:11:41.260862-08:00","created_by":"daemon"}]}
@@ -429,6 +443,7 @@
429
443
  {"id":"opencode-swarm-plugin-9hya.3","title":"Third","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:24.437295-08:00","updated_at":"2025-12-08T11:11:26.180152-08:00","closed_at":"2025-12-08T11:11:26.180152-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-9hya.3","depends_on_id":"opencode-swarm-plugin-9hya","type":"parent-child","created_at":"2025-12-08T11:11:24.437636-08:00","created_by":"daemon"}]}
430
444
  {"id":"opencode-swarm-plugin-9hya.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:24.471556-08:00","updated_at":"2025-12-08T11:11:26.207658-08:00","closed_at":"2025-12-08T11:11:26.207658-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-9hya.4","depends_on_id":"opencode-swarm-plugin-9hya","type":"parent-child","created_at":"2025-12-08T11:11:24.471909-08:00","created_by":"daemon"}]}
431
445
  {"id":"opencode-swarm-plugin-9ioz","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:43.947868-08:00","updated_at":"2025-12-07T19:56:45.455609-08:00","closed_at":"2025-12-07T19:56:45.455609-08:00"}
446
+ {"id":"opencode-swarm-plugin-9itda","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:22.953258-08:00","updated_at":"2025-12-09T10:00:25.985697-08:00","closed_at":"2025-12-09T10:00:25.985697-08:00"}
432
447
  {"id":"opencode-swarm-plugin-9mc1","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:56.068796-08:00","updated_at":"2025-12-08T08:56:58.30395-08:00","closed_at":"2025-12-08T08:56:58.30395-08:00"}
433
448
  {"id":"opencode-swarm-plugin-9mjt","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:56:44.363301-08:00","updated_at":"2025-12-07T19:56:44.53648-08:00","closed_at":"2025-12-07T19:56:44.53648-08:00"}
434
449
  {"id":"opencode-swarm-plugin-9mjt.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:44.392344-08:00","updated_at":"2025-12-07T19:56:44.467504-08:00","closed_at":"2025-12-07T19:56:44.467504-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-9mjt.1","depends_on_id":"opencode-swarm-plugin-9mjt","type":"parent-child","created_at":"2025-12-07T19:56:44.392644-08:00","created_by":"daemon"}]}
@@ -490,6 +505,7 @@
490
505
  {"id":"opencode-swarm-plugin-bhkr","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:52.818993-08:00","updated_at":"2025-12-08T11:10:55.506981-08:00","closed_at":"2025-12-08T11:10:55.506981-08:00"}
491
506
  {"id":"opencode-swarm-plugin-bhou","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-08T09:09:30.49932-08:00","updated_at":"2025-12-08T09:09:33.037008-08:00","closed_at":"2025-12-08T09:09:33.037008-08:00"}
492
507
  {"id":"opencode-swarm-plugin-bil","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:18.72472-08:00","updated_at":"2025-12-07T19:39:20.642494-08:00","closed_at":"2025-12-07T19:39:20.642494-08:00"}
508
+ {"id":"opencode-swarm-plugin-bjrtc","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:24.91158-08:00","updated_at":"2025-12-09T10:00:25.015472-08:00","closed_at":"2025-12-09T10:00:25.015472-08:00"}
493
509
  {"id":"opencode-swarm-plugin-bkxk","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:26.773358-08:00","updated_at":"2025-12-08T11:10:26.851958-08:00","closed_at":"2025-12-08T11:10:26.851958-08:00"}
494
510
  {"id":"opencode-swarm-plugin-blhh","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:12.544524-08:00","updated_at":"2025-12-07T19:41:14.154813-08:00","closed_at":"2025-12-07T19:41:14.154813-08:00"}
495
511
  {"id":"opencode-swarm-plugin-bnx47","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:55.816648-08:00","updated_at":"2025-12-08T11:12:58.248106-08:00","closed_at":"2025-12-08T11:12:58.248106-08:00"}
@@ -605,6 +621,7 @@
605
621
  {"id":"opencode-swarm-plugin-dxd.3","title":"Third","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:53.648233-08:00","updated_at":"2025-12-07T19:34:55.226478-08:00","closed_at":"2025-12-07T19:34:55.226478-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-dxd.3","depends_on_id":"opencode-swarm-plugin-dxd","type":"parent-child","created_at":"2025-12-07T19:34:53.648515-08:00","created_by":"daemon"}]}
606
622
  {"id":"opencode-swarm-plugin-dxd.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:53.676335-08:00","updated_at":"2025-12-07T19:34:55.249574-08:00","closed_at":"2025-12-07T19:34:55.249574-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-dxd.4","depends_on_id":"opencode-swarm-plugin-dxd","type":"parent-child","created_at":"2025-12-07T19:34:53.676601-08:00","created_by":"daemon"}]}
607
623
  {"id":"opencode-swarm-plugin-e1fi","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:11.265711-08:00","updated_at":"2025-12-07T19:41:13.598483-08:00","closed_at":"2025-12-07T19:41:13.598483-08:00"}
624
+ {"id":"opencode-swarm-plugin-e23mw","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:22.482256-08:00","updated_at":"2025-12-09T10:00:25.741691-08:00","closed_at":"2025-12-09T10:00:25.741691-08:00"}
608
625
  {"id":"opencode-swarm-plugin-e3df","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:56:57.486088-08:00","updated_at":"2025-12-08T08:56:57.688826-08:00","closed_at":"2025-12-08T08:56:57.688826-08:00"}
609
626
  {"id":"opencode-swarm-plugin-e3df.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:57.520387-08:00","updated_at":"2025-12-08T08:56:57.614232-08:00","closed_at":"2025-12-08T08:56:57.614232-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-e3df.1","depends_on_id":"opencode-swarm-plugin-e3df","type":"parent-child","created_at":"2025-12-08T08:56:57.521758-08:00","created_by":"daemon"}]}
610
627
  {"id":"opencode-swarm-plugin-e3df.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:57.562037-08:00","updated_at":"2025-12-08T08:56:57.663478-08:00","closed_at":"2025-12-08T08:56:57.663478-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-e3df.2","depends_on_id":"opencode-swarm-plugin-e3df","type":"parent-child","created_at":"2025-12-08T08:56:57.562353-08:00","created_by":"daemon"}]}
@@ -650,11 +667,13 @@
650
667
  {"id":"opencode-swarm-plugin-fbwv","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:40.231566-08:00","updated_at":"2025-12-08T11:11:40.305595-08:00","closed_at":"2025-12-08T11:11:40.305595-08:00"}
651
668
  {"id":"opencode-swarm-plugin-fccf","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:09.363067-08:00","updated_at":"2025-12-08T08:25:12.106967-08:00","closed_at":"2025-12-08T08:25:12.106967-08:00"}
652
669
  {"id":"opencode-swarm-plugin-fda2","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:25.014177-08:00","updated_at":"2025-12-08T11:10:27.471037-08:00","closed_at":"2025-12-08T11:10:27.471037-08:00"}
670
+ {"id":"opencode-swarm-plugin-fdqcb","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:23.274956-08:00","updated_at":"2025-12-09T10:00:23.305265-08:00","closed_at":"2025-12-09T10:00:23.305265-08:00"}
653
671
  {"id":"opencode-swarm-plugin-fdqh","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:25.462721-08:00","updated_at":"2025-12-08T11:12:27.952505-08:00","closed_at":"2025-12-08T11:12:27.952505-08:00"}
654
672
  {"id":"opencode-swarm-plugin-feuk","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:10:26.086022-08:00","updated_at":"2025-12-08T11:10:27.965011-08:00","closed_at":"2025-12-08T11:10:27.965011-08:00"}
655
673
  {"id":"opencode-swarm-plugin-fg1","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:34.047465-08:00","updated_at":"2025-12-07T19:37:36.139721-08:00","closed_at":"2025-12-07T19:37:36.139721-08:00"}
656
674
  {"id":"opencode-swarm-plugin-fg2","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:09.409209-08:00","updated_at":"2025-12-07T19:39:11.655882-08:00","closed_at":"2025-12-07T19:39:11.655882-08:00"}
657
675
  {"id":"opencode-swarm-plugin-fh9","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-07T19:39:18.036521-08:00","updated_at":"2025-12-07T19:39:20.302739-08:00","closed_at":"2025-12-07T19:39:20.302739-08:00"}
676
+ {"id":"opencode-swarm-plugin-fm3r6","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:22.000563-08:00","updated_at":"2025-12-09T10:00:25.469262-08:00","closed_at":"2025-12-09T10:00:25.469262-08:00"}
658
677
  {"id":"opencode-swarm-plugin-fmkz8","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:12:43.15846-08:00","updated_at":"2025-12-08T11:12:43.368908-08:00","closed_at":"2025-12-08T11:12:43.368908-08:00"}
659
678
  {"id":"opencode-swarm-plugin-fmkz8.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:43.192563-08:00","updated_at":"2025-12-08T11:12:43.285206-08:00","closed_at":"2025-12-08T11:12:43.285206-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-fmkz8.1","depends_on_id":"opencode-swarm-plugin-fmkz8","type":"parent-child","created_at":"2025-12-08T11:12:43.192901-08:00","created_by":"daemon"}]}
660
679
  {"id":"opencode-swarm-plugin-fmkz8.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:43.229469-08:00","updated_at":"2025-12-08T11:12:43.340511-08:00","closed_at":"2025-12-08T11:12:43.340511-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-fmkz8.2","depends_on_id":"opencode-swarm-plugin-fmkz8","type":"parent-child","created_at":"2025-12-08T11:12:43.229808-08:00","created_by":"daemon"}]}
@@ -683,6 +702,7 @@
683
702
  {"id":"opencode-swarm-plugin-g1ew","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:36:17.759116-08:00","updated_at":"2025-12-08T08:36:19.615871-08:00","closed_at":"2025-12-08T08:36:19.615871-08:00"}
684
703
  {"id":"opencode-swarm-plugin-g1ew.2","title":"Edit src/b.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:36:17.840961-08:00","updated_at":"2025-12-08T08:36:19.680324-08:00","closed_at":"2025-12-08T08:36:19.680324-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-g1ew.2","depends_on_id":"opencode-swarm-plugin-g1ew","type":"parent-child","created_at":"2025-12-08T08:36:17.84128-08:00","created_by":"daemon"}]}
685
704
  {"id":"opencode-swarm-plugin-g3uu","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:31.47499-08:00","updated_at":"2025-12-08T09:09:33.449119-08:00","closed_at":"2025-12-08T09:09:33.449119-08:00"}
705
+ {"id":"opencode-swarm-plugin-g3wth","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-09T10:00:22.044647-08:00","updated_at":"2025-12-09T10:00:25.502832-08:00","closed_at":"2025-12-09T10:00:25.502832-08:00"}
686
706
  {"id":"opencode-swarm-plugin-g63rn","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:12:56.584599-08:00","updated_at":"2025-12-08T11:12:58.474985-08:00","closed_at":"2025-12-08T11:12:58.474985-08:00"}
687
707
  {"id":"opencode-swarm-plugin-g63rn.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:56.615586-08:00","updated_at":"2025-12-08T11:12:58.499924-08:00","closed_at":"2025-12-08T11:12:58.499924-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-g63rn.1","depends_on_id":"opencode-swarm-plugin-g63rn","type":"parent-child","created_at":"2025-12-08T11:12:56.615912-08:00","created_by":"daemon"}]}
688
708
  {"id":"opencode-swarm-plugin-g63rn.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-08T11:12:56.645189-08:00","updated_at":"2025-12-08T11:12:58.524935-08:00","closed_at":"2025-12-08T11:12:58.524935-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-g63rn.2","depends_on_id":"opencode-swarm-plugin-g63rn","type":"parent-child","created_at":"2025-12-08T11:12:56.645515-08:00","created_by":"daemon"}]}
@@ -743,6 +763,7 @@
743
763
  {"id":"opencode-swarm-plugin-hpzu","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T07:53:44.966334-08:00","updated_at":"2025-12-08T07:53:46.804841-08:00","closed_at":"2025-12-08T07:53:46.804841-08:00"}
744
764
  {"id":"opencode-swarm-plugin-hs0h","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:06.256297-08:00","updated_at":"2025-12-07T19:57:08.436151-08:00","closed_at":"2025-12-07T19:57:08.436151-08:00"}
745
765
  {"id":"opencode-swarm-plugin-hsz7","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:29.256893-08:00","updated_at":"2025-12-08T08:14:29.281551-08:00","closed_at":"2025-12-08T08:14:29.281551-08:00"}
766
+ {"id":"opencode-swarm-plugin-ht2eb","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:24.61169-08:00","updated_at":"2025-12-09T10:00:26.72117-08:00","closed_at":"2025-12-09T10:00:26.72117-08:00"}
746
767
  {"id":"opencode-swarm-plugin-hu1y","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:50.468927-08:00","updated_at":"2025-12-08T07:46:52.420696-08:00","closed_at":"2025-12-08T07:46:52.420696-08:00"}
747
768
  {"id":"opencode-swarm-plugin-hu8n","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-08T11:12:25.401784-08:00","updated_at":"2025-12-08T11:12:27.893642-08:00","closed_at":"2025-12-08T11:12:27.893642-08:00"}
748
769
  {"id":"opencode-swarm-plugin-hvgh","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-08T11:12:25.369967-08:00","updated_at":"2025-12-08T11:12:27.863957-08:00","closed_at":"2025-12-08T11:12:27.863957-08:00"}
@@ -877,6 +898,7 @@
877
898
  {"id":"opencode-swarm-plugin-ll15.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:18.756408-08:00","updated_at":"2025-12-08T08:22:18.841276-08:00","closed_at":"2025-12-08T08:22:18.841276-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-ll15.1","depends_on_id":"opencode-swarm-plugin-ll15","type":"parent-child","created_at":"2025-12-08T08:22:18.756747-08:00","created_by":"daemon"}]}
878
899
  {"id":"opencode-swarm-plugin-ll15.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:18.788908-08:00","updated_at":"2025-12-08T08:22:18.895654-08:00","closed_at":"2025-12-08T08:22:18.895654-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-ll15.2","depends_on_id":"opencode-swarm-plugin-ll15","type":"parent-child","created_at":"2025-12-08T08:22:18.789319-08:00","created_by":"daemon"}]}
879
900
  {"id":"opencode-swarm-plugin-lmy1","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:22.726664-08:00","updated_at":"2025-12-08T11:11:25.360309-08:00","closed_at":"2025-12-08T11:11:25.360309-08:00"}
901
+ {"id":"opencode-swarm-plugin-ln411","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:24.461147-08:00","updated_at":"2025-12-09T10:00:26.686053-08:00","closed_at":"2025-12-09T10:00:26.686053-08:00"}
880
902
  {"id":"opencode-swarm-plugin-lnff","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:11.226267-08:00","updated_at":"2025-12-08T08:25:12.979406-08:00","closed_at":"2025-12-08T08:25:12.979406-08:00"}
881
903
  {"id":"opencode-swarm-plugin-lnlv","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:21:28.524305-08:00","updated_at":"2025-12-08T08:21:30.551746-08:00","closed_at":"2025-12-08T08:21:30.551746-08:00"}
882
904
  {"id":"opencode-swarm-plugin-lnlv.1","title":"First","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:21:28.559944-08:00","updated_at":"2025-12-08T08:21:30.580498-08:00","closed_at":"2025-12-08T08:21:30.580498-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-lnlv.1","depends_on_id":"opencode-swarm-plugin-lnlv","type":"parent-child","created_at":"2025-12-08T08:21:28.560254-08:00","created_by":"daemon"}]}
@@ -976,8 +998,12 @@
976
998
  {"id":"opencode-swarm-plugin-nvyf","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:06.424992-08:00","updated_at":"2025-12-07T19:57:08.5088-08:00","closed_at":"2025-12-07T19:57:08.5088-08:00"}
977
999
  {"id":"opencode-swarm-plugin-nwwh","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:24.745207-08:00","updated_at":"2025-12-08T11:11:24.823126-08:00","closed_at":"2025-12-08T11:11:24.823126-08:00"}
978
1000
  {"id":"opencode-swarm-plugin-nxt2","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:16.684535-08:00","updated_at":"2025-12-08T08:22:19.189792-08:00","closed_at":"2025-12-08T08:22:19.189792-08:00"}
1001
+ {"id":"opencode-swarm-plugin-nysq9","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-09T10:00:25.095632-08:00","updated_at":"2025-12-09T10:00:25.334055-08:00","closed_at":"2025-12-09T10:00:25.334055-08:00"}
1002
+ {"id":"opencode-swarm-plugin-nysq9.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:25.140236-08:00","updated_at":"2025-12-09T10:00:25.244881-08:00","closed_at":"2025-12-09T10:00:25.244881-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-nysq9.1","depends_on_id":"opencode-swarm-plugin-nysq9","type":"parent-child","created_at":"2025-12-09T10:00:25.14061-08:00","created_by":"daemon"}]}
1003
+ {"id":"opencode-swarm-plugin-nysq9.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:25.183169-08:00","updated_at":"2025-12-09T10:00:25.304369-08:00","closed_at":"2025-12-09T10:00:25.304369-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-nysq9.2","depends_on_id":"opencode-swarm-plugin-nysq9","type":"parent-child","created_at":"2025-12-09T10:00:25.183493-08:00","created_by":"daemon"}]}
979
1004
  {"id":"opencode-swarm-plugin-o0dr","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.499295-08:00","updated_at":"2025-12-08T07:49:12.014253-08:00","closed_at":"2025-12-08T07:49:12.014253-08:00"}
980
1005
  {"id":"opencode-swarm-plugin-o10","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:19.483574-08:00","updated_at":"2025-12-07T19:39:21.021668-08:00","closed_at":"2025-12-07T19:39:21.021668-08:00"}
1006
+ {"id":"opencode-swarm-plugin-o1oxh","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:23.199742-08:00","updated_at":"2025-12-09T10:00:26.088228-08:00","closed_at":"2025-12-09T10:00:26.088228-08:00"}
981
1007
  {"id":"opencode-swarm-plugin-o1qe","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:29.17953-08:00","updated_at":"2025-12-07T19:39:31.271336-08:00","closed_at":"2025-12-07T19:39:31.271336-08:00"}
982
1008
  {"id":"opencode-swarm-plugin-o3oo","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:23.12202-08:00","updated_at":"2025-12-08T11:11:25.648445-08:00","closed_at":"2025-12-08T11:11:25.648445-08:00"}
983
1009
  {"id":"opencode-swarm-plugin-o52h","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:11.515081-08:00","updated_at":"2025-12-07T19:41:11.543031-08:00","closed_at":"2025-12-07T19:41:11.543031-08:00"}
@@ -997,6 +1023,7 @@
997
1023
  {"id":"opencode-swarm-plugin-of2b","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:22:17.681082-08:00","updated_at":"2025-12-08T08:22:19.565292-08:00","closed_at":"2025-12-08T08:22:19.565292-08:00"}
998
1024
  {"id":"opencode-swarm-plugin-of2b.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:17.713562-08:00","updated_at":"2025-12-08T08:22:19.589501-08:00","closed_at":"2025-12-08T08:22:19.589501-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-of2b.1","depends_on_id":"opencode-swarm-plugin-of2b","type":"parent-child","created_at":"2025-12-08T08:22:17.713882-08:00","created_by":"daemon"}]}
999
1025
  {"id":"opencode-swarm-plugin-of2b.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-08T08:22:17.748705-08:00","updated_at":"2025-12-08T08:22:19.614951-08:00","closed_at":"2025-12-08T08:22:19.614951-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-of2b.2","depends_on_id":"opencode-swarm-plugin-of2b","type":"parent-child","created_at":"2025-12-08T08:22:17.74916-08:00","created_by":"daemon"}]}
1026
+ {"id":"opencode-swarm-plugin-ogvhk","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:24.316842-08:00","updated_at":"2025-12-09T10:00:26.650386-08:00","closed_at":"2025-12-09T10:00:26.650386-08:00"}
1000
1027
  {"id":"opencode-swarm-plugin-oiay","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:39.900004-08:00","updated_at":"2025-12-08T11:11:41.716621-08:00","closed_at":"2025-12-08T11:11:41.716621-08:00"}
1001
1028
  {"id":"opencode-swarm-plugin-okoq","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-08T11:10:24.650895-08:00","updated_at":"2025-12-08T11:10:27.261778-08:00","closed_at":"2025-12-08T11:10:27.261778-08:00"}
1002
1029
  {"id":"opencode-swarm-plugin-olit","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:08.692207-08:00","updated_at":"2025-12-08T11:11:11.041521-08:00","closed_at":"2025-12-08T11:11:11.041521-08:00"}
@@ -1006,9 +1033,15 @@
1006
1033
  {"id":"opencode-swarm-plugin-opjh","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:23.420345-08:00","updated_at":"2025-12-08T11:11:25.782158-08:00","closed_at":"2025-12-08T11:11:25.782158-08:00"}
1007
1034
  {"id":"opencode-swarm-plugin-osjw","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:07.65254-08:00","updated_at":"2025-12-08T11:11:10.21755-08:00","closed_at":"2025-12-08T11:11:10.21755-08:00"}
1008
1035
  {"id":"opencode-swarm-plugin-otl2","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-08T08:22:16.488559-08:00","updated_at":"2025-12-08T08:22:19.084348-08:00","closed_at":"2025-12-08T08:22:19.084348-08:00"}
1036
+ {"id":"opencode-swarm-plugin-oydms","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:22.435657-08:00","updated_at":"2025-12-09T10:00:25.70816-08:00","closed_at":"2025-12-09T10:00:25.70816-08:00"}
1009
1037
  {"id":"opencode-swarm-plugin-ozht","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:11:24.258405-08:00","updated_at":"2025-12-08T11:11:26.043528-08:00","closed_at":"2025-12-08T11:11:26.043528-08:00"}
1010
1038
  {"id":"opencode-swarm-plugin-ozht.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T11:11:24.29561-08:00","updated_at":"2025-12-08T11:11:26.069944-08:00","closed_at":"2025-12-08T11:11:26.069944-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-ozht.1","depends_on_id":"opencode-swarm-plugin-ozht","type":"parent-child","created_at":"2025-12-08T11:11:24.295964-08:00","created_by":"daemon"}]}
1011
1039
  {"id":"opencode-swarm-plugin-p1l1","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:39.092797-08:00","updated_at":"2025-12-08T08:11:41.741779-08:00","closed_at":"2025-12-08T08:11:41.741779-08:00"}
1040
+ {"id":"opencode-swarm-plugin-p1tsh","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-09T10:00:24.104718-08:00","updated_at":"2025-12-09T10:00:26.471738-08:00","closed_at":"2025-12-09T10:00:26.471738-08:00"}
1041
+ {"id":"opencode-swarm-plugin-p1tsh.1","title":"First","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:24.15123-08:00","updated_at":"2025-12-09T10:00:26.507903-08:00","closed_at":"2025-12-09T10:00:26.507903-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-p1tsh.1","depends_on_id":"opencode-swarm-plugin-p1tsh","type":"parent-child","created_at":"2025-12-09T10:00:24.151555-08:00","created_by":"daemon"}]}
1042
+ {"id":"opencode-swarm-plugin-p1tsh.2","title":"Second","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:24.19306-08:00","updated_at":"2025-12-09T10:00:26.541849-08:00","closed_at":"2025-12-09T10:00:26.541849-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-p1tsh.2","depends_on_id":"opencode-swarm-plugin-p1tsh","type":"parent-child","created_at":"2025-12-09T10:00:24.193492-08:00","created_by":"daemon"}]}
1043
+ {"id":"opencode-swarm-plugin-p1tsh.3","title":"Third","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:24.234077-08:00","updated_at":"2025-12-09T10:00:26.578965-08:00","closed_at":"2025-12-09T10:00:26.578965-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-p1tsh.3","depends_on_id":"opencode-swarm-plugin-p1tsh","type":"parent-child","created_at":"2025-12-09T10:00:24.234415-08:00","created_by":"daemon"}]}
1044
+ {"id":"opencode-swarm-plugin-p1tsh.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:24.273182-08:00","updated_at":"2025-12-09T10:00:26.614421-08:00","closed_at":"2025-12-09T10:00:26.614421-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-p1tsh.4","depends_on_id":"opencode-swarm-plugin-p1tsh","type":"parent-child","created_at":"2025-12-09T10:00:24.273511-08:00","created_by":"daemon"}]}
1012
1045
  {"id":"opencode-swarm-plugin-p39z","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:07.766197-08:00","updated_at":"2025-12-08T11:11:10.291767-08:00","closed_at":"2025-12-08T11:11:10.291767-08:00"}
1013
1046
  {"id":"opencode-swarm-plugin-p3ba","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-08T08:11:39.026705-08:00","updated_at":"2025-12-08T08:11:41.689809-08:00","closed_at":"2025-12-08T08:11:41.689809-08:00"}
1014
1047
  {"id":"opencode-swarm-plugin-p7dc","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:27.437762-08:00","updated_at":"2025-12-08T11:12:27.510016-08:00","closed_at":"2025-12-08T11:12:27.510016-08:00"}
@@ -1034,9 +1067,11 @@
1034
1067
  {"id":"opencode-swarm-plugin-pk6.2","title":"Second","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:35.19197-08:00","updated_at":"2025-12-07T19:37:36.687027-08:00","closed_at":"2025-12-07T19:37:36.687027-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-pk6.2","depends_on_id":"opencode-swarm-plugin-pk6","type":"parent-child","created_at":"2025-12-07T19:37:35.192252-08:00","created_by":"daemon"}]}
1035
1068
  {"id":"opencode-swarm-plugin-pk6.3","title":"Third","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:35.219292-08:00","updated_at":"2025-12-07T19:37:36.708239-08:00","closed_at":"2025-12-07T19:37:36.708239-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-pk6.3","depends_on_id":"opencode-swarm-plugin-pk6","type":"parent-child","created_at":"2025-12-07T19:37:35.219606-08:00","created_by":"daemon"}]}
1036
1069
  {"id":"opencode-swarm-plugin-pk6.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:35.24747-08:00","updated_at":"2025-12-07T19:37:36.729939-08:00","closed_at":"2025-12-07T19:37:36.729939-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-pk6.4","depends_on_id":"opencode-swarm-plugin-pk6","type":"parent-child","created_at":"2025-12-07T19:37:35.247773-08:00","created_by":"daemon"}]}
1070
+ {"id":"opencode-swarm-plugin-pne89","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:23.415605-08:00","updated_at":"2025-12-09T10:00:26.122015-08:00","closed_at":"2025-12-09T10:00:26.122015-08:00"}
1037
1071
  {"id":"opencode-swarm-plugin-pnzl","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:08.062458-08:00","updated_at":"2025-12-08T11:11:10.417441-08:00","closed_at":"2025-12-08T11:11:10.417441-08:00"}
1038
1072
  {"id":"opencode-swarm-plugin-po6t","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:11.036931-08:00","updated_at":"2025-12-07T19:41:13.502931-08:00","closed_at":"2025-12-07T19:41:13.502931-08:00"}
1039
1073
  {"id":"opencode-swarm-plugin-prx0","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:22.332649-08:00","updated_at":"2025-12-08T11:11:25.183868-08:00","closed_at":"2025-12-08T11:11:25.183868-08:00"}
1074
+ {"id":"opencode-swarm-plugin-ps5u4","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:22.870132-08:00","updated_at":"2025-12-09T10:00:25.95012-08:00","closed_at":"2025-12-09T10:00:25.95012-08:00"}
1040
1075
  {"id":"opencode-swarm-plugin-psm","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:39:19.273159-08:00","updated_at":"2025-12-07T19:39:20.860341-08:00","closed_at":"2025-12-07T19:39:20.860341-08:00"}
1041
1076
  {"id":"opencode-swarm-plugin-pvw","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:18.123613-08:00","updated_at":"2025-12-07T19:39:20.346988-08:00","closed_at":"2025-12-07T19:39:20.346988-08:00"}
1042
1077
  {"id":"opencode-swarm-plugin-px38","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.475528-08:00","updated_at":"2025-12-08T09:09:33.937467-08:00","closed_at":"2025-12-08T09:09:33.937467-08:00"}
@@ -1047,6 +1082,7 @@
1047
1082
  {"id":"opencode-swarm-plugin-q13n","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:09.990099-08:00","updated_at":"2025-12-08T11:11:11.61092-08:00","closed_at":"2025-12-08T11:11:11.61092-08:00"}
1048
1083
  {"id":"opencode-swarm-plugin-q1ao","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:18.057252-08:00","updated_at":"2025-12-08T08:23:18.081432-08:00","closed_at":"2025-12-08T08:23:18.081432-08:00"}
1049
1084
  {"id":"opencode-swarm-plugin-q29t","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:36:18.468848-08:00","updated_at":"2025-12-08T08:36:19.999602-08:00","closed_at":"2025-12-08T08:36:19.999602-08:00"}
1085
+ {"id":"opencode-swarm-plugin-q39pp","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-09T10:00:22.125472-08:00","updated_at":"2025-12-09T10:00:25.573739-08:00","closed_at":"2025-12-09T10:00:25.573739-08:00"}
1050
1086
  {"id":"opencode-swarm-plugin-q5a2","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T11:10:52.939852-08:00","updated_at":"2025-12-08T11:10:55.584849-08:00","closed_at":"2025-12-08T11:10:55.584849-08:00"}
1051
1087
  {"id":"opencode-swarm-plugin-q5nd","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:36:18.236022-08:00","updated_at":"2025-12-08T08:36:19.943852-08:00","closed_at":"2025-12-08T08:36:19.943852-08:00"}
1052
1088
  {"id":"opencode-swarm-plugin-q6sz","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:40.895782-08:00","updated_at":"2025-12-08T11:12:43.598675-08:00","closed_at":"2025-12-08T11:12:43.598675-08:00"}
@@ -1092,6 +1128,7 @@
1092
1128
  {"id":"opencode-swarm-plugin-rrih.2","title":"Edit src/b.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:12.048952-08:00","updated_at":"2025-12-07T19:41:13.898152-08:00","closed_at":"2025-12-07T19:41:13.898152-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-rrih.2","depends_on_id":"opencode-swarm-plugin-rrih","type":"parent-child","created_at":"2025-12-07T19:41:12.049256-08:00","created_by":"daemon"}]}
1093
1129
  {"id":"opencode-swarm-plugin-rt4i","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:55.683264-08:00","updated_at":"2025-12-08T08:56:58.123097-08:00","closed_at":"2025-12-08T08:56:58.123097-08:00"}
1094
1130
  {"id":"opencode-swarm-plugin-rt6o","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.335801-08:00","updated_at":"2025-12-08T07:49:11.936688-08:00","closed_at":"2025-12-08T07:49:11.936688-08:00"}
1131
+ {"id":"opencode-swarm-plugin-rwqj5","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:22.165821-08:00","updated_at":"2025-12-09T10:00:25.608129-08:00","closed_at":"2025-12-09T10:00:25.608129-08:00"}
1095
1132
  {"id":"opencode-swarm-plugin-ryzv","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:43.146246-08:00","updated_at":"2025-12-07T19:56:43.167763-08:00","closed_at":"2025-12-07T19:56:43.167763-08:00"}
1096
1133
  {"id":"opencode-swarm-plugin-s0ah","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:10.991261-08:00","updated_at":"2025-12-08T08:25:12.921305-08:00","closed_at":"2025-12-08T08:25:12.921305-08:00"}
1097
1134
  {"id":"opencode-swarm-plugin-s0fr","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:40.824343-08:00","updated_at":"2025-12-08T08:11:42.592959-08:00","closed_at":"2025-12-08T08:11:42.592959-08:00"}
@@ -1155,6 +1192,7 @@
1155
1192
  {"id":"opencode-swarm-plugin-tke2u","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:55.719413-08:00","updated_at":"2025-12-08T11:12:58.172826-08:00","closed_at":"2025-12-08T11:12:58.172826-08:00"}
1156
1193
  {"id":"opencode-swarm-plugin-tl16","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:10.265797-08:00","updated_at":"2025-12-08T08:25:12.486871-08:00","closed_at":"2025-12-08T08:25:12.486871-08:00"}
1157
1194
  {"id":"opencode-swarm-plugin-tms9","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-07T19:56:42.389532-08:00","updated_at":"2025-12-07T19:56:44.672953-08:00","closed_at":"2025-12-07T19:56:44.672953-08:00"}
1195
+ {"id":"opencode-swarm-plugin-tnrmo","title":"Update test bead","description":"Blocked on dependency","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-09T10:00:23.120112-08:00","updated_at":"2025-12-09T10:00:26.054247-08:00","closed_at":"2025-12-09T10:00:26.054247-08:00"}
1158
1196
  {"id":"opencode-swarm-plugin-tnys","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T07:46:50.210687-08:00","updated_at":"2025-12-08T07:46:52.226415-08:00","closed_at":"2025-12-08T07:46:52.226415-08:00"}
1159
1197
  {"id":"opencode-swarm-plugin-tnz9","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:11:24.885382-08:00","updated_at":"2025-12-08T11:11:25.083688-08:00","closed_at":"2025-12-08T11:11:25.083688-08:00"}
1160
1198
  {"id":"opencode-swarm-plugin-tnz9.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:24.920391-08:00","updated_at":"2025-12-08T11:11:25.008828-08:00","closed_at":"2025-12-08T11:11:25.008828-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-tnz9.1","depends_on_id":"opencode-swarm-plugin-tnz9","type":"parent-child","created_at":"2025-12-08T11:11:24.920745-08:00","created_by":"daemon"}]}
@@ -1212,6 +1250,7 @@
1212
1250
  {"id":"opencode-swarm-plugin-unyi","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:22.839104-08:00","updated_at":"2025-12-08T11:11:25.516678-08:00","closed_at":"2025-12-08T11:11:25.516678-08:00"}
1213
1251
  {"id":"opencode-swarm-plugin-uoid","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-07T19:41:11.743571-08:00","updated_at":"2025-12-07T19:41:13.723385-08:00","closed_at":"2025-12-07T19:41:13.723385-08:00"}
1214
1252
  {"id":"opencode-swarm-plugin-uqc2","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:17.318929-08:00","updated_at":"2025-12-08T08:23:19.847347-08:00","closed_at":"2025-12-08T08:23:19.847347-08:00"}
1253
+ {"id":"opencode-swarm-plugin-uriht","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:22.528976-08:00","updated_at":"2025-12-09T10:00:25.777953-08:00","closed_at":"2025-12-09T10:00:25.777953-08:00"}
1215
1254
  {"id":"opencode-swarm-plugin-us81","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:45.402174-08:00","updated_at":"2025-12-08T07:53:47.023877-08:00","closed_at":"2025-12-08T07:53:47.023877-08:00"}
1216
1255
  {"id":"opencode-swarm-plugin-utd","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:18.881432-08:00","updated_at":"2025-12-07T19:39:20.663394-08:00","closed_at":"2025-12-07T19:39:20.663394-08:00"}
1217
1256
  {"id":"opencode-swarm-plugin-uv92","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:53.803795-08:00","updated_at":"2025-12-08T11:10:53.829421-08:00","closed_at":"2025-12-08T11:10:53.829421-08:00"}
@@ -1223,6 +1262,7 @@
1223
1262
  {"id":"opencode-swarm-plugin-uvwx","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:39.796571-08:00","updated_at":"2025-12-08T08:11:42.109197-08:00","closed_at":"2025-12-08T08:11:42.109197-08:00"}
1224
1263
  {"id":"opencode-swarm-plugin-uzp","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:18.238171-08:00","updated_at":"2025-12-07T19:39:20.391173-08:00","closed_at":"2025-12-07T19:39:20.391173-08:00"}
1225
1264
  {"id":"opencode-swarm-plugin-uzz7","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:07.254618-08:00","updated_at":"2025-12-07T19:57:08.91203-08:00","closed_at":"2025-12-07T19:57:08.91203-08:00"}
1265
+ {"id":"opencode-swarm-plugin-v155u","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:22.357052-08:00","updated_at":"2025-12-09T10:00:25.675146-08:00","closed_at":"2025-12-09T10:00:25.675146-08:00"}
1226
1266
  {"id":"opencode-swarm-plugin-v1gu","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:08.25204-08:00","updated_at":"2025-12-08T11:11:10.802916-08:00","closed_at":"2025-12-08T11:11:10.802916-08:00"}
1227
1267
  {"id":"opencode-swarm-plugin-v4bf","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:10.087446-08:00","updated_at":"2025-12-08T08:25:12.460472-08:00","closed_at":"2025-12-08T08:25:12.460472-08:00"}
1228
1268
  {"id":"opencode-swarm-plugin-v4g4","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:14:30.587378-08:00","updated_at":"2025-12-08T08:14:30.768869-08:00","closed_at":"2025-12-08T08:14:30.768869-08:00"}
@@ -1350,6 +1390,7 @@
1350
1390
  {"id":"opencode-swarm-plugin-yunl","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:53.033023-08:00","updated_at":"2025-12-08T11:10:55.63671-08:00","closed_at":"2025-12-08T11:10:55.63671-08:00"}
1351
1391
  {"id":"opencode-swarm-plugin-yvag","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:11.117366-08:00","updated_at":"2025-12-08T07:49:12.774248-08:00","closed_at":"2025-12-08T07:49:12.774248-08:00"}
1352
1392
  {"id":"opencode-swarm-plugin-yvnz","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:36:16.993848-08:00","updated_at":"2025-12-08T08:36:19.361588-08:00","closed_at":"2025-12-08T08:36:19.361588-08:00"}
1393
+ {"id":"opencode-swarm-plugin-yzcon","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:22.240016-08:00","updated_at":"2025-12-09T10:00:25.641139-08:00","closed_at":"2025-12-09T10:00:25.641139-08:00"}
1353
1394
  {"id":"opencode-swarm-plugin-z011","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.770825-08:00","updated_at":"2025-12-08T07:49:12.173678-08:00","closed_at":"2025-12-08T07:49:12.173678-08:00"}
1354
1395
  {"id":"opencode-swarm-plugin-z0s","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:06.949471-08:00","updated_at":"2025-12-07T19:36:06.970397-08:00","closed_at":"2025-12-07T19:36:06.970397-08:00"}
1355
1396
  {"id":"opencode-swarm-plugin-z0zh","title":"Update test bead","description":"Blocked on dependency","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T09:09:31.242765-08:00","updated_at":"2025-12-08T09:09:33.398869-08:00","closed_at":"2025-12-08T09:09:33.398869-08:00"}
@@ -1376,6 +1417,9 @@
1376
1417
  {"id":"opencode-swarm-plugin-zwgf","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T11:11:08.122483-08:00","updated_at":"2025-12-08T11:11:10.443356-08:00","closed_at":"2025-12-08T11:11:10.443356-08:00"}
1377
1418
  {"id":"opencode-swarm-plugin-zx8r","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:25.681528-08:00","updated_at":"2025-12-08T11:12:28.06447-08:00","closed_at":"2025-12-08T11:12:28.06447-08:00"}
1378
1419
  {"id":"opencode-swarm-plugin-zxic","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.336447-08:00","updated_at":"2025-12-08T09:09:33.91114-08:00","closed_at":"2025-12-08T09:09:33.91114-08:00"}
1420
+ {"id":"opencode-swarm-plugin-zxt20","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-09T10:00:23.863717-08:00","updated_at":"2025-12-09T10:00:26.312897-08:00","closed_at":"2025-12-09T10:00:26.312897-08:00"}
1421
+ {"id":"opencode-swarm-plugin-zxt20.1","title":"Edit src/a.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:23.915167-08:00","updated_at":"2025-12-09T10:00:26.344216-08:00","closed_at":"2025-12-09T10:00:26.344216-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-zxt20.1","depends_on_id":"opencode-swarm-plugin-zxt20","type":"parent-child","created_at":"2025-12-09T10:00:23.91553-08:00","created_by":"daemon"}]}
1422
+ {"id":"opencode-swarm-plugin-zxt20.2","title":"Edit src/b.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:23.961458-08:00","updated_at":"2025-12-09T10:00:26.374108-08:00","closed_at":"2025-12-09T10:00:26.374108-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-zxt20.2","depends_on_id":"opencode-swarm-plugin-zxt20","type":"parent-child","created_at":"2025-12-09T10:00:23.961807-08:00","created_by":"daemon"}]}
1379
1423
  {"id":"opencode-swarm-plugin-zzw","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:34:53.29698-08:00","updated_at":"2025-12-07T19:34:54.947962-08:00","closed_at":"2025-12-07T19:34:54.947962-08:00"}
1380
1424
  {"id":"opencode-swarm-plugin-zzw.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:53.324677-08:00","updated_at":"2025-12-07T19:34:54.971396-08:00","closed_at":"2025-12-07T19:34:54.971396-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-zzw.1","depends_on_id":"opencode-swarm-plugin-zzw","type":"parent-child","created_at":"2025-12-07T19:34:53.324987-08:00","created_by":"daemon"}]}
1381
1425
  {"id":"opencode-swarm-plugin-zzw.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-07T19:34:53.354227-08:00","updated_at":"2025-12-07T19:34:54.993123-08:00","closed_at":"2025-12-07T19:34:54.993123-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-zzw.2","depends_on_id":"opencode-swarm-plugin-zzw","type":"parent-child","created_at":"2025-12-07T19:34:53.354536-08:00","created_by":"daemon"}]}
package/README.md CHANGED
@@ -22,7 +22,7 @@
22
22
  ## Install
23
23
 
24
24
  ```bash
25
- npm install -g opencode-swarm-plugin
25
+ npm install -g opencode-swarm-plugin@latest
26
26
  swarm setup
27
27
  ```
28
28
 
package/bin/swarm.ts CHANGED
@@ -13,11 +13,16 @@
13
13
  */
14
14
 
15
15
  import * as p from "@clack/prompts";
16
- import { existsSync, mkdirSync, writeFileSync } from "fs";
16
+ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "fs";
17
17
  import { homedir } from "os";
18
- import { join } from "path";
18
+ import { dirname, join } from "path";
19
+ import { fileURLToPath } from "url";
19
20
 
20
- const VERSION = "0.10.0";
21
+ const __dirname = dirname(fileURLToPath(import.meta.url));
22
+ const pkg = JSON.parse(
23
+ readFileSync(join(__dirname, "..", "package.json"), "utf-8"),
24
+ );
25
+ const VERSION: string = pkg.version;
21
26
 
22
27
  // ============================================================================
23
28
  // ASCII Art & Branding
@@ -45,6 +50,247 @@ const TAGLINE = "Multi-agent coordination for OpenCode";
45
50
  const dim = (s: string) => `\x1b[2m${s}\x1b[0m`;
46
51
  const yellow = (s: string) => `\x1b[33m${s}\x1b[0m`;
47
52
  const cyan = (s: string) => `\x1b[36m${s}\x1b[0m`;
53
+ const green = (s: string) => `\x1b[32m${s}\x1b[0m`;
54
+ const magenta = (s: string) => `\x1b[35m${s}\x1b[0m`;
55
+
56
+ const PACKAGE_NAME = "opencode-swarm-plugin";
57
+
58
+ // ============================================================================
59
+ // Seasonal Messages (inspired by Astro's Houston)
60
+ // ============================================================================
61
+
62
+ type Season = "spooky" | "holiday" | "new-year" | "summer" | "default";
63
+
64
+ function getSeason(): Season {
65
+ const date = new Date();
66
+ const month = date.getMonth() + 1;
67
+ const day = date.getDate();
68
+
69
+ if (month === 1 && day <= 7) return "new-year";
70
+ if (month === 10 && day > 7) return "spooky";
71
+ if (month === 12 && day > 7 && day < 26) return "holiday";
72
+ if (month >= 6 && month <= 8) return "summer";
73
+ return "default";
74
+ }
75
+
76
+ interface SeasonalBee {
77
+ messages: string[];
78
+ decorations?: string[];
79
+ }
80
+
81
+ function getSeasonalBee(): SeasonalBee {
82
+ const season = getSeason();
83
+ const year = new Date().getFullYear();
84
+
85
+ switch (season) {
86
+ case "new-year":
87
+ return {
88
+ messages: [
89
+ `New year, new swarm! Let's build something amazing in ${year}!`,
90
+ `${year} is the year of parallel agents! bzzzz...`,
91
+ `Kicking off ${year} with coordinated chaos!`,
92
+ `Happy ${year}! Time to orchestrate some magic.`,
93
+ ],
94
+ decorations: ["🎉", "🎊", "✨"],
95
+ };
96
+ case "spooky":
97
+ return {
98
+ messages: [
99
+ `Boo! Just kidding. Let's spawn some agents!`,
100
+ `The hive is buzzing with spooky energy...`,
101
+ `No tricks here, only parallel treats!`,
102
+ `Let's conjure up a swarm of worker bees!`,
103
+ `Something wicked this way computes...`,
104
+ ],
105
+ decorations: ["🎃", "👻", "🕷️", "🦇"],
106
+ };
107
+ case "holiday":
108
+ return {
109
+ messages: [
110
+ `'Tis the season to parallelize!`,
111
+ `The hive is warm and cozy. Let's build!`,
112
+ `Ho ho ho! Time to unwrap some agents!`,
113
+ `Jingle bells, agents swell, tasks get done today!`,
114
+ `The best gift? A well-coordinated swarm.`,
115
+ ],
116
+ decorations: ["🎄", "🎁", "❄️", "⭐"],
117
+ };
118
+ case "summer":
119
+ return {
120
+ messages: [
121
+ `Summer vibes and parallel pipelines!`,
122
+ `The hive is buzzing in the sunshine!`,
123
+ `Hot code, cool agents. Let's go!`,
124
+ `Beach day? Nah, build day!`,
125
+ ],
126
+ decorations: ["☀️", "🌻", "🌴"],
127
+ };
128
+ default:
129
+ return {
130
+ messages: [
131
+ `The hive awaits your command.`,
132
+ `Ready to coordinate the swarm!`,
133
+ `Let's build something awesome together.`,
134
+ `Parallel agents, standing by.`,
135
+ `Time to orchestrate some magic!`,
136
+ `The bees are ready to work.`,
137
+ `Bzzzz... initializing swarm intelligence.`,
138
+ `Many agents, one mission.`,
139
+ ],
140
+ };
141
+ }
142
+ }
143
+
144
+ function getRandomMessage(): string {
145
+ const { messages } = getSeasonalBee();
146
+ return messages[Math.floor(Math.random() * messages.length)];
147
+ }
148
+
149
+ function getDecoratedBee(): string {
150
+ const { decorations } = getSeasonalBee();
151
+ if (!decorations || Math.random() > 0.5) return cyan(BEE);
152
+
153
+ const decoration =
154
+ decorations[Math.floor(Math.random() * decorations.length)];
155
+ // Add decoration to the bee
156
+ return cyan(BEE.replace("bzzzz...", `bzzzz... ${decoration}`));
157
+ }
158
+
159
+ // ============================================================================
160
+ // Model Configuration
161
+ // ============================================================================
162
+
163
+ interface ModelOption {
164
+ value: string;
165
+ label: string;
166
+ hint: string;
167
+ }
168
+
169
+ const COORDINATOR_MODELS: ModelOption[] = [
170
+ {
171
+ value: "anthropic/claude-sonnet-4-5",
172
+ label: "Claude Sonnet 4.5",
173
+ hint: "Best balance of speed and capability (recommended)",
174
+ },
175
+ {
176
+ value: "anthropic/claude-opus-4-5",
177
+ label: "Claude Opus 4.5",
178
+ hint: "Most capable, slower and more expensive",
179
+ },
180
+ {
181
+ value: "openai/gpt-4o",
182
+ label: "GPT-4o",
183
+ hint: "Fast, good for most tasks",
184
+ },
185
+ {
186
+ value: "google/gemini-2.0-flash",
187
+ label: "Gemini 2.0 Flash",
188
+ hint: "Fast and capable",
189
+ },
190
+ {
191
+ value: "google/gemini-1.5-pro",
192
+ label: "Gemini 1.5 Pro",
193
+ hint: "More capable, larger context",
194
+ },
195
+ ];
196
+
197
+ const WORKER_MODELS: ModelOption[] = [
198
+ {
199
+ value: "anthropic/claude-haiku-4-5",
200
+ label: "Claude Haiku 4.5",
201
+ hint: "Fast and cost-effective (recommended)",
202
+ },
203
+ {
204
+ value: "anthropic/claude-sonnet-4-5",
205
+ label: "Claude Sonnet 4.5",
206
+ hint: "More capable, slower",
207
+ },
208
+ {
209
+ value: "openai/gpt-4o-mini",
210
+ label: "GPT-4o Mini",
211
+ hint: "Fast and cheap",
212
+ },
213
+ {
214
+ value: "google/gemini-2.0-flash",
215
+ label: "Gemini 2.0 Flash",
216
+ hint: "Fast and capable",
217
+ },
218
+ ];
219
+
220
+ // ============================================================================
221
+ // Update Checking
222
+ // ============================================================================
223
+
224
+ interface UpdateInfo {
225
+ current: string;
226
+ latest: string;
227
+ updateAvailable: boolean;
228
+ }
229
+
230
+ async function checkForUpdates(): Promise<UpdateInfo | null> {
231
+ try {
232
+ const response = await fetch(
233
+ `https://registry.npmjs.org/${PACKAGE_NAME}/latest`,
234
+ {
235
+ signal: AbortSignal.timeout(3000), // 3 second timeout
236
+ },
237
+ );
238
+ if (!response.ok) return null;
239
+ const data = await response.json();
240
+ const latest = data.version;
241
+ const updateAvailable =
242
+ latest !== VERSION && compareVersions(latest, VERSION) > 0;
243
+ return { current: VERSION, latest, updateAvailable };
244
+ } catch {
245
+ return null; // Silently fail - don't block CLI
246
+ }
247
+ }
248
+
249
+ function compareVersions(a: string, b: string): number {
250
+ const partsA = a.split(".").map(Number);
251
+ const partsB = b.split(".").map(Number);
252
+ for (let i = 0; i < 3; i++) {
253
+ if (partsA[i] > partsB[i]) return 1;
254
+ if (partsA[i] < partsB[i]) return -1;
255
+ }
256
+ return 0;
257
+ }
258
+
259
+ function showUpdateNotification(info: UpdateInfo) {
260
+ if (info.updateAvailable) {
261
+ console.log();
262
+ console.log(
263
+ yellow(" ╭─────────────────────────────────────────────────────╮"),
264
+ );
265
+ console.log(
266
+ yellow(" │") +
267
+ " Update available! " +
268
+ dim(info.current) +
269
+ " → " +
270
+ green(info.latest) +
271
+ " " +
272
+ yellow("│"),
273
+ );
274
+ console.log(
275
+ yellow(" │") +
276
+ " Run: " +
277
+ cyan("npm install -g " + PACKAGE_NAME + "@latest") +
278
+ " " +
279
+ yellow("│"),
280
+ );
281
+ console.log(
282
+ yellow(" │") +
283
+ " Or: " +
284
+ cyan("swarm update") +
285
+ " " +
286
+ yellow("│"),
287
+ );
288
+ console.log(
289
+ yellow(" ╰─────────────────────────────────────────────────────╯"),
290
+ );
291
+ console.log();
292
+ }
293
+ }
48
294
 
49
295
  // ============================================================================
50
296
  // Types
@@ -101,11 +347,22 @@ const DEPENDENCIES: Dependency[] = [
101
347
  },
102
348
  {
103
349
  name: "Agent Mail",
104
- command: "agent-mail",
105
- checkArgs: ["--help"],
350
+ command: "curl",
351
+ checkArgs: [
352
+ "-s",
353
+ "-X",
354
+ "POST",
355
+ "http://localhost:8765/mcp",
356
+ "-H",
357
+ "Content-Type: application/json",
358
+ "-d",
359
+ "{}",
360
+ "-o",
361
+ "/dev/null",
362
+ ],
106
363
  required: false,
107
- install: "go install github.com/joelhooks/agent-mail/cmd/agent-mail@latest",
108
- installType: "go",
364
+ install: "https://github.com/Dicklesworthstone/mcp_agent_mail",
365
+ installType: "manual",
109
366
  description: "Multi-agent coordination & file reservations",
110
367
  },
111
368
  {
@@ -129,7 +386,7 @@ const DEPENDENCIES: Dependency[] = [
129
386
  {
130
387
  name: "semantic-memory",
131
388
  command: "semantic-memory",
132
- checkArgs: ["--help"],
389
+ checkArgs: ["stats"],
133
390
  required: false,
134
391
  install: "npm install -g semantic-memory",
135
392
  installType: "npm",
@@ -220,7 +477,7 @@ You are a swarm coordinator. Take a complex task, break it into beads, and unlea
220
477
  2. **Decompose**: Use \`swarm_select_strategy\` then \`swarm_plan_prompt\` to break down the task
221
478
  3. **Create beads**: \`beads_create_epic\` with subtasks and file assignments
222
479
  4. **Reserve files**: \`agentmail_reserve\` for each subtask's files
223
- 5. **Spawn agents**: Use Task tool with \`swarm_spawn_subtask\` prompts - spawn ALL in parallel
480
+ 5. **Spawn agents**: Use Task tool with \`swarm_spawn_subtask\` prompts (or use @swarm-worker for sequential/single-file tasks)
224
481
  6. **Monitor**: Check \`agentmail_inbox\` for progress, use \`agentmail_summarize_thread\` for overview
225
482
  7. **Complete**: \`swarm_complete\` when done, then \`beads_sync\` to push
226
483
 
@@ -237,10 +494,10 @@ The plugin auto-selects decomposition strategy based on task keywords:
237
494
  Begin decomposition now.
238
495
  `;
239
496
 
240
- const PLANNER_AGENT = `---
497
+ const getPlannerAgent = (model: string) => `---
241
498
  name: swarm-planner
242
499
  description: Strategic task decomposition for swarm coordination
243
- model: claude-sonnet-4-5
500
+ model: ${model}
244
501
  ---
245
502
 
246
503
  You are a swarm planner. Decompose tasks into optimal parallel subtasks.
@@ -277,6 +534,27 @@ You are a swarm planner. Decompose tasks into optimal parallel subtasks.
277
534
  - Order by dependency (if B needs A, A comes first)
278
535
  `;
279
536
 
537
+ const getWorkerAgent = (model: string) => `---
538
+ name: swarm-worker
539
+ description: Executes subtasks in a swarm - fast, focused, cost-effective
540
+ model: ${model}
541
+ ---
542
+
543
+ You are a swarm worker agent. Execute your assigned subtask efficiently.
544
+
545
+ ## Rules
546
+ - Focus ONLY on your assigned files
547
+ - Report progress via Agent Mail
548
+ - Use beads_update to track status
549
+ - Call swarm_complete when done
550
+
551
+ ## Workflow
552
+ 1. Read assigned files
553
+ 2. Implement changes
554
+ 3. Verify (typecheck if applicable)
555
+ 4. Report completion
556
+ `;
557
+
280
558
  // ============================================================================
281
559
  // Commands
282
560
  // ============================================================================
@@ -339,12 +617,120 @@ async function doctor() {
339
617
  } else {
340
618
  p.outro("All dependencies installed!");
341
619
  }
620
+
621
+ // Check for updates (non-blocking)
622
+ const updateInfo = await checkForUpdates();
623
+ if (updateInfo) showUpdateNotification(updateInfo);
342
624
  }
343
625
 
344
626
  async function setup() {
345
627
  console.clear();
628
+ console.log(yellow(BANNER));
629
+ console.log(getDecoratedBee());
630
+ console.log();
631
+ console.log(magenta(" " + getRandomMessage()));
632
+ console.log();
633
+
346
634
  p.intro("opencode-swarm-plugin v" + VERSION);
347
635
 
636
+ // Check if already configured FIRST
637
+ const configDir = join(homedir(), ".config", "opencode");
638
+ const pluginsDir = join(configDir, "plugins");
639
+ const commandsDir = join(configDir, "commands");
640
+ const agentsDir = join(configDir, "agents");
641
+
642
+ const pluginPath = join(pluginsDir, "swarm.ts");
643
+ const commandPath = join(commandsDir, "swarm.md");
644
+ const plannerAgentPath = join(agentsDir, "swarm-planner.md");
645
+ const workerAgentPath = join(agentsDir, "swarm-worker.md");
646
+
647
+ const existingFiles = [
648
+ pluginPath,
649
+ commandPath,
650
+ plannerAgentPath,
651
+ workerAgentPath,
652
+ ].filter((f) => existsSync(f));
653
+
654
+ if (existingFiles.length > 0) {
655
+ p.log.success("Swarm is already configured!");
656
+ p.log.message(dim(" Found " + existingFiles.length + "/4 config files"));
657
+
658
+ const action = await p.select({
659
+ message: "What would you like to do?",
660
+ options: [
661
+ {
662
+ value: "skip",
663
+ label: "Keep existing config",
664
+ hint: "Exit without changes",
665
+ },
666
+ {
667
+ value: "models",
668
+ label: "Update agent models",
669
+ hint: "Keep customizations, just change models",
670
+ },
671
+ {
672
+ value: "reinstall",
673
+ label: "Reinstall everything",
674
+ hint: "Check deps and regenerate all config files",
675
+ },
676
+ ],
677
+ });
678
+
679
+ if (p.isCancel(action) || action === "skip") {
680
+ p.outro("Config unchanged. Run 'swarm config' to see file locations.");
681
+ return;
682
+ }
683
+
684
+ if (action === "models") {
685
+ // Quick model update flow
686
+ const coordinatorModel = await p.select({
687
+ message: "Select coordinator model:",
688
+ options: COORDINATOR_MODELS,
689
+ initialValue: "anthropic/claude-sonnet-4-5",
690
+ });
691
+
692
+ if (p.isCancel(coordinatorModel)) {
693
+ p.cancel("Setup cancelled");
694
+ process.exit(0);
695
+ }
696
+
697
+ const workerModel = await p.select({
698
+ message: "Select worker model:",
699
+ options: WORKER_MODELS,
700
+ initialValue: "anthropic/claude-haiku-4-5",
701
+ });
702
+
703
+ if (p.isCancel(workerModel)) {
704
+ p.cancel("Setup cancelled");
705
+ process.exit(0);
706
+ }
707
+
708
+ // Update model lines in agent files
709
+ if (existsSync(plannerAgentPath)) {
710
+ const content = readFileSync(plannerAgentPath, "utf-8");
711
+ const updated = content.replace(
712
+ /^model: .+$/m,
713
+ `model: ${coordinatorModel}`,
714
+ );
715
+ writeFileSync(plannerAgentPath, updated);
716
+ p.log.success("Planner: " + coordinatorModel);
717
+ }
718
+ if (existsSync(workerAgentPath)) {
719
+ const content = readFileSync(workerAgentPath, "utf-8");
720
+ const updated = content.replace(
721
+ /^model: .+$/m,
722
+ `model: ${workerModel}`,
723
+ );
724
+ writeFileSync(workerAgentPath, updated);
725
+ p.log.success("Worker: " + workerModel);
726
+ }
727
+ p.outro("Models updated! Your customizations are preserved.");
728
+ return;
729
+ }
730
+ // action === "reinstall" - fall through to full setup
731
+ }
732
+
733
+ // Full setup flow
348
734
  const s = p.spinner();
349
735
  s.start("Checking dependencies...");
350
736
 
@@ -399,6 +785,7 @@ async function setup() {
399
785
  }
400
786
  }
401
787
 
788
+ // Only prompt for optional deps if there are missing ones
402
789
  if (optionalMissing.length > 0) {
403
790
  const installable = optionalMissing.filter(
404
791
  (r) => r.dep.installType !== "manual",
@@ -468,31 +855,123 @@ async function setup() {
468
855
  }
469
856
  }
470
857
 
471
- p.log.step("Setting up OpenCode integration...");
858
+ // Model selection
859
+ p.log.step("Configure swarm agents...");
860
+
861
+ const coordinatorModel = await p.select({
862
+ message: "Select coordinator model (for orchestration/planning):",
863
+ options: [
864
+ {
865
+ value: "anthropic/claude-sonnet-4-5",
866
+ label: "Claude Sonnet 4.5",
867
+ hint: "Best balance of speed and capability (recommended)",
868
+ },
869
+ {
870
+ value: "anthropic/claude-haiku-4-5",
871
+ label: "Claude Haiku 4.5",
872
+ hint: "Fast and cost-effective",
873
+ },
874
+ {
875
+ value: "anthropic/claude-opus-4-5",
876
+ label: "Claude Opus 4.5",
877
+ hint: "Most capable, slower",
878
+ },
879
+ {
880
+ value: "openai/gpt-4o",
881
+ label: "GPT-4o",
882
+ hint: "Fast, good for most tasks",
883
+ },
884
+ {
885
+ value: "openai/gpt-4-turbo",
886
+ label: "GPT-4 Turbo",
887
+ hint: "Powerful, more expensive",
888
+ },
889
+ {
890
+ value: "google/gemini-2.0-flash",
891
+ label: "Gemini 2.0 Flash",
892
+ hint: "Fast and capable",
893
+ },
894
+ {
895
+ value: "google/gemini-1.5-pro",
896
+ label: "Gemini 1.5 Pro",
897
+ hint: "More capable",
898
+ },
899
+ ],
900
+ initialValue: "anthropic/claude-sonnet-4-5",
901
+ });
902
+
903
+ if (p.isCancel(coordinatorModel)) {
904
+ p.cancel("Setup cancelled");
905
+ process.exit(0);
906
+ }
472
907
 
473
- const configDir = join(homedir(), ".config", "opencode");
474
- const pluginsDir = join(configDir, "plugins");
475
- const commandsDir = join(configDir, "commands");
476
- const agentsDir = join(configDir, "agents");
908
+ const workerModel = await p.select({
909
+ message: "Select worker model (for task execution):",
910
+ options: [
911
+ {
912
+ value: "anthropic/claude-haiku-4-5",
913
+ label: "Claude Haiku 4.5",
914
+ hint: "Fast and cost-effective (recommended)",
915
+ },
916
+ {
917
+ value: "anthropic/claude-sonnet-4-5",
918
+ label: "Claude Sonnet 4.5",
919
+ hint: "Best balance of speed and capability",
920
+ },
921
+ {
922
+ value: "anthropic/claude-opus-4-5",
923
+ label: "Claude Opus 4.5",
924
+ hint: "Most capable, slower",
925
+ },
926
+ {
927
+ value: "openai/gpt-4o",
928
+ label: "GPT-4o",
929
+ hint: "Fast, good for most tasks",
930
+ },
931
+ {
932
+ value: "openai/gpt-4-turbo",
933
+ label: "GPT-4 Turbo",
934
+ hint: "Powerful, more expensive",
935
+ },
936
+ {
937
+ value: "google/gemini-2.0-flash",
938
+ label: "Gemini 2.0 Flash",
939
+ hint: "Fast and capable",
940
+ },
941
+ {
942
+ value: "google/gemini-1.5-pro",
943
+ label: "Gemini 1.5 Pro",
944
+ hint: "More capable",
945
+ },
946
+ ],
947
+ initialValue: "anthropic/claude-haiku-4-5",
948
+ });
949
+
950
+ if (p.isCancel(workerModel)) {
951
+ p.cancel("Setup cancelled");
952
+ process.exit(0);
953
+ }
954
+
955
+ p.log.step("Setting up OpenCode integration...");
477
956
 
957
+ // Create directories if needed
478
958
  for (const dir of [pluginsDir, commandsDir, agentsDir]) {
479
959
  if (!existsSync(dir)) {
480
960
  mkdirSync(dir, { recursive: true });
481
961
  }
482
962
  }
483
963
 
484
- const pluginPath = join(pluginsDir, "swarm.ts");
485
- const commandPath = join(commandsDir, "swarm.md");
486
- const agentPath = join(agentsDir, "swarm-planner.md");
487
-
488
964
  writeFileSync(pluginPath, PLUGIN_WRAPPER);
489
965
  p.log.success("Plugin: " + pluginPath);
490
966
 
491
967
  writeFileSync(commandPath, SWARM_COMMAND);
492
968
  p.log.success("Command: " + commandPath);
493
969
 
494
- writeFileSync(agentPath, PLANNER_AGENT);
495
- p.log.success("Agent: " + agentPath);
970
+ writeFileSync(plannerAgentPath, getPlannerAgent(coordinatorModel as string));
971
+ p.log.success("Planner agent: " + plannerAgentPath);
972
+
973
+ writeFileSync(workerAgentPath, getWorkerAgent(workerModel as string));
974
+ p.log.success("Worker agent: " + workerAgentPath);
496
975
 
497
976
  p.note(
498
977
  'cd your-project\nbd init\nopencode\n/swarm "your task"',
@@ -586,20 +1065,25 @@ async function init() {
586
1065
  }
587
1066
  }
588
1067
 
589
- function version() {
1068
+ async function version() {
590
1069
  console.log(yellow(BANNER));
591
1070
  console.log(dim(" " + TAGLINE));
592
1071
  console.log();
593
1072
  console.log(" Version: " + VERSION);
594
1073
  console.log(" Docs: https://github.com/joelhooks/opencode-swarm-plugin");
595
1074
  console.log();
1075
+
1076
+ // Check for updates (non-blocking)
1077
+ const updateInfo = await checkForUpdates();
1078
+ if (updateInfo) showUpdateNotification(updateInfo);
596
1079
  }
597
1080
 
598
1081
  function config() {
599
1082
  const configDir = join(homedir(), ".config", "opencode");
600
1083
  const pluginPath = join(configDir, "plugins", "swarm.ts");
601
1084
  const commandPath = join(configDir, "commands", "swarm.md");
602
- const agentPath = join(configDir, "agents", "swarm-planner.md");
1085
+ const plannerAgentPath = join(configDir, "agents", "swarm-planner.md");
1086
+ const workerAgentPath = join(configDir, "agents", "swarm-worker.md");
603
1087
 
604
1088
  console.log(yellow(BANNER));
605
1089
  console.log(dim(" " + TAGLINE + " v" + VERSION));
@@ -610,7 +1094,8 @@ function config() {
610
1094
  const files = [
611
1095
  { path: pluginPath, desc: "Plugin loader", emoji: "🔌" },
612
1096
  { path: commandPath, desc: "/swarm command prompt", emoji: "📜" },
613
- { path: agentPath, desc: "@swarm-planner agent", emoji: "🤖" },
1097
+ { path: plannerAgentPath, desc: "@swarm-planner agent", emoji: "🤖" },
1098
+ { path: workerAgentPath, desc: "@swarm-worker agent", emoji: "🐝" },
614
1099
  ];
615
1100
 
616
1101
  for (const { path, desc, emoji } of files) {
@@ -627,31 +1112,94 @@ function config() {
627
1112
  console.log();
628
1113
  }
629
1114
 
630
- function help() {
1115
+ async function update() {
1116
+ p.intro("swarm update v" + VERSION);
1117
+
1118
+ const s = p.spinner();
1119
+ s.start("Checking for updates...");
1120
+
1121
+ const updateInfo = await checkForUpdates();
1122
+
1123
+ if (!updateInfo) {
1124
+ s.stop("Failed to check for updates");
1125
+ p.log.error("Could not reach npm registry");
1126
+ p.outro("Try again later or update manually:");
1127
+ console.log(" " + cyan("npm install -g " + PACKAGE_NAME + "@latest"));
1128
+ process.exit(1);
1129
+ }
1130
+
1131
+ if (!updateInfo.updateAvailable) {
1132
+ s.stop("Already on latest version");
1133
+ p.log.success("You're running " + VERSION);
1134
+ p.outro("No update needed!");
1135
+ return;
1136
+ }
1137
+
1138
+ s.stop("Update available: " + VERSION + " → " + updateInfo.latest);
1139
+
1140
+ const confirmUpdate = await p.confirm({
1141
+ message: "Update to v" + updateInfo.latest + "?",
1142
+ initialValue: true,
1143
+ });
1144
+
1145
+ if (p.isCancel(confirmUpdate) || !confirmUpdate) {
1146
+ p.outro("Update cancelled");
1147
+ return;
1148
+ }
1149
+
1150
+ const updateSpinner = p.spinner();
1151
+ updateSpinner.start("Updating to v" + updateInfo.latest + "...");
1152
+
1153
+ const success = await runInstall(
1154
+ "npm install -g " + PACKAGE_NAME + "@latest",
1155
+ );
1156
+
1157
+ if (success) {
1158
+ updateSpinner.stop("Updated to v" + updateInfo.latest);
1159
+ p.outro("Success! Restart your terminal to use the new version.");
1160
+ } else {
1161
+ updateSpinner.stop("Update failed");
1162
+ p.log.error("Failed to update via npm");
1163
+ p.log.message("Try manually:");
1164
+ console.log(" " + cyan("npm install -g " + PACKAGE_NAME + "@latest"));
1165
+ p.outro("Update failed");
1166
+ process.exit(1);
1167
+ }
1168
+ }
1169
+
1170
+ async function help() {
631
1171
  console.log(yellow(BANNER));
632
1172
  console.log(dim(" " + TAGLINE + " v" + VERSION));
633
- console.log(cyan(BEE));
1173
+ console.log(getDecoratedBee());
1174
+ console.log(magenta(" " + getRandomMessage()));
634
1175
  console.log(`
635
1176
  ${cyan("Commands:")}
636
1177
  swarm setup Interactive installer - checks and installs dependencies
637
1178
  swarm doctor Health check - shows status of all dependencies
638
1179
  swarm init Initialize beads in current project
639
1180
  swarm config Show paths to generated config files
1181
+ swarm update Update to latest version
640
1182
  swarm version Show version and banner
641
1183
  swarm help Show this help
642
1184
 
643
1185
  ${cyan("Usage in OpenCode:")}
644
1186
  /swarm "Add user authentication with OAuth"
645
- @swarm-planner "Refactor all components to use hooks"
1187
+ @swarm-planner "Decompose this into parallel tasks"
1188
+ @swarm-worker "Execute this specific subtask"
646
1189
 
647
1190
  ${cyan("Customization:")}
648
1191
  Edit the generated files to customize behavior:
649
- ${dim("~/.config/opencode/commands/swarm.md")} - /swarm command prompt
650
- ${dim("~/.config/opencode/agents/swarm-planner.md")} - @swarm-planner agent
651
- ${dim("~/.config/opencode/plugins/swarm.ts")} - Plugin loader
1192
+ ${dim("~/.config/opencode/commands/swarm.md")} - /swarm command prompt
1193
+ ${dim("~/.config/opencode/agents/swarm-planner.md")} - @swarm-planner (coordinator)
1194
+ ${dim("~/.config/opencode/agents/swarm-worker.md")} - @swarm-worker (fast executor)
1195
+ ${dim("~/.config/opencode/plugins/swarm.ts")} - Plugin loader
652
1196
 
653
1197
  ${dim("Docs: https://github.com/joelhooks/opencode-swarm-plugin")}
654
1198
  `);
1199
+
1200
+ // Check for updates (non-blocking)
1201
+ const updateInfo = await checkForUpdates();
1202
+ if (updateInfo) showUpdateNotification(updateInfo);
655
1203
  }
656
1204
 
657
1205
  // ============================================================================
@@ -673,15 +1221,18 @@ switch (command) {
673
1221
  case "config":
674
1222
  config();
675
1223
  break;
1224
+ case "update":
1225
+ await update();
1226
+ break;
676
1227
  case "version":
677
1228
  case "--version":
678
1229
  case "-v":
679
- version();
1230
+ await version();
680
1231
  break;
681
1232
  case "help":
682
1233
  case "--help":
683
1234
  case "-h":
684
- help();
1235
+ await help();
685
1236
  break;
686
1237
  case undefined:
687
1238
  await setup();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm-plugin",
3
- "version": "0.10.0",
3
+ "version": "0.11.1",
4
4
  "description": "Multi-agent swarm coordination for OpenCode with learning capabilities, beads integration, and Agent Mail",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",