opencode-swarm-plugin 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,9 +8,11 @@
8
8
  {"id":"opencode-swarm-plugin-0kb2.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T08:23:18.629425-08:00","updated_at":"2025-12-08T08:23:20.440674-08:00","closed_at":"2025-12-08T08:23:20.440674-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-0kb2.1","depends_on_id":"opencode-swarm-plugin-0kb2","type":"parent-child","created_at":"2025-12-08T08:23:18.629757-08:00","created_by":"daemon"}]}
9
9
  {"id":"opencode-swarm-plugin-0llr","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:42.509809-08:00","updated_at":"2025-12-07T19:56:44.737443-08:00","closed_at":"2025-12-07T19:56:44.737443-08:00"}
10
10
  {"id":"opencode-swarm-plugin-0oku","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:40.956973-08:00","updated_at":"2025-12-08T08:11:42.61703-08:00","closed_at":"2025-12-08T08:11:42.61703-08:00"}
11
+ {"id":"opencode-swarm-plugin-0rkr","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.903394-08:00","updated_at":"2025-12-08T09:09:33.255022-08:00","closed_at":"2025-12-08T09:09:33.255022-08:00"}
11
12
  {"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"}
12
13
  {"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"}
13
14
  {"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"}
15
+ {"id":"opencode-swarm-plugin-14md","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:31.299923-08:00","updated_at":"2025-12-08T09:09:33.422668-08:00","closed_at":"2025-12-08T09:09:33.422668-08:00"}
14
16
  {"id":"opencode-swarm-plugin-165","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:34.522313-08:00","updated_at":"2025-12-07T19:37:36.383505-08:00","closed_at":"2025-12-07T19:37:36.383505-08:00"}
15
17
  {"id":"opencode-swarm-plugin-17kj","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:39.282723-08:00","updated_at":"2025-12-08T08:11:41.82511-08:00","closed_at":"2025-12-08T08:11:41.82511-08:00"}
16
18
  {"id":"opencode-swarm-plugin-19wa","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:57:07.462796-08:00","updated_at":"2025-12-07T19:57:08.958826-08:00","closed_at":"2025-12-07T19:57:08.958826-08:00"}
@@ -40,7 +42,9 @@
40
42
  {"id":"opencode-swarm-plugin-1qr.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:07.627583-08:00","updated_at":"2025-12-07T19:36:09.169627-08:00","closed_at":"2025-12-07T19:36:09.169627-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-1qr.4","depends_on_id":"opencode-swarm-plugin-1qr","type":"parent-child","created_at":"2025-12-07T19:36:07.627872-08:00","created_by":"daemon"}]}
41
43
  {"id":"opencode-swarm-plugin-1qv5","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:44.009801-08:00","updated_at":"2025-12-08T07:53:46.398529-08:00","closed_at":"2025-12-08T07:53:46.398529-08:00"}
42
44
  {"id":"opencode-swarm-plugin-1r2","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:09.787144-08:00","updated_at":"2025-12-07T19:39:11.878331-08:00","closed_at":"2025-12-07T19:39:11.878331-08:00"}
45
+ {"id":"opencode-swarm-plugin-1t0k","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.703953-08:00","updated_at":"2025-12-08T09:09:33.136938-08:00","closed_at":"2025-12-08T09:09:33.136938-08:00"}
43
46
  {"id":"opencode-swarm-plugin-1vaa","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T08:56:55.955842-08:00","updated_at":"2025-12-08T08:56:58.247047-08:00","closed_at":"2025-12-08T08:56:58.247047-08:00"}
47
+ {"id":"opencode-swarm-plugin-1wb2","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.868118-08:00","updated_at":"2025-12-08T09:09:33.2302-08:00","closed_at":"2025-12-08T09:09:33.2302-08:00"}
44
48
  {"id":"opencode-swarm-plugin-1wnx","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:29.150099-08:00","updated_at":"2025-12-07T19:39:31.249358-08:00","closed_at":"2025-12-07T19:39:31.249358-08:00"}
45
49
  {"id":"opencode-swarm-plugin-23kk","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:22:17.924026-08:00","updated_at":"2025-12-08T08:22:19.752108-08:00","closed_at":"2025-12-08T08:22:19.752108-08:00"}
46
50
  {"id":"opencode-swarm-plugin-23kk.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T08:22:17.956649-08:00","updated_at":"2025-12-08T08:22:19.780372-08:00","closed_at":"2025-12-08T08:22:19.780372-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-23kk.1","depends_on_id":"opencode-swarm-plugin-23kk","type":"parent-child","created_at":"2025-12-08T08:22:17.956953-08:00","created_by":"daemon"}]}
@@ -70,9 +74,11 @@
70
74
  {"id":"opencode-swarm-plugin-2x34","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:11.145513-08:00","updated_at":"2025-12-07T19:41:13.549149-08:00","closed_at":"2025-12-07T19:41:13.549149-08:00"}
71
75
  {"id":"opencode-swarm-plugin-2xdk","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-08T07:49:09.163908-08:00","updated_at":"2025-12-08T07:49:11.826376-08:00","closed_at":"2025-12-08T07:49:11.826376-08:00"}
72
76
  {"id":"opencode-swarm-plugin-2xm","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-07T19:34:52.279812-08:00","updated_at":"2025-12-07T19:34:54.48258-08:00","closed_at":"2025-12-07T19:34:54.48258-08:00"}
77
+ {"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"}
73
78
  {"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"}
74
79
  {"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"}
75
80
  {"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"}
81
+ {"id":"opencode-swarm-plugin-3e7p","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.57109-08:00","updated_at":"2025-12-08T09:09:32.647281-08:00","closed_at":"2025-12-08T09:09:32.647281-08:00"}
76
82
  {"id":"opencode-swarm-plugin-3fa7","title":"Add rate limiting to Agent Mail","description":"Implement per-agent rate limiting with Redis backend to prevent abuse","status":"closed","priority":2,"issue_type":"epic","created_at":"2025-12-08T08:28:07.547069-08:00","updated_at":"2025-12-08T08:29:09.032995-08:00","closed_at":"2025-12-08T08:29:09.032995-08:00"}
77
83
  {"id":"opencode-swarm-plugin-3fa7.1","title":"Add Redis dependency and connection","description":"Add redis-py to requirements.txt and create Redis connection helper","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:28:14.489575-08:00","updated_at":"2025-12-08T08:28:54.193001-08:00","closed_at":"2025-12-08T08:28:54.193001-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-3fa7.1","depends_on_id":"opencode-swarm-plugin-3fa7","type":"parent-child","created_at":"2025-12-08T08:28:14.489983-08:00","created_by":"daemon"}]}
78
84
  {"id":"opencode-swarm-plugin-3fa7.2","title":"Implement rate limiter class","description":"Create RateLimiter class using Redis sorted sets for sliding window rate limiting","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:28:14.527429-08:00","updated_at":"2025-12-08T08:29:08.941471-08:00","closed_at":"2025-12-08T08:29:08.941471-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-3fa7.2","depends_on_id":"opencode-swarm-plugin-3fa7","type":"parent-child","created_at":"2025-12-08T08:28:14.527749-08:00","created_by":"daemon"}]}
@@ -97,6 +103,7 @@
97
103
  {"id":"opencode-swarm-plugin-3pj","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:37:35.468436-08:00","updated_at":"2025-12-07T19:37:36.793281-08:00","closed_at":"2025-12-07T19:37:36.793281-08:00"}
98
104
  {"id":"opencode-swarm-plugin-3qp","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:09.845918-08:00","updated_at":"2025-12-07T19:39:11.927501-08:00","closed_at":"2025-12-07T19:39:11.927501-08:00"}
99
105
  {"id":"opencode-swarm-plugin-3zw","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:09.954171-08:00","updated_at":"2025-12-07T19:39:11.975757-08:00","closed_at":"2025-12-07T19:39:11.975757-08:00"}
106
+ {"id":"opencode-swarm-plugin-40dw","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.93528-08:00","updated_at":"2025-12-08T09:09:33.280064-08:00","closed_at":"2025-12-08T09:09:33.280064-08:00"}
100
107
  {"id":"opencode-swarm-plugin-40s3","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:18.000169-08:00","updated_at":"2025-12-08T08:23:20.156883-08:00","closed_at":"2025-12-08T08:23:20.156883-08:00"}
101
108
  {"id":"opencode-swarm-plugin-41tn","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-07T19:56:42.421151-08:00","updated_at":"2025-12-07T19:56:44.695015-08:00","closed_at":"2025-12-07T19:56:44.695015-08:00"}
102
109
  {"id":"opencode-swarm-plugin-41wj","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-08T08:56:55.245953-08:00","updated_at":"2025-12-08T08:56:57.860151-08:00","closed_at":"2025-12-08T08:56:57.860151-08:00"}
@@ -144,6 +151,7 @@
144
151
  {"id":"opencode-swarm-plugin-56b.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:35.830994-08:00","updated_at":"2025-12-07T19:37:35.916483-08:00","closed_at":"2025-12-07T19:37:35.916483-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-56b.2","depends_on_id":"opencode-swarm-plugin-56b","type":"parent-child","created_at":"2025-12-07T19:37:35.831286-08:00","created_by":"daemon"}]}
145
152
  {"id":"opencode-swarm-plugin-57cg","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:43.941601-08:00","updated_at":"2025-12-08T07:53:46.340787-08:00","closed_at":"2025-12-08T07:53:46.340787-08:00"}
146
153
  {"id":"opencode-swarm-plugin-59g9","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T08:36:17.061598-08:00","updated_at":"2025-12-08T08:36:19.385951-08:00","closed_at":"2025-12-08T08:36:19.385951-08:00"}
154
+ {"id":"opencode-swarm-plugin-59lp","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.569486-08:00","updated_at":"2025-12-08T09:09:33.085717-08:00","closed_at":"2025-12-08T09:09:33.085717-08:00"}
147
155
  {"id":"opencode-swarm-plugin-59zk","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:29.013763-08:00","updated_at":"2025-12-08T08:14:31.236956-08:00","closed_at":"2025-12-08T08:14:31.236956-08:00"}
148
156
  {"id":"opencode-swarm-plugin-5clp","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:56:43.706972-08:00","updated_at":"2025-12-07T19:56:45.317385-08:00","closed_at":"2025-12-07T19:56:45.317385-08:00"}
149
157
  {"id":"opencode-swarm-plugin-5clp.1","title":"First","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:43.734921-08:00","updated_at":"2025-12-07T19:56:45.339143-08:00","closed_at":"2025-12-07T19:56:45.339143-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-5clp.1","depends_on_id":"opencode-swarm-plugin-5clp","type":"parent-child","created_at":"2025-12-07T19:56:43.735193-08:00","created_by":"daemon"}]}
@@ -194,6 +202,7 @@
194
202
  {"id":"opencode-swarm-plugin-6wkv","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:14:29.792336-08:00","updated_at":"2025-12-08T08:14:31.557975-08:00","closed_at":"2025-12-08T08:14:31.557975-08:00"}
195
203
  {"id":"opencode-swarm-plugin-6wkv.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T08:14:29.822365-08:00","updated_at":"2025-12-08T08:14:31.584421-08:00","closed_at":"2025-12-08T08:14:31.584421-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-6wkv.1","depends_on_id":"opencode-swarm-plugin-6wkv","type":"parent-child","created_at":"2025-12-08T08:14:29.823792-08:00","created_by":"daemon"}]}
196
204
  {"id":"opencode-swarm-plugin-6zh1","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:29.58612-08:00","updated_at":"2025-12-07T19:39:31.471458-08:00","closed_at":"2025-12-07T19:39:31.471458-08:00"}
205
+ {"id":"opencode-swarm-plugin-70f5","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.43114-08:00","updated_at":"2025-12-08T09:09:32.988939-08:00","closed_at":"2025-12-08T09:09:32.988939-08:00"}
197
206
  {"id":"opencode-swarm-plugin-75cl","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:43.905176-08:00","updated_at":"2025-12-08T07:53:46.313642-08:00","closed_at":"2025-12-08T07:53:46.313642-08:00"}
198
207
  {"id":"opencode-swarm-plugin-75x7","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T07:49:10.547159-08:00","updated_at":"2025-12-08T07:49:12.461308-08:00","closed_at":"2025-12-08T07:49:12.461308-08:00"}
199
208
  {"id":"opencode-swarm-plugin-75x7.1","title":"Edit src/a.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:10.580969-08:00","updated_at":"2025-12-08T07:49:12.486661-08:00","closed_at":"2025-12-08T07:49:12.486661-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-75x7.1","depends_on_id":"opencode-swarm-plugin-75x7","type":"parent-child","created_at":"2025-12-08T07:49:10.581322-08:00","created_by":"daemon"}]}
@@ -249,6 +258,7 @@
249
258
  {"id":"opencode-swarm-plugin-8gwa.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:11.660941-08:00","updated_at":"2025-12-08T08:25:11.754936-08:00","closed_at":"2025-12-08T08:25:11.754936-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-8gwa.1","depends_on_id":"opencode-swarm-plugin-8gwa","type":"parent-child","created_at":"2025-12-08T08:25:11.661256-08:00","created_by":"daemon"}]}
250
259
  {"id":"opencode-swarm-plugin-8gwa.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:11.699068-08:00","updated_at":"2025-12-08T08:25:11.816301-08:00","closed_at":"2025-12-08T08:25:11.816301-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-8gwa.2","depends_on_id":"opencode-swarm-plugin-8gwa","type":"parent-child","created_at":"2025-12-08T08:25:11.69946-08:00","created_by":"daemon"}]}
251
260
  {"id":"opencode-swarm-plugin-8gwh","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-07T19:57:06.70515-08:00","updated_at":"2025-12-07T19:57:08.554987-08:00","closed_at":"2025-12-07T19:57:08.554987-08:00"}
261
+ {"id":"opencode-swarm-plugin-8hhc","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:31.363237-08:00","updated_at":"2025-12-08T09:09:31.388981-08:00","closed_at":"2025-12-08T09:09:31.388981-08:00"}
252
262
  {"id":"opencode-swarm-plugin-8i74","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T07:46:50.283343-08:00","updated_at":"2025-12-08T07:46:52.284254-08:00","closed_at":"2025-12-08T07:46:52.284254-08:00"}
253
263
  {"id":"opencode-swarm-plugin-8i74.1","title":"First","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:50.319778-08:00","updated_at":"2025-12-08T07:46:52.310954-08:00","closed_at":"2025-12-08T07:46:52.310954-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-8i74.1","depends_on_id":"opencode-swarm-plugin-8i74","type":"parent-child","created_at":"2025-12-08T07:46:50.320111-08:00","created_by":"daemon"}]}
254
264
  {"id":"opencode-swarm-plugin-8i74.2","title":"Second","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:50.35649-08:00","updated_at":"2025-12-08T07:46:52.338209-08:00","closed_at":"2025-12-08T07:46:52.338209-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-8i74.2","depends_on_id":"opencode-swarm-plugin-8i74","type":"parent-child","created_at":"2025-12-08T07:46:50.356877-08:00","created_by":"daemon"}]}
@@ -263,10 +273,12 @@
263
273
  {"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"}
264
274
  {"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"}
265
275
  {"id":"opencode-swarm-plugin-8z8","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:52.559683-08:00","updated_at":"2025-12-07T19:34:54.655431-08:00","closed_at":"2025-12-07T19:34:54.655431-08:00"}
276
+ {"id":"opencode-swarm-plugin-902a","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:31.07378-08:00","updated_at":"2025-12-08T09:09:33.327887-08:00","closed_at":"2025-12-08T09:09:33.327887-08:00"}
266
277
  {"id":"opencode-swarm-plugin-93e","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:19.580617-08:00","updated_at":"2025-12-07T19:39:21.044657-08:00","closed_at":"2025-12-07T19:39:21.044657-08:00"}
267
278
  {"id":"opencode-swarm-plugin-94mr","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.633998-08:00","updated_at":"2025-12-08T07:49:12.12296-08:00","closed_at":"2025-12-08T07:49:12.12296-08:00"}
268
279
  {"id":"opencode-swarm-plugin-94qw","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:56.998023-08:00","updated_at":"2025-12-08T08:56:58.751714-08:00","closed_at":"2025-12-08T08:56:58.751714-08:00"}
269
280
  {"id":"opencode-swarm-plugin-96ww","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:55.546006-08:00","updated_at":"2025-12-08T08:56:58.026583-08:00","closed_at":"2025-12-08T08:56:58.026583-08:00"}
281
+ {"id":"opencode-swarm-plugin-98oh","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.231853-08:00","updated_at":"2025-12-08T09:09:33.887506-08:00","closed_at":"2025-12-08T09:09:33.887506-08:00"}
270
282
  {"id":"opencode-swarm-plugin-99kl","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-08T08:25:09.19481-08:00","updated_at":"2025-12-08T08:25:11.989888-08:00","closed_at":"2025-12-08T08:25:11.989888-08:00"}
271
283
  {"id":"opencode-swarm-plugin-9c51","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:11.111119-08:00","updated_at":"2025-12-08T08:25:12.950452-08:00","closed_at":"2025-12-08T08:25:12.950452-08:00"}
272
284
  {"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"}
@@ -321,12 +333,14 @@
321
333
  {"id":"opencode-swarm-plugin-b3pr","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:17.77563-08:00","updated_at":"2025-12-08T08:23:20.062473-08:00","closed_at":"2025-12-08T08:23:20.062473-08:00"}
322
334
  {"id":"opencode-swarm-plugin-b40","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:52.696949-08:00","updated_at":"2025-12-07T19:34:54.75136-08:00","closed_at":"2025-12-07T19:34:54.75136-08:00"}
323
335
  {"id":"opencode-swarm-plugin-b5m","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:10.175896-08:00","updated_at":"2025-12-07T19:39:12.06669-08:00","closed_at":"2025-12-07T19:39:12.06669-08:00"}
336
+ {"id":"opencode-swarm-plugin-b8oi","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T09:09:30.538591-08:00","updated_at":"2025-12-08T09:09:33.061926-08:00","closed_at":"2025-12-08T09:09:33.061926-08:00"}
324
337
  {"id":"opencode-swarm-plugin-b8t","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:06.385225-08:00","updated_at":"2025-12-07T19:36:08.543822-08:00","closed_at":"2025-12-07T19:36:08.543822-08:00"}
325
338
  {"id":"opencode-swarm-plugin-baua","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:39:29.909783-08:00","updated_at":"2025-12-07T19:39:31.53741-08:00","closed_at":"2025-12-07T19:39:31.53741-08:00"}
326
339
  {"id":"opencode-swarm-plugin-baua.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:29.93858-08:00","updated_at":"2025-12-07T19:39:31.56027-08:00","closed_at":"2025-12-07T19:39:31.56027-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-baua.1","depends_on_id":"opencode-swarm-plugin-baua","type":"parent-child","created_at":"2025-12-07T19:39:29.938853-08:00","created_by":"daemon"}]}
327
340
  {"id":"opencode-swarm-plugin-baua.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-07T19:39:29.968075-08:00","updated_at":"2025-12-07T19:39:31.581422-08:00","closed_at":"2025-12-07T19:39:31.581422-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-baua.2","depends_on_id":"opencode-swarm-plugin-baua","type":"parent-child","created_at":"2025-12-07T19:39:29.968363-08:00","created_by":"daemon"}]}
328
341
  {"id":"opencode-swarm-plugin-baua.3","title":"Subtask 3","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-07T19:39:29.995311-08:00","updated_at":"2025-12-07T19:39:31.603333-08:00","closed_at":"2025-12-07T19:39:31.603333-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-baua.3","depends_on_id":"opencode-swarm-plugin-baua","type":"parent-child","created_at":"2025-12-07T19:39:29.995588-08:00","created_by":"daemon"}]}
329
342
  {"id":"opencode-swarm-plugin-bfry","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:30.349211-08:00","updated_at":"2025-12-08T08:14:31.809384-08:00","closed_at":"2025-12-08T08:14:31.809384-08:00"}
343
+ {"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"}
330
344
  {"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"}
331
345
  {"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"}
332
346
  {"id":"opencode-swarm-plugin-bo3t","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:07.590376-08:00","updated_at":"2025-12-07T19:57:08.981729-08:00","closed_at":"2025-12-07T19:57:08.981729-08:00"}
@@ -335,6 +349,9 @@
335
349
  {"id":"opencode-swarm-plugin-bs9","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-07T19:34:53.2161-08:00","updated_at":"2025-12-07T19:34:54.924685-08:00","closed_at":"2025-12-07T19:34:54.924685-08:00"}
336
350
  {"id":"opencode-swarm-plugin-bsdi","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T07:53:44.245806-08:00","updated_at":"2025-12-08T07:53:46.503005-08:00","closed_at":"2025-12-08T07:53:46.503005-08:00"}
337
351
  {"id":"opencode-swarm-plugin-bv3m","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:33.148679-08:00","updated_at":"2025-12-08T08:05:35.457241-08:00","closed_at":"2025-12-08T08:05:35.457241-08:00"}
352
+ {"id":"opencode-swarm-plugin-bvrh","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T09:09:31.796296-08:00","updated_at":"2025-12-08T09:09:33.605943-08:00","closed_at":"2025-12-08T09:09:33.605943-08:00"}
353
+ {"id":"opencode-swarm-plugin-bvrh.1","title":"Edit src/a.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:31.8317-08:00","updated_at":"2025-12-08T09:09:33.630658-08:00","closed_at":"2025-12-08T09:09:33.630658-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-bvrh.1","depends_on_id":"opencode-swarm-plugin-bvrh","type":"parent-child","created_at":"2025-12-08T09:09:31.832015-08:00","created_by":"daemon"}]}
354
+ {"id":"opencode-swarm-plugin-bvrh.2","title":"Edit src/b.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:31.869253-08:00","updated_at":"2025-12-08T09:09:33.656157-08:00","closed_at":"2025-12-08T09:09:33.656157-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-bvrh.2","depends_on_id":"opencode-swarm-plugin-bvrh","type":"parent-child","created_at":"2025-12-08T09:09:31.869579-08:00","created_by":"daemon"}]}
338
355
  {"id":"opencode-swarm-plugin-bvvt","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:09.579794-08:00","updated_at":"2025-12-08T08:25:12.218334-08:00","closed_at":"2025-12-08T08:25:12.218334-08:00"}
339
356
  {"id":"opencode-swarm-plugin-bxai","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.405415-08:00","updated_at":"2025-12-08T07:49:11.962035-08:00","closed_at":"2025-12-08T07:49:11.962035-08:00"}
340
357
  {"id":"opencode-swarm-plugin-byj9","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:18.947426-08:00","updated_at":"2025-12-08T08:23:20.618013-08:00","closed_at":"2025-12-08T08:23:20.618013-08:00"}
@@ -347,6 +364,7 @@
347
364
  {"id":"opencode-swarm-plugin-bzed.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-08T08:25:10.546772-08:00","updated_at":"2025-12-08T08:25:12.589201-08:00","closed_at":"2025-12-08T08:25:12.589201-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-bzed.2","depends_on_id":"opencode-swarm-plugin-bzed","type":"parent-child","created_at":"2025-12-08T08:25:10.547138-08:00","created_by":"daemon"}]}
348
365
  {"id":"opencode-swarm-plugin-bzed.3","title":"Subtask 3","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T08:25:10.584208-08:00","updated_at":"2025-12-08T08:25:12.616327-08:00","closed_at":"2025-12-08T08:25:12.616327-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-bzed.3","depends_on_id":"opencode-swarm-plugin-bzed","type":"parent-child","created_at":"2025-12-08T08:25:10.584529-08:00","created_by":"daemon"}]}
349
366
  {"id":"opencode-swarm-plugin-c03","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:18.184183-08:00","updated_at":"2025-12-07T19:39:20.369619-08:00","closed_at":"2025-12-07T19:39:20.369619-08:00"}
367
+ {"id":"opencode-swarm-plugin-c1hd","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T09:09:31.186427-08:00","updated_at":"2025-12-08T09:09:33.37485-08:00","closed_at":"2025-12-08T09:09:33.37485-08:00"}
350
368
  {"id":"opencode-swarm-plugin-c1l5","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T08:05:32.70289-08:00","updated_at":"2025-12-08T08:05:35.186328-08:00","closed_at":"2025-12-08T08:05:35.186328-08:00"}
351
369
  {"id":"opencode-swarm-plugin-c37s","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:23:19.06198-08:00","updated_at":"2025-12-08T08:23:20.643672-08:00","closed_at":"2025-12-08T08:23:20.643672-08:00"}
352
370
  {"id":"opencode-swarm-plugin-c3j","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:39:19.17763-08:00","updated_at":"2025-12-07T19:39:20.795069-08:00","closed_at":"2025-12-07T19:39:20.795069-08:00"}
@@ -364,6 +382,7 @@
364
382
  {"id":"opencode-swarm-plugin-cjq3","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:19.197074-08:00","updated_at":"2025-12-08T08:23:20.668185-08:00","closed_at":"2025-12-08T08:23:20.668185-08:00"}
365
383
  {"id":"opencode-swarm-plugin-cmo6","title":"Update test bead","description":"Blocked on dependency","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T07:53:44.299916-08:00","updated_at":"2025-12-08T07:53:46.527966-08:00","closed_at":"2025-12-08T07:53:46.527966-08:00"}
366
384
  {"id":"opencode-swarm-plugin-cor","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:53.00247-08:00","updated_at":"2025-12-07T19:34:53.027513-08:00","closed_at":"2025-12-07T19:34:53.027513-08:00"}
385
+ {"id":"opencode-swarm-plugin-cppl","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:31.130656-08:00","updated_at":"2025-12-08T09:09:33.351067-08:00","closed_at":"2025-12-08T09:09:33.351067-08:00"}
367
386
  {"id":"opencode-swarm-plugin-crcm","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:17.504179-08:00","updated_at":"2025-12-08T08:23:19.920645-08:00","closed_at":"2025-12-08T08:23:19.920645-08:00"}
368
387
  {"id":"opencode-swarm-plugin-csdh","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:25:10.806508-08:00","updated_at":"2025-12-08T08:25:12.779477-08:00","closed_at":"2025-12-08T08:25:12.779477-08:00"}
369
388
  {"id":"opencode-swarm-plugin-csdh.1","title":"First","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:10.846377-08:00","updated_at":"2025-12-08T08:25:12.806068-08:00","closed_at":"2025-12-08T08:25:12.806068-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-csdh.1","depends_on_id":"opencode-swarm-plugin-csdh","type":"parent-child","created_at":"2025-12-08T08:25:10.846682-08:00","created_by":"daemon"}]}
@@ -452,12 +471,14 @@
452
471
  {"id":"opencode-swarm-plugin-fsu","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:36:07.858243-08:00","updated_at":"2025-12-07T19:36:09.243449-08:00","closed_at":"2025-12-07T19:36:09.243449-08:00"}
453
472
  {"id":"opencode-swarm-plugin-ftw","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:06.495292-08:00","updated_at":"2025-12-07T19:36:08.612936-08:00","closed_at":"2025-12-07T19:36:08.612936-08:00"}
454
473
  {"id":"opencode-swarm-plugin-fv7a","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:48.987023-08:00","updated_at":"2025-12-08T07:46:51.655046-08:00","closed_at":"2025-12-08T07:46:51.655046-08:00"}
474
+ {"id":"opencode-swarm-plugin-fw10","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.62651-08:00","updated_at":"2025-12-08T09:09:33.111246-08:00","closed_at":"2025-12-08T09:09:33.111246-08:00"}
455
475
  {"id":"opencode-swarm-plugin-fxyg","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:33.00973-08:00","updated_at":"2025-12-08T08:05:35.380276-08:00","closed_at":"2025-12-08T08:05:35.380276-08:00"}
456
476
  {"id":"opencode-swarm-plugin-fzi","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:34.307604-08:00","updated_at":"2025-12-07T19:37:36.295003-08:00","closed_at":"2025-12-07T19:37:36.295003-08:00"}
457
477
  {"id":"opencode-swarm-plugin-fzy2","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:18.160485-08:00","updated_at":"2025-12-08T08:23:20.183038-08:00","closed_at":"2025-12-08T08:23:20.183038-08:00"}
458
478
  {"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"}
459
479
  {"id":"opencode-swarm-plugin-g1ew.1","title":"Edit src/a.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:36:17.799402-08:00","updated_at":"2025-12-08T08:36:19.646496-08:00","closed_at":"2025-12-08T08:36:19.646496-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-g1ew.1","depends_on_id":"opencode-swarm-plugin-g1ew","type":"parent-child","created_at":"2025-12-08T08:36:17.79972-08:00","created_by":"daemon"}]}
460
480
  {"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"}]}
481
+ {"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"}
461
482
  {"id":"opencode-swarm-plugin-g6ai","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.465409-08:00","updated_at":"2025-12-08T07:49:11.988385-08:00","closed_at":"2025-12-08T07:49:11.988385-08:00"}
462
483
  {"id":"opencode-swarm-plugin-ga3","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:18.459646-08:00","updated_at":"2025-12-07T19:39:20.527941-08:00","closed_at":"2025-12-07T19:39:20.527941-08:00"}
463
484
  {"id":"opencode-swarm-plugin-ggq","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:06.582584-08:00","updated_at":"2025-12-07T19:36:08.680139-08:00","closed_at":"2025-12-07T19:36:08.680139-08:00"}
@@ -469,6 +490,7 @@
469
490
  {"id":"opencode-swarm-plugin-gpse.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:11.52435-08:00","updated_at":"2025-12-08T07:49:11.619347-08:00","closed_at":"2025-12-08T07:49:11.619347-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-gpse.1","depends_on_id":"opencode-swarm-plugin-gpse","type":"parent-child","created_at":"2025-12-08T07:49:11.524725-08:00","created_by":"daemon"}]}
470
491
  {"id":"opencode-swarm-plugin-gpse.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:11.56095-08:00","updated_at":"2025-12-08T07:49:11.671061-08:00","closed_at":"2025-12-08T07:49:11.671061-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-gpse.2","depends_on_id":"opencode-swarm-plugin-gpse","type":"parent-child","created_at":"2025-12-08T07:49:11.561312-08:00","created_by":"daemon"}]}
471
492
  {"id":"opencode-swarm-plugin-gswv","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:44.538704-08:00","updated_at":"2025-12-08T07:53:46.579794-08:00","closed_at":"2025-12-08T07:53:46.579794-08:00"}
493
+ {"id":"opencode-swarm-plugin-gv0f","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.833154-08:00","updated_at":"2025-12-08T09:09:33.206848-08:00","closed_at":"2025-12-08T09:09:33.206848-08:00"}
472
494
  {"id":"opencode-swarm-plugin-gv83","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:21:27.193886-08:00","updated_at":"2025-12-08T08:21:29.896242-08:00","closed_at":"2025-12-08T08:21:29.896242-08:00"}
473
495
  {"id":"opencode-swarm-plugin-gvib","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T07:53:45.028986-08:00","updated_at":"2025-12-08T07:53:46.85409-08:00","closed_at":"2025-12-08T07:53:46.85409-08:00"}
474
496
  {"id":"opencode-swarm-plugin-gvib.1","title":"First","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:45.059308-08:00","updated_at":"2025-12-08T07:53:46.877097-08:00","closed_at":"2025-12-08T07:53:46.877097-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-gvib.1","depends_on_id":"opencode-swarm-plugin-gvib","type":"parent-child","created_at":"2025-12-08T07:53:45.059607-08:00","created_by":"daemon"}]}
@@ -571,6 +593,7 @@
571
593
  {"id":"opencode-swarm-plugin-ksju","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:29.209169-08:00","updated_at":"2025-12-07T19:39:31.293491-08:00","closed_at":"2025-12-07T19:39:31.293491-08:00"}
572
594
  {"id":"opencode-swarm-plugin-ku18","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:21:28.450162-08:00","updated_at":"2025-12-08T08:21:30.491525-08:00","closed_at":"2025-12-08T08:21:30.491525-08:00"}
573
595
  {"id":"opencode-swarm-plugin-ku18.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T08:21:28.485702-08:00","updated_at":"2025-12-08T08:21:30.521433-08:00","closed_at":"2025-12-08T08:21:30.521433-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-ku18.1","depends_on_id":"opencode-swarm-plugin-ku18","type":"parent-child","created_at":"2025-12-08T08:21:28.486067-08:00","created_by":"daemon"}]}
596
+ {"id":"opencode-swarm-plugin-kuy2","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T09:09:31.591559-08:00","updated_at":"2025-12-08T09:09:33.474734-08:00","closed_at":"2025-12-08T09:09:33.474734-08:00"}
574
597
  {"id":"opencode-swarm-plugin-kzyo","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-08T08:56:55.201159-08:00","updated_at":"2025-12-08T08:56:57.826934-08:00","closed_at":"2025-12-08T08:56:57.826934-08:00"}
575
598
  {"id":"opencode-swarm-plugin-l0nf","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-08T08:05:32.672544-08:00","updated_at":"2025-12-08T08:05:35.160106-08:00","closed_at":"2025-12-08T08:05:35.160106-08:00"}
576
599
  {"id":"opencode-swarm-plugin-l1l","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-07T19:39:09.442299-08:00","updated_at":"2025-12-07T19:39:11.67709-08:00","closed_at":"2025-12-07T19:39:11.67709-08:00"}
@@ -589,6 +612,7 @@
589
612
  {"id":"opencode-swarm-plugin-ldqm","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:32.790881-08:00","updated_at":"2025-12-08T08:05:35.238079-08:00","closed_at":"2025-12-08T08:05:35.238079-08:00"}
590
613
  {"id":"opencode-swarm-plugin-lib","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:37:35.075852-08:00","updated_at":"2025-12-07T19:37:36.603302-08:00","closed_at":"2025-12-07T19:37:36.603302-08:00"}
591
614
  {"id":"opencode-swarm-plugin-lib.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-07T19:37:35.106453-08:00","updated_at":"2025-12-07T19:37:36.623173-08:00","closed_at":"2025-12-07T19:37:36.623173-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-lib.1","depends_on_id":"opencode-swarm-plugin-lib","type":"parent-child","created_at":"2025-12-07T19:37:35.106715-08:00","created_by":"daemon"}]}
615
+ {"id":"opencode-swarm-plugin-lit5","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.797757-08:00","updated_at":"2025-12-08T09:09:33.183527-08:00","closed_at":"2025-12-08T09:09:33.183527-08:00"}
592
616
  {"id":"opencode-swarm-plugin-ll15","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:22:18.723191-08:00","updated_at":"2025-12-08T08:22:18.922132-08:00","closed_at":"2025-12-08T08:22:18.922132-08:00"}
593
617
  {"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"}]}
594
618
  {"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"}]}
@@ -639,6 +663,10 @@
639
663
  {"id":"opencode-swarm-plugin-mp8b","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T08:05:33.3177-08:00","updated_at":"2025-12-08T08:05:35.533355-08:00","closed_at":"2025-12-08T08:05:35.533355-08:00"}
640
664
  {"id":"opencode-swarm-plugin-mquw","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:28.67798-08:00","updated_at":"2025-12-08T08:14:31.039942-08:00","closed_at":"2025-12-08T08:14:31.039942-08:00"}
641
665
  {"id":"opencode-swarm-plugin-mrlu","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:16.613409-08:00","updated_at":"2025-12-08T08:22:19.162032-08:00","closed_at":"2025-12-08T08:22:19.162032-08:00"}
666
+ {"id":"opencode-swarm-plugin-msud","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T09:09:31.67052-08:00","updated_at":"2025-12-08T09:09:33.50072-08:00","closed_at":"2025-12-08T09:09:33.50072-08:00"}
667
+ {"id":"opencode-swarm-plugin-msud.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:31.702476-08:00","updated_at":"2025-12-08T09:09:33.525777-08:00","closed_at":"2025-12-08T09:09:33.525777-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-msud.1","depends_on_id":"opencode-swarm-plugin-msud","type":"parent-child","created_at":"2025-12-08T09:09:31.702811-08:00","created_by":"daemon"}]}
668
+ {"id":"opencode-swarm-plugin-msud.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-08T09:09:31.733374-08:00","updated_at":"2025-12-08T09:09:33.551412-08:00","closed_at":"2025-12-08T09:09:33.551412-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-msud.2","depends_on_id":"opencode-swarm-plugin-msud","type":"parent-child","created_at":"2025-12-08T09:09:31.733661-08:00","created_by":"daemon"}]}
669
+ {"id":"opencode-swarm-plugin-msud.3","title":"Subtask 3","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T09:09:31.764092-08:00","updated_at":"2025-12-08T09:09:33.578655-08:00","closed_at":"2025-12-08T09:09:33.578655-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-msud.3","depends_on_id":"opencode-swarm-plugin-msud","type":"parent-child","created_at":"2025-12-08T09:09:31.764403-08:00","created_by":"daemon"}]}
642
670
  {"id":"opencode-swarm-plugin-mtb0","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:36:17.247083-08:00","updated_at":"2025-12-08T08:36:17.279005-08:00","closed_at":"2025-12-08T08:36:17.279005-08:00"}
643
671
  {"id":"opencode-swarm-plugin-myyr","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:56.892474-08:00","updated_at":"2025-12-08T08:56:58.727861-08:00","closed_at":"2025-12-08T08:56:58.727861-08:00"}
644
672
  {"id":"opencode-swarm-plugin-mzb","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:36:07.346308-08:00","updated_at":"2025-12-07T19:36:08.960016-08:00","closed_at":"2025-12-07T19:36:08.960016-08:00"}
@@ -715,6 +743,7 @@
715
743
  {"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"}
716
744
  {"id":"opencode-swarm-plugin-psm.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-07T19:39:19.30463-08:00","updated_at":"2025-12-07T19:39:20.883252-08:00","closed_at":"2025-12-07T19:39:20.883252-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-psm.1","depends_on_id":"opencode-swarm-plugin-psm","type":"parent-child","created_at":"2025-12-07T19:39:19.304929-08:00","created_by":"daemon"}]}
717
745
  {"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"}
746
+ {"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"}
718
747
  {"id":"opencode-swarm-plugin-pzj6","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:05.916664-08:00","updated_at":"2025-12-07T19:57:08.239624-08:00","closed_at":"2025-12-07T19:57:08.239624-08:00"}
719
748
  {"id":"opencode-swarm-plugin-q05b","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:28.495416-08:00","updated_at":"2025-12-08T08:14:30.963712-08:00","closed_at":"2025-12-08T08:14:30.963712-08:00"}
720
749
  {"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"}
@@ -745,6 +774,7 @@
745
774
  {"id":"opencode-swarm-plugin-r98c","title":"Update test bead","description":"Blocked on dependency","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T08:14:29.141593-08:00","updated_at":"2025-12-08T08:14:31.283727-08:00","closed_at":"2025-12-08T08:14:31.283727-08:00"}
746
775
  {"id":"opencode-swarm-plugin-rcin","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T07:49:10.311118-08:00","updated_at":"2025-12-08T07:49:12.327386-08:00","closed_at":"2025-12-08T07:49:12.327386-08:00"}
747
776
  {"id":"opencode-swarm-plugin-rfb","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:18.514284-08:00","updated_at":"2025-12-07T19:39:20.550661-08:00","closed_at":"2025-12-07T19:39:20.550661-08:00"}
777
+ {"id":"opencode-swarm-plugin-rnvw","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.128747-08:00","updated_at":"2025-12-08T09:09:33.864055-08:00","closed_at":"2025-12-08T09:09:33.864055-08:00"}
748
778
  {"id":"opencode-swarm-plugin-rr3d","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T08:23:18.274457-08:00","updated_at":"2025-12-08T08:23:20.208121-08:00","closed_at":"2025-12-08T08:23:20.208121-08:00"}
749
779
  {"id":"opencode-swarm-plugin-rrih","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:41:11.977841-08:00","updated_at":"2025-12-07T19:41:13.848868-08:00","closed_at":"2025-12-07T19:41:13.848868-08:00"}
750
780
  {"id":"opencode-swarm-plugin-rrih.1","title":"Edit src/a.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:12.015561-08:00","updated_at":"2025-12-07T19:41:13.874074-08:00","closed_at":"2025-12-07T19:41:13.874074-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-rrih.1","depends_on_id":"opencode-swarm-plugin-rrih","type":"parent-child","created_at":"2025-12-07T19:41:12.015905-08:00","created_by":"daemon"}]}
@@ -769,6 +799,9 @@
769
799
  {"id":"opencode-swarm-plugin-sfs","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:34.365861-08:00","updated_at":"2025-12-07T19:37:36.31803-08:00","closed_at":"2025-12-07T19:37:36.31803-08:00"}
770
800
  {"id":"opencode-swarm-plugin-sfzw","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T08:21:26.954077-08:00","updated_at":"2025-12-08T08:21:29.776605-08:00","closed_at":"2025-12-08T08:21:29.776605-08:00"}
771
801
  {"id":"opencode-swarm-plugin-sgso","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:16.823698-08:00","updated_at":"2025-12-08T08:22:19.267297-08:00","closed_at":"2025-12-08T08:22:19.267297-08:00"}
802
+ {"id":"opencode-swarm-plugin-shmi","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T09:09:32.700868-08:00","updated_at":"2025-12-08T09:09:32.892363-08:00","closed_at":"2025-12-08T09:09:32.892363-08:00"}
803
+ {"id":"opencode-swarm-plugin-shmi.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.732667-08:00","updated_at":"2025-12-08T09:09:32.8181-08:00","closed_at":"2025-12-08T09:09:32.8181-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-shmi.1","depends_on_id":"opencode-swarm-plugin-shmi","type":"parent-child","created_at":"2025-12-08T09:09:32.733006-08:00","created_by":"daemon"}]}
804
+ {"id":"opencode-swarm-plugin-shmi.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.766428-08:00","updated_at":"2025-12-08T09:09:32.867989-08:00","closed_at":"2025-12-08T09:09:32.867989-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-shmi.2","depends_on_id":"opencode-swarm-plugin-shmi","type":"parent-child","created_at":"2025-12-08T09:09:32.768721-08:00","created_by":"daemon"}]}
772
805
  {"id":"opencode-swarm-plugin-slxb","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:56:56.672463-08:00","updated_at":"2025-12-08T08:56:58.554736-08:00","closed_at":"2025-12-08T08:56:58.554736-08:00"}
773
806
  {"id":"opencode-swarm-plugin-slxb.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T08:56:56.703332-08:00","updated_at":"2025-12-08T08:56:58.578023-08:00","closed_at":"2025-12-08T08:56:58.578023-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-slxb.1","depends_on_id":"opencode-swarm-plugin-slxb","type":"parent-child","created_at":"2025-12-08T08:56:56.703615-08:00","created_by":"daemon"}]}
774
807
  {"id":"opencode-swarm-plugin-snho","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:49.296253-08:00","updated_at":"2025-12-08T07:46:51.819855-08:00","closed_at":"2025-12-08T07:46:51.819855-08:00"}
@@ -813,6 +846,11 @@
813
846
  {"id":"opencode-swarm-plugin-txep","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:11:40.264723-08:00","updated_at":"2025-12-08T08:11:42.28708-08:00","closed_at":"2025-12-08T08:11:42.28708-08:00"}
814
847
  {"id":"opencode-swarm-plugin-txep.1","title":"Edit src/a.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:40.297487-08:00","updated_at":"2025-12-08T08:11:42.312604-08:00","closed_at":"2025-12-08T08:11:42.312604-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-txep.1","depends_on_id":"opencode-swarm-plugin-txep","type":"parent-child","created_at":"2025-12-08T08:11:40.297798-08:00","created_by":"daemon"}]}
815
848
  {"id":"opencode-swarm-plugin-txep.2","title":"Edit src/b.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:40.329538-08:00","updated_at":"2025-12-08T08:11:42.337696-08:00","closed_at":"2025-12-08T08:11:42.337696-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-txep.2","depends_on_id":"opencode-swarm-plugin-txep","type":"parent-child","created_at":"2025-12-08T08:11:40.329857-08:00","created_by":"daemon"}]}
849
+ {"id":"opencode-swarm-plugin-u33l","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T09:09:31.971493-08:00","updated_at":"2025-12-08T09:09:33.730575-08:00","closed_at":"2025-12-08T09:09:33.730575-08:00"}
850
+ {"id":"opencode-swarm-plugin-u33l.1","title":"First","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.002048-08:00","updated_at":"2025-12-08T09:09:33.755227-08:00","closed_at":"2025-12-08T09:09:33.755227-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-u33l.1","depends_on_id":"opencode-swarm-plugin-u33l","type":"parent-child","created_at":"2025-12-08T09:09:32.002347-08:00","created_by":"daemon"}]}
851
+ {"id":"opencode-swarm-plugin-u33l.2","title":"Second","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.034741-08:00","updated_at":"2025-12-08T09:09:33.780515-08:00","closed_at":"2025-12-08T09:09:33.780515-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-u33l.2","depends_on_id":"opencode-swarm-plugin-u33l","type":"parent-child","created_at":"2025-12-08T09:09:32.035068-08:00","created_by":"daemon"}]}
852
+ {"id":"opencode-swarm-plugin-u33l.3","title":"Third","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.066939-08:00","updated_at":"2025-12-08T09:09:33.805193-08:00","closed_at":"2025-12-08T09:09:33.805193-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-u33l.3","depends_on_id":"opencode-swarm-plugin-u33l","type":"parent-child","created_at":"2025-12-08T09:09:32.067253-08:00","created_by":"daemon"}]}
853
+ {"id":"opencode-swarm-plugin-u33l.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:32.099315-08:00","updated_at":"2025-12-08T09:09:33.83474-08:00","closed_at":"2025-12-08T09:09:33.83474-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-u33l.4","depends_on_id":"opencode-swarm-plugin-u33l","type":"parent-child","created_at":"2025-12-08T09:09:32.099617-08:00","created_by":"daemon"}]}
816
854
  {"id":"opencode-swarm-plugin-u4cv","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:05.799579-08:00","updated_at":"2025-12-07T19:57:08.192357-08:00","closed_at":"2025-12-07T19:57:08.192357-08:00"}
817
855
  {"id":"opencode-swarm-plugin-u5lz","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.831249-08:00","updated_at":"2025-12-08T07:49:12.197825-08:00","closed_at":"2025-12-08T07:49:12.197825-08:00"}
818
856
  {"id":"opencode-swarm-plugin-u82u","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:10.790425-08:00","updated_at":"2025-12-07T19:41:13.346845-08:00","closed_at":"2025-12-07T19:41:13.346845-08:00"}
@@ -848,9 +886,12 @@
848
886
  {"id":"opencode-swarm-plugin-v4g4.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:30.618692-08:00","updated_at":"2025-12-08T08:14:30.698262-08:00","closed_at":"2025-12-08T08:14:30.698262-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-v4g4.1","depends_on_id":"opencode-swarm-plugin-v4g4","type":"parent-child","created_at":"2025-12-08T08:14:30.618992-08:00","created_by":"daemon"}]}
849
887
  {"id":"opencode-swarm-plugin-v4g4.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:30.650693-08:00","updated_at":"2025-12-08T08:14:30.745857-08:00","closed_at":"2025-12-08T08:14:30.745857-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-v4g4.2","depends_on_id":"opencode-swarm-plugin-v4g4","type":"parent-child","created_at":"2025-12-08T08:14:30.65101-08:00","created_by":"daemon"}]}
850
888
  {"id":"opencode-swarm-plugin-v4wk","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:09.273976-08:00","updated_at":"2025-12-08T07:49:11.911446-08:00","closed_at":"2025-12-08T07:49:11.911446-08:00"}
889
+ {"id":"opencode-swarm-plugin-v6v9","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T09:09:30.764976-08:00","updated_at":"2025-12-08T09:09:33.160752-08:00","closed_at":"2025-12-08T09:09:33.160752-08:00"}
851
890
  {"id":"opencode-swarm-plugin-v72","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:09.816102-08:00","updated_at":"2025-12-07T19:39:11.902421-08:00","closed_at":"2025-12-07T19:39:11.902421-08:00"}
852
891
  {"id":"opencode-swarm-plugin-v8oa","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:50.951289-08:00","updated_at":"2025-12-08T07:46:51.033444-08:00","closed_at":"2025-12-08T07:46:51.033444-08:00"}
853
892
  {"id":"opencode-swarm-plugin-v8rf","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-07T19:39:28.865894-08:00","updated_at":"2025-12-07T19:39:31.084269-08:00","closed_at":"2025-12-07T19:39:31.084269-08:00"}
893
+ {"id":"opencode-swarm-plugin-vbhx","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T09:09:31.902467-08:00","updated_at":"2025-12-08T09:09:33.682198-08:00","closed_at":"2025-12-08T09:09:33.682198-08:00"}
894
+ {"id":"opencode-swarm-plugin-vbhx.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T09:09:31.939635-08:00","updated_at":"2025-12-08T09:09:33.706872-08:00","closed_at":"2025-12-08T09:09:33.706872-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-vbhx.1","depends_on_id":"opencode-swarm-plugin-vbhx","type":"parent-child","created_at":"2025-12-08T09:09:31.939954-08:00","created_by":"daemon"}]}
854
895
  {"id":"opencode-swarm-plugin-vc5","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:34:53.895729-08:00","updated_at":"2025-12-07T19:34:55.311453-08:00","closed_at":"2025-12-07T19:34:55.311453-08:00"}
855
896
  {"id":"opencode-swarm-plugin-vd03","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:42.740823-08:00","updated_at":"2025-12-07T19:56:44.871695-08:00","closed_at":"2025-12-07T19:56:44.871695-08:00"}
856
897
  {"id":"opencode-swarm-plugin-vh4o","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:21:29.103901-08:00","updated_at":"2025-12-08T08:21:30.778313-08:00","closed_at":"2025-12-08T08:21:30.778313-08:00"}
@@ -900,6 +941,7 @@
900
941
  {"id":"opencode-swarm-plugin-wwqt","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:34.579904-08:00","updated_at":"2025-12-08T08:05:36.125724-08:00","closed_at":"2025-12-08T08:05:36.125724-08:00"}
901
942
  {"id":"opencode-swarm-plugin-wytl","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:32.855796-08:00","updated_at":"2025-12-08T08:05:35.266626-08:00","closed_at":"2025-12-08T08:05:35.266626-08:00"}
902
943
  {"id":"opencode-swarm-plugin-wzbh","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:45.286939-08:00","updated_at":"2025-12-08T07:53:46.997846-08:00","closed_at":"2025-12-08T07:53:46.997846-08:00"}
944
+ {"id":"opencode-swarm-plugin-wzk5","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-08T09:09:30.46577-08:00","updated_at":"2025-12-08T09:09:33.012614-08:00","closed_at":"2025-12-08T09:09:33.012614-08:00"}
903
945
  {"id":"opencode-swarm-plugin-x36x","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:48.799533-08:00","updated_at":"2025-12-08T07:46:51.571401-08:00","closed_at":"2025-12-08T07:46:51.571401-08:00"}
904
946
  {"id":"opencode-swarm-plugin-x6s7","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:33.428719-08:00","updated_at":"2025-12-08T08:05:35.590764-08:00","closed_at":"2025-12-08T08:05:35.590764-08:00"}
905
947
  {"id":"opencode-swarm-plugin-x7ik","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:42.323817-08:00","updated_at":"2025-12-07T19:56:44.625732-08:00","closed_at":"2025-12-07T19:56:44.625732-08:00"}
@@ -948,6 +990,7 @@
948
990
  {"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"}
949
991
  {"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"}
950
992
  {"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"}
993
+ {"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"}
951
994
  {"id":"opencode-swarm-plugin-z4bc","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:09.542895-08:00","updated_at":"2025-12-08T08:25:12.189207-08:00","closed_at":"2025-12-08T08:25:12.189207-08:00"}
952
995
  {"id":"opencode-swarm-plugin-z7bu","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:28.356112-08:00","updated_at":"2025-12-08T08:14:30.865474-08:00","closed_at":"2025-12-08T08:14:30.865474-08:00"}
953
996
  {"id":"opencode-swarm-plugin-z8td","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:17.11505-08:00","updated_at":"2025-12-08T08:22:19.411331-08:00","closed_at":"2025-12-08T08:22:19.411331-08:00"}
@@ -961,6 +1004,7 @@
961
1004
  {"id":"opencode-swarm-plugin-znu","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:33.942962-08:00","updated_at":"2025-12-07T19:37:36.098353-08:00","closed_at":"2025-12-07T19:37:36.098353-08:00"}
962
1005
  {"id":"opencode-swarm-plugin-zp9","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:08.055038-08:00","updated_at":"2025-12-07T19:36:08.128158-08:00","closed_at":"2025-12-07T19:36:08.128158-08:00"}
963
1006
  {"id":"opencode-swarm-plugin-zw3b","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T07:49:09.23617-08:00","updated_at":"2025-12-08T07:49:11.88343-08:00","closed_at":"2025-12-08T07:49:11.88343-08:00"}
1007
+ {"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"}
964
1008
  {"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"}
965
1009
  {"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"}]}
966
1010
  {"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
@@ -138,7 +138,7 @@ Client-side, per-agent rate limits prevent abuse and ensure fair resource usage
138
138
  | `swarm_complete` | Mark subtask complete with UBS bug scan, release reservations |
139
139
  | `swarm_record_outcome` | Record outcome for implicit feedback (duration, errors, retries) |
140
140
  | `swarm_subtask_prompt` | Generate prompt for spawned subtask agent (V1 - includes coordination) |
141
- | `swarm_spawn_subtask` | Generate V2 prompt for coordinator use (simplified, no coordination) |
141
+ | `swarm_spawn_subtask` | Generate V2 prompt with Agent Mail/beads instructions for subagents |
142
142
  | `swarm_complete_subtask` | Handle subtask completion: close bead, create issue beads |
143
143
  | `swarm_evaluation_prompt` | Generate self-evaluation prompt |
144
144
 
@@ -429,24 +429,43 @@ The plugin enforces these limits regardless of input:
429
429
  - Thread summaries use LLM mode for concise output
430
430
  - File reservations auto-track for cleanup
431
431
 
432
- ## Integration with /swarm Command
432
+ ## Custom Commands
433
433
 
434
- This plugin provides the primitives used by OpenCode's `/swarm` command:
434
+ This plugin provides tools that work with OpenCode's [custom commands](https://opencode.ai/docs/commands). Create a `/swarm` command to orchestrate multi-agent work.
435
+
436
+ ### Setup /swarm Command
437
+
438
+ Copy the example command to your OpenCode config:
439
+
440
+ ```bash
441
+ cp examples/commands/swarm.md ~/.config/opencode/command/
442
+ ```
443
+
444
+ ### Usage
435
445
 
436
446
  ```
437
447
  /swarm "Add user authentication with OAuth providers"
438
448
  ```
439
449
 
440
- The `/swarm` command uses this plugin to:
450
+ ### How It Works
451
+
452
+ 1. **Decompose** - `swarm_decompose` breaks task into subtasks with file assignments
453
+ 2. **Create beads** - `beads_create_epic` creates epic + subtasks atomically
454
+ 3. **Spawn agents** - `swarm_spawn_subtask` generates prompts WITH Agent Mail/beads instructions
455
+ 4. **Parallel work** - Subagents use Agent Mail to communicate, beads to track progress
456
+ 5. **Coordination** - Agents report progress, ask questions, announce blockers via Agent Mail
457
+ 6. **Completion** - Agents use `swarm_complete` when done
458
+ 7. **Cleanup** - `beads_sync` pushes to git
459
+
460
+ ### Subagent Capabilities
461
+
462
+ Spawned subagents have **full access** to all plugin tools:
463
+
464
+ - **Agent Mail** - `agentmail_send`, `agentmail_inbox`, `agentmail_reserve`, etc.
465
+ - **Beads** - `beads_update`, `beads_create`, `swarm_complete`
466
+ - All standard OpenCode tools
441
467
 
442
- 1. **Decompose** - Break task into subtasks using `TaskDecompositionSchema`
443
- 2. **Create beads** - Use `beads_create_epic` for atomic issue creation
444
- 3. **Initialize agents** - Each agent calls `agentmail_init`
445
- 4. **Reserve files** - Prevent conflicts with `agentmail_reserve`
446
- 5. **Coordinate** - Agents communicate via `agentmail_send`
447
- 6. **Track status** - Use `SwarmStatusSchema` for progress
448
- 7. **Evaluate** - Validate work with `EvaluationSchema`
449
- 8. **Cleanup** - Release reservations and sync beads
468
+ The prompts tell agents to actively communicate and coordinate.
450
469
 
451
470
  ## Error Handling
452
471
 
package/dist/index.js CHANGED
@@ -23701,61 +23701,57 @@ Before writing code:
23701
23701
  4. **Communicate your plan** via Agent Mail if non-trivial
23702
23702
 
23703
23703
  Begin work on your subtask now.`;
23704
- var SUBTASK_PROMPT_V2 = `You are working on a subtask as part of a larger project.
23704
+ var SUBTASK_PROMPT_V2 = `You are a swarm agent working on: **{subtask_title}**
23705
23705
 
23706
- ## Your Task
23707
- **Title**: {subtask_title}
23706
+ ## Identity
23707
+ - **Bead ID**: {bead_id}
23708
+ - **Epic ID**: {epic_id}
23708
23709
 
23710
+ ## Task
23709
23711
  {subtask_description}
23710
23712
 
23711
- ## Files to Modify
23713
+ ## Files (exclusive reservation)
23712
23714
  {file_list}
23713
23715
 
23714
- **IMPORTANT**: Only modify the files listed above. Do not create new files unless absolutely necessary for the task.
23716
+ Only modify these files. Need others? Message the coordinator.
23715
23717
 
23716
23718
  ## Context
23717
23719
  {shared_context}
23718
23720
 
23719
- ## Instructions
23721
+ ## MANDATORY: Use These Tools
23720
23722
 
23721
- 1. **Read first** - Understand the current state of the files before making changes
23722
- 2. **Plan your approach** - Think through what changes are needed
23723
- 3. **Make the changes** - Implement the required functionality
23724
- 4. **Verify** - Check that your changes work (run tests/typecheck if applicable)
23723
+ ### Agent Mail - communicate with the swarm
23724
+ \`\`\`typescript
23725
+ // Report progress, ask questions, announce blockers
23726
+ agentmail_send({
23727
+ to: ["coordinator"],
23728
+ subject: "Progress update",
23729
+ body: "What you did or need",
23730
+ thread_id: "{epic_id}"
23731
+ })
23732
+ \`\`\`
23725
23733
 
23726
- ## When Complete
23734
+ ### Beads - track your work
23735
+ - **Blocked?** \`beads_update({ id: "{bead_id}", status: "blocked" })\`
23736
+ - **Found bug?** \`beads_create({ title: "Bug description", type: "bug" })\`
23737
+ - **Done?** \`swarm_complete({ bead_id: "{bead_id}", summary: "What you did", files_touched: [...] })\`
23727
23738
 
23728
- After finishing your work, provide a summary in this format:
23739
+ ## Workflow
23729
23740
 
23730
- \`\`\`json
23731
- {
23732
- "success": true,
23733
- "summary": "Brief description of what you accomplished",
23734
- "files_modified": ["list", "of", "files", "you", "changed"],
23735
- "files_created": ["any", "new", "files"],
23736
- "issues_found": ["any problems or concerns discovered"],
23737
- "tests_passed": true,
23738
- "notes": "Any additional context for the coordinator"
23739
- }
23740
- \`\`\`
23741
+ 1. **Read** the files first
23742
+ 2. **Plan** your approach (message coordinator if complex)
23743
+ 3. **Implement** the changes
23744
+ 4. **Verify** (typecheck, tests)
23745
+ 5. **Report** progress via Agent Mail
23746
+ 6. **Complete** with swarm_complete when done
23741
23747
 
23742
- If you encounter a blocker you cannot resolve, return:
23748
+ **Never work silently.** Communicate progress and blockers immediately.
23743
23749
 
23744
- \`\`\`json
23745
- {
23746
- "success": false,
23747
- "summary": "What you attempted",
23748
- "blocker": "Description of what's blocking you",
23749
- "files_modified": [],
23750
- "suggestions": ["possible", "solutions"]
23751
- }
23752
- \`\`\`
23753
-
23754
- Begin work now.`;
23750
+ Begin now.`;
23755
23751
  function formatSubtaskPromptV2(params) {
23756
23752
  const fileList = params.files.length > 0 ? params.files.map((f) => `- \`${f}\``).join(`
23757
- `) : "(no specific files assigned - use your judgment)";
23758
- return SUBTASK_PROMPT_V2.replace("{subtask_title}", params.subtask_title).replace("{subtask_description}", params.subtask_description || "(see title)").replace("{file_list}", fileList).replace("{shared_context}", params.shared_context || "(none provided)");
23753
+ `) : "(no specific files - use judgment)";
23754
+ return SUBTASK_PROMPT_V2.replace(/{bead_id}/g, params.bead_id).replace(/{epic_id}/g, params.epic_id).replace("{subtask_title}", params.subtask_title).replace("{subtask_description}", params.subtask_description || "(see title)").replace("{file_list}", fileList).replace("{shared_context}", params.shared_context || "(none)");
23759
23755
  }
23760
23756
  var EVALUATION_PROMPT = `Evaluate the work completed for this subtask.
23761
23757
 
@@ -24357,9 +24353,10 @@ var swarm_subtask_prompt = tool({
24357
24353
  }
24358
24354
  });
24359
24355
  var swarm_spawn_subtask = tool({
24360
- description: "Prepare a subtask for spawning with Task tool. Returns prompt and metadata for coordinator to use.",
24356
+ description: "Prepare a subtask for spawning. Returns prompt with Agent Mail/beads instructions.",
24361
24357
  args: {
24362
24358
  bead_id: tool.schema.string().describe("Subtask bead ID"),
24359
+ epic_id: tool.schema.string().describe("Parent epic bead ID"),
24363
24360
  subtask_title: tool.schema.string().describe("Subtask title"),
24364
24361
  subtask_description: tool.schema.string().optional().describe("Detailed subtask instructions"),
24365
24362
  files: tool.schema.array(tool.schema.string()).describe("Files assigned to this subtask"),
@@ -24367,6 +24364,8 @@ var swarm_spawn_subtask = tool({
24367
24364
  },
24368
24365
  async execute(args) {
24369
24366
  const prompt = formatSubtaskPromptV2({
24367
+ bead_id: args.bead_id,
24368
+ epic_id: args.epic_id,
24370
24369
  subtask_title: args.subtask_title,
24371
24370
  subtask_description: args.subtask_description || "",
24372
24371
  files: args.files,
@@ -24375,6 +24374,7 @@ var swarm_spawn_subtask = tool({
24375
24374
  return JSON.stringify({
24376
24375
  prompt,
24377
24376
  bead_id: args.bead_id,
24377
+ epic_id: args.epic_id,
24378
24378
  files: args.files
24379
24379
  }, null, 2);
24380
24380
  }
package/dist/plugin.js CHANGED
@@ -23660,61 +23660,57 @@ Before writing code:
23660
23660
  4. **Communicate your plan** via Agent Mail if non-trivial
23661
23661
 
23662
23662
  Begin work on your subtask now.`;
23663
- var SUBTASK_PROMPT_V2 = `You are working on a subtask as part of a larger project.
23663
+ var SUBTASK_PROMPT_V2 = `You are a swarm agent working on: **{subtask_title}**
23664
23664
 
23665
- ## Your Task
23666
- **Title**: {subtask_title}
23665
+ ## Identity
23666
+ - **Bead ID**: {bead_id}
23667
+ - **Epic ID**: {epic_id}
23667
23668
 
23669
+ ## Task
23668
23670
  {subtask_description}
23669
23671
 
23670
- ## Files to Modify
23672
+ ## Files (exclusive reservation)
23671
23673
  {file_list}
23672
23674
 
23673
- **IMPORTANT**: Only modify the files listed above. Do not create new files unless absolutely necessary for the task.
23675
+ Only modify these files. Need others? Message the coordinator.
23674
23676
 
23675
23677
  ## Context
23676
23678
  {shared_context}
23677
23679
 
23678
- ## Instructions
23680
+ ## MANDATORY: Use These Tools
23679
23681
 
23680
- 1. **Read first** - Understand the current state of the files before making changes
23681
- 2. **Plan your approach** - Think through what changes are needed
23682
- 3. **Make the changes** - Implement the required functionality
23683
- 4. **Verify** - Check that your changes work (run tests/typecheck if applicable)
23682
+ ### Agent Mail - communicate with the swarm
23683
+ \`\`\`typescript
23684
+ // Report progress, ask questions, announce blockers
23685
+ agentmail_send({
23686
+ to: ["coordinator"],
23687
+ subject: "Progress update",
23688
+ body: "What you did or need",
23689
+ thread_id: "{epic_id}"
23690
+ })
23691
+ \`\`\`
23684
23692
 
23685
- ## When Complete
23693
+ ### Beads - track your work
23694
+ - **Blocked?** \`beads_update({ id: "{bead_id}", status: "blocked" })\`
23695
+ - **Found bug?** \`beads_create({ title: "Bug description", type: "bug" })\`
23696
+ - **Done?** \`swarm_complete({ bead_id: "{bead_id}", summary: "What you did", files_touched: [...] })\`
23686
23697
 
23687
- After finishing your work, provide a summary in this format:
23698
+ ## Workflow
23688
23699
 
23689
- \`\`\`json
23690
- {
23691
- "success": true,
23692
- "summary": "Brief description of what you accomplished",
23693
- "files_modified": ["list", "of", "files", "you", "changed"],
23694
- "files_created": ["any", "new", "files"],
23695
- "issues_found": ["any problems or concerns discovered"],
23696
- "tests_passed": true,
23697
- "notes": "Any additional context for the coordinator"
23698
- }
23699
- \`\`\`
23700
+ 1. **Read** the files first
23701
+ 2. **Plan** your approach (message coordinator if complex)
23702
+ 3. **Implement** the changes
23703
+ 4. **Verify** (typecheck, tests)
23704
+ 5. **Report** progress via Agent Mail
23705
+ 6. **Complete** with swarm_complete when done
23700
23706
 
23701
- If you encounter a blocker you cannot resolve, return:
23707
+ **Never work silently.** Communicate progress and blockers immediately.
23702
23708
 
23703
- \`\`\`json
23704
- {
23705
- "success": false,
23706
- "summary": "What you attempted",
23707
- "blocker": "Description of what's blocking you",
23708
- "files_modified": [],
23709
- "suggestions": ["possible", "solutions"]
23710
- }
23711
- \`\`\`
23712
-
23713
- Begin work now.`;
23709
+ Begin now.`;
23714
23710
  function formatSubtaskPromptV2(params) {
23715
23711
  const fileList = params.files.length > 0 ? params.files.map((f) => `- \`${f}\``).join(`
23716
- `) : "(no specific files assigned - use your judgment)";
23717
- return SUBTASK_PROMPT_V2.replace("{subtask_title}", params.subtask_title).replace("{subtask_description}", params.subtask_description || "(see title)").replace("{file_list}", fileList).replace("{shared_context}", params.shared_context || "(none provided)");
23712
+ `) : "(no specific files - use judgment)";
23713
+ return SUBTASK_PROMPT_V2.replace(/{bead_id}/g, params.bead_id).replace(/{epic_id}/g, params.epic_id).replace("{subtask_title}", params.subtask_title).replace("{subtask_description}", params.subtask_description || "(see title)").replace("{file_list}", fileList).replace("{shared_context}", params.shared_context || "(none)");
23718
23714
  }
23719
23715
  var EVALUATION_PROMPT = `Evaluate the work completed for this subtask.
23720
23716
 
@@ -24308,9 +24304,10 @@ var swarm_subtask_prompt = tool({
24308
24304
  }
24309
24305
  });
24310
24306
  var swarm_spawn_subtask = tool({
24311
- description: "Prepare a subtask for spawning with Task tool. Returns prompt and metadata for coordinator to use.",
24307
+ description: "Prepare a subtask for spawning. Returns prompt with Agent Mail/beads instructions.",
24312
24308
  args: {
24313
24309
  bead_id: tool.schema.string().describe("Subtask bead ID"),
24310
+ epic_id: tool.schema.string().describe("Parent epic bead ID"),
24314
24311
  subtask_title: tool.schema.string().describe("Subtask title"),
24315
24312
  subtask_description: tool.schema.string().optional().describe("Detailed subtask instructions"),
24316
24313
  files: tool.schema.array(tool.schema.string()).describe("Files assigned to this subtask"),
@@ -24318,6 +24315,8 @@ var swarm_spawn_subtask = tool({
24318
24315
  },
24319
24316
  async execute(args) {
24320
24317
  const prompt = formatSubtaskPromptV2({
24318
+ bead_id: args.bead_id,
24319
+ epic_id: args.epic_id,
24321
24320
  subtask_title: args.subtask_title,
24322
24321
  subtask_description: args.subtask_description || "",
24323
24322
  files: args.files,
@@ -24326,6 +24325,7 @@ var swarm_spawn_subtask = tool({
24326
24325
  return JSON.stringify({
24327
24326
  prompt,
24328
24327
  bead_id: args.bead_id,
24328
+ epic_id: args.epic_id,
24329
24329
  files: args.files
24330
24330
  }, null, 2);
24331
24331
  }
@@ -0,0 +1,50 @@
1
+ ---
2
+ description: Decompose task into parallel subtasks and coordinate agents
3
+ ---
4
+
5
+ You are a swarm coordinator. Break down the following task into parallel subtasks.
6
+
7
+ ## Task
8
+
9
+ $ARGUMENTS
10
+
11
+ ## Instructions
12
+
13
+ 1. Use `swarm_decompose` to generate a decomposition prompt for the task
14
+ 2. Analyze the task and create a decomposition with:
15
+ - Epic title and description
16
+ - 2-5 parallelizable subtasks with file assignments
17
+ - No file conflicts between subtasks
18
+ 3. Create the epic using `beads_create_epic`
19
+ 4. For each subtask:
20
+ - Mark bead in_progress with `beads_start`
21
+ - Use `swarm_spawn_subtask` to generate a prompt (includes Agent Mail/beads instructions)
22
+ - Spawn a Task agent with that prompt
23
+ 5. Monitor progress via Agent Mail inbox
24
+ 6. After all subtasks complete:
25
+ - Close the epic with `beads_close`
26
+ - Sync to git with `beads_sync`
27
+
28
+ ## Subagent Capabilities
29
+
30
+ Subagents have FULL access to:
31
+
32
+ - **Agent Mail** - `agentmail_send`, `agentmail_inbox`, etc.
33
+ - **Beads** - `beads_update`, `beads_create`, `swarm_complete`
34
+ - All standard tools (Read, Write, Edit, Bash, etc.)
35
+
36
+ The prompts generated by `swarm_spawn_subtask` tell agents to:
37
+
38
+ - Report progress via Agent Mail
39
+ - Update bead status if blocked
40
+ - Create new beads for discovered issues
41
+ - Use `swarm_complete` when done
42
+
43
+ ## Coordination
44
+
45
+ - Use the epic ID as the `thread_id` for all Agent Mail messages
46
+ - Agents communicate with each other and with you (coordinator)
47
+ - Check `agentmail_inbox` periodically for updates
48
+ - Use `agentmail_summarize_thread` to get thread overview
49
+
50
+ Begin decomposition now.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-swarm-plugin",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
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",
@@ -959,10 +959,12 @@ describe("Graceful Degradation", () => {
959
959
  // Coordinator-Centric Swarm Tools (V2)
960
960
  // ============================================================================
961
961
 
962
- describe("Coordinator-Centric Swarm Tools", () => {
962
+ describe("Swarm Prompt V2 (with Agent Mail/Beads)", () => {
963
963
  describe("formatSubtaskPromptV2", () => {
964
964
  it("generates correct prompt with all fields", () => {
965
965
  const result = formatSubtaskPromptV2({
966
+ bead_id: "bd-123.1",
967
+ epic_id: "bd-123",
966
968
  subtask_title: "Add OAuth provider",
967
969
  subtask_description: "Configure Google OAuth in the auth config",
968
970
  files: ["src/auth/google.ts", "src/auth/config.ts"],
@@ -982,16 +984,15 @@ describe("Coordinator-Centric Swarm Tools", () => {
982
984
  // Check shared context is included
983
985
  expect(result).toContain("We are using NextAuth.js v5");
984
986
 
985
- // Check expected sections exist
986
- expect(result).toContain("## Your Task");
987
- expect(result).toContain("## Files to Modify");
988
- expect(result).toContain("## Context");
989
- expect(result).toContain("## Instructions");
990
- expect(result).toContain("## When Complete");
987
+ // Check bead/epic IDs are substituted
988
+ expect(result).toContain("bd-123.1");
989
+ expect(result).toContain("bd-123");
991
990
  });
992
991
 
993
992
  it("handles missing optional fields", () => {
994
993
  const result = formatSubtaskPromptV2({
994
+ bead_id: "bd-456.1",
995
+ epic_id: "bd-456",
995
996
  subtask_title: "Simple task",
996
997
  subtask_description: "",
997
998
  files: [],
@@ -1004,16 +1005,16 @@ describe("Coordinator-Centric Swarm Tools", () => {
1004
1005
  expect(result).toContain("(see title)");
1005
1006
 
1006
1007
  // Check fallback for empty files
1007
- expect(result).toContain(
1008
- "(no specific files assigned - use your judgment)",
1009
- );
1008
+ expect(result).toContain("(no specific files - use judgment)");
1010
1009
 
1011
1010
  // Check fallback for missing context
1012
- expect(result).toContain("(none provided)");
1011
+ expect(result).toContain("(none)");
1013
1012
  });
1014
1013
 
1015
1014
  it("handles files with special characters", () => {
1016
1015
  const result = formatSubtaskPromptV2({
1016
+ bead_id: "bd-789.1",
1017
+ epic_id: "bd-789",
1017
1018
  subtask_title: "Handle paths",
1018
1019
  subtask_description: "Test file paths",
1019
1020
  files: [
@@ -1030,51 +1031,39 @@ describe("Coordinator-Centric Swarm Tools", () => {
1030
1031
  describe("SUBTASK_PROMPT_V2", () => {
1031
1032
  it("contains expected sections", () => {
1032
1033
  // Check all main sections are present in the template
1033
- expect(SUBTASK_PROMPT_V2).toContain("## Your Task");
1034
+ expect(SUBTASK_PROMPT_V2).toContain("## Task");
1034
1035
  expect(SUBTASK_PROMPT_V2).toContain("{subtask_title}");
1035
1036
  expect(SUBTASK_PROMPT_V2).toContain("{subtask_description}");
1036
1037
 
1037
- expect(SUBTASK_PROMPT_V2).toContain("## Files to Modify");
1038
+ expect(SUBTASK_PROMPT_V2).toContain("## Files");
1038
1039
  expect(SUBTASK_PROMPT_V2).toContain("{file_list}");
1039
1040
 
1040
1041
  expect(SUBTASK_PROMPT_V2).toContain("## Context");
1041
1042
  expect(SUBTASK_PROMPT_V2).toContain("{shared_context}");
1042
1043
 
1043
- expect(SUBTASK_PROMPT_V2).toContain("## Instructions");
1044
- expect(SUBTASK_PROMPT_V2).toContain("Read first");
1045
- expect(SUBTASK_PROMPT_V2).toContain("Plan your approach");
1046
- expect(SUBTASK_PROMPT_V2).toContain("Make the changes");
1047
- expect(SUBTASK_PROMPT_V2).toContain("Verify");
1048
-
1049
- expect(SUBTASK_PROMPT_V2).toContain("## When Complete");
1050
- expect(SUBTASK_PROMPT_V2).toContain('"success"');
1051
- expect(SUBTASK_PROMPT_V2).toContain('"summary"');
1052
- expect(SUBTASK_PROMPT_V2).toContain('"files_modified"');
1044
+ expect(SUBTASK_PROMPT_V2).toContain("## Workflow");
1053
1045
  });
1054
1046
 
1055
- it("does NOT contain Agent Mail instructions", () => {
1056
- // V2 prompt is for coordinator-centric model where subagents don't use Agent Mail
1057
- expect(SUBTASK_PROMPT_V2).not.toContain("Agent Mail");
1058
- expect(SUBTASK_PROMPT_V2).not.toContain("agentmail_");
1059
- expect(SUBTASK_PROMPT_V2).not.toContain("agent_name");
1060
- expect(SUBTASK_PROMPT_V2).not.toContain("send_message");
1047
+ it("DOES contain Agent Mail instructions", () => {
1048
+ // V2 prompt tells agents to USE Agent Mail
1049
+ expect(SUBTASK_PROMPT_V2).toContain("Agent Mail");
1050
+ expect(SUBTASK_PROMPT_V2).toContain("agentmail_send");
1051
+ expect(SUBTASK_PROMPT_V2).toContain("thread_id");
1061
1052
  });
1062
1053
 
1063
- it("does NOT contain beads instructions", () => {
1064
- // V2 prompt is for coordinator-centric model where subagents don't manage beads
1065
- expect(SUBTASK_PROMPT_V2).not.toContain("bead_id");
1066
- expect(SUBTASK_PROMPT_V2).not.toContain("epic_id");
1067
- expect(SUBTASK_PROMPT_V2).not.toContain("bd update");
1068
- expect(SUBTASK_PROMPT_V2).not.toContain("bd close");
1069
- expect(SUBTASK_PROMPT_V2).not.toContain("swarm_progress");
1070
- expect(SUBTASK_PROMPT_V2).not.toContain("swarm_complete");
1054
+ it("DOES contain beads instructions", () => {
1055
+ // V2 prompt tells agents to USE beads
1056
+ expect(SUBTASK_PROMPT_V2).toContain("{bead_id}");
1057
+ expect(SUBTASK_PROMPT_V2).toContain("{epic_id}");
1058
+ expect(SUBTASK_PROMPT_V2).toContain("beads_update");
1059
+ expect(SUBTASK_PROMPT_V2).toContain("beads_create");
1060
+ expect(SUBTASK_PROMPT_V2).toContain("swarm_complete");
1071
1061
  });
1072
1062
 
1073
- it("expects structured JSON response from subagent", () => {
1074
- // The prompt should instruct agents to return structured JSON
1075
- expect(SUBTASK_PROMPT_V2).toContain("```json");
1076
- expect(SUBTASK_PROMPT_V2).toContain('"success"');
1077
- expect(SUBTASK_PROMPT_V2).toContain('"blocker"');
1063
+ it("instructs agents to communicate", () => {
1064
+ expect(SUBTASK_PROMPT_V2).toContain("Never work silently");
1065
+ expect(SUBTASK_PROMPT_V2).toContain("Report progress");
1066
+ expect(SUBTASK_PROMPT_V2).toContain("coordinator");
1078
1067
  });
1079
1068
  });
1080
1069
  });
package/src/swarm.ts CHANGED
@@ -360,72 +360,65 @@ Before writing code:
360
360
  Begin work on your subtask now.`;
361
361
 
362
362
  /**
363
- * Simplified subtask prompt for Task subagents (V2 - coordinator-centric)
363
+ * Streamlined subtask prompt (V2) - still uses Agent Mail and beads
364
364
  *
365
- * This prompt is designed for agents that DON'T have access to Agent Mail or beads tools.
366
- * The coordinator handles all coordination - subagents just do the work and return results.
367
- *
368
- * Key differences from V1:
369
- * - No Agent Mail instructions (subagents can't use it)
370
- * - No beads instructions (subagents can't use it)
371
- * - Expects structured JSON response for coordinator to process
365
+ * This is a cleaner version of SUBTASK_PROMPT that's easier to parse.
366
+ * Agents MUST use Agent Mail for communication and beads for tracking.
372
367
  */
373
- export const SUBTASK_PROMPT_V2 = `You are working on a subtask as part of a larger project.
368
+ export const SUBTASK_PROMPT_V2 = `You are a swarm agent working on: **{subtask_title}**
374
369
 
375
- ## Your Task
376
- **Title**: {subtask_title}
370
+ ## Identity
371
+ - **Bead ID**: {bead_id}
372
+ - **Epic ID**: {epic_id}
377
373
 
374
+ ## Task
378
375
  {subtask_description}
379
376
 
380
- ## Files to Modify
377
+ ## Files (exclusive reservation)
381
378
  {file_list}
382
379
 
383
- **IMPORTANT**: Only modify the files listed above. Do not create new files unless absolutely necessary for the task.
380
+ Only modify these files. Need others? Message the coordinator.
384
381
 
385
382
  ## Context
386
383
  {shared_context}
387
384
 
388
- ## Instructions
389
-
390
- 1. **Read first** - Understand the current state of the files before making changes
391
- 2. **Plan your approach** - Think through what changes are needed
392
- 3. **Make the changes** - Implement the required functionality
393
- 4. **Verify** - Check that your changes work (run tests/typecheck if applicable)
385
+ ## MANDATORY: Use These Tools
394
386
 
395
- ## When Complete
387
+ ### Agent Mail - communicate with the swarm
388
+ \`\`\`typescript
389
+ // Report progress, ask questions, announce blockers
390
+ agentmail_send({
391
+ to: ["coordinator"],
392
+ subject: "Progress update",
393
+ body: "What you did or need",
394
+ thread_id: "{epic_id}"
395
+ })
396
+ \`\`\`
396
397
 
397
- After finishing your work, provide a summary in this format:
398
+ ### Beads - track your work
399
+ - **Blocked?** \`beads_update({ id: "{bead_id}", status: "blocked" })\`
400
+ - **Found bug?** \`beads_create({ title: "Bug description", type: "bug" })\`
401
+ - **Done?** \`swarm_complete({ bead_id: "{bead_id}", summary: "What you did", files_touched: [...] })\`
398
402
 
399
- \`\`\`json
400
- {
401
- "success": true,
402
- "summary": "Brief description of what you accomplished",
403
- "files_modified": ["list", "of", "files", "you", "changed"],
404
- "files_created": ["any", "new", "files"],
405
- "issues_found": ["any problems or concerns discovered"],
406
- "tests_passed": true,
407
- "notes": "Any additional context for the coordinator"
408
- }
409
- \`\`\`
403
+ ## Workflow
410
404
 
411
- If you encounter a blocker you cannot resolve, return:
405
+ 1. **Read** the files first
406
+ 2. **Plan** your approach (message coordinator if complex)
407
+ 3. **Implement** the changes
408
+ 4. **Verify** (typecheck, tests)
409
+ 5. **Report** progress via Agent Mail
410
+ 6. **Complete** with swarm_complete when done
412
411
 
413
- \`\`\`json
414
- {
415
- "success": false,
416
- "summary": "What you attempted",
417
- "blocker": "Description of what's blocking you",
418
- "files_modified": [],
419
- "suggestions": ["possible", "solutions"]
420
- }
421
- \`\`\`
412
+ **Never work silently.** Communicate progress and blockers immediately.
422
413
 
423
- Begin work now.`;
414
+ Begin now.`;
424
415
 
425
416
  /**
426
417
  * Format the V2 subtask prompt for a specific agent
427
418
  */
428
419
  export function formatSubtaskPromptV2(params: {
420
+ bead_id: string;
421
+ epic_id: string;
429
422
  subtask_title: string;
430
423
  subtask_description: string;
431
424
  files: string[];
@@ -434,15 +427,17 @@ export function formatSubtaskPromptV2(params: {
434
427
  const fileList =
435
428
  params.files.length > 0
436
429
  ? params.files.map((f) => `- \`${f}\``).join("\n")
437
- : "(no specific files assigned - use your judgment)";
430
+ : "(no specific files - use judgment)";
438
431
 
439
- return SUBTASK_PROMPT_V2.replace("{subtask_title}", params.subtask_title)
432
+ return SUBTASK_PROMPT_V2.replace(/{bead_id}/g, params.bead_id)
433
+ .replace(/{epic_id}/g, params.epic_id)
434
+ .replace("{subtask_title}", params.subtask_title)
440
435
  .replace(
441
436
  "{subtask_description}",
442
437
  params.subtask_description || "(see title)",
443
438
  )
444
439
  .replace("{file_list}", fileList)
445
- .replace("{shared_context}", params.shared_context || "(none provided)");
440
+ .replace("{shared_context}", params.shared_context || "(none)");
446
441
  }
447
442
 
448
443
  /**
@@ -1507,15 +1502,15 @@ export const swarm_subtask_prompt = tool({
1507
1502
  /**
1508
1503
  * Prepare a subtask for spawning with Task tool (V2 prompt)
1509
1504
  *
1510
- * This is a simplified tool for coordinators that generates a prompt using
1511
- * the V2 template (no Agent Mail/beads instructions - coordinator handles coordination).
1505
+ * Generates a streamlined prompt that tells agents to USE Agent Mail and beads.
1512
1506
  * Returns JSON that can be directly used with Task tool.
1513
1507
  */
1514
1508
  export const swarm_spawn_subtask = tool({
1515
1509
  description:
1516
- "Prepare a subtask for spawning with Task tool. Returns prompt and metadata for coordinator to use.",
1510
+ "Prepare a subtask for spawning. Returns prompt with Agent Mail/beads instructions.",
1517
1511
  args: {
1518
1512
  bead_id: tool.schema.string().describe("Subtask bead ID"),
1513
+ epic_id: tool.schema.string().describe("Parent epic bead ID"),
1519
1514
  subtask_title: tool.schema.string().describe("Subtask title"),
1520
1515
  subtask_description: tool.schema
1521
1516
  .string()
@@ -1531,6 +1526,8 @@ export const swarm_spawn_subtask = tool({
1531
1526
  },
1532
1527
  async execute(args) {
1533
1528
  const prompt = formatSubtaskPromptV2({
1529
+ bead_id: args.bead_id,
1530
+ epic_id: args.epic_id,
1534
1531
  subtask_title: args.subtask_title,
1535
1532
  subtask_description: args.subtask_description || "",
1536
1533
  files: args.files,
@@ -1541,6 +1538,7 @@ export const swarm_spawn_subtask = tool({
1541
1538
  {
1542
1539
  prompt,
1543
1540
  bead_id: args.bead_id,
1541
+ epic_id: args.epic_id,
1544
1542
  files: args.files,
1545
1543
  },
1546
1544
  null,