opencode-swarm-plugin 0.18.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.beads/issues.jsonl +74 -61
- package/.github/workflows/ci.yml +5 -1
- package/README.md +48 -4
- package/dist/index.js +6643 -6326
- package/dist/plugin.js +2726 -2404
- package/package.json +1 -1
- package/src/agent-mail.ts +20 -7
- package/src/anti-patterns.test.ts +1167 -0
- package/src/anti-patterns.ts +29 -11
- package/src/index.ts +8 -0
- package/src/pattern-maturity.test.ts +1160 -0
- package/src/pattern-maturity.ts +51 -13
- package/src/plugin.ts +15 -3
- package/src/schemas/bead.ts +35 -4
- package/src/schemas/evaluation.ts +18 -6
- package/src/schemas/index.ts +25 -2
- package/src/schemas/task.ts +49 -21
- package/src/streams/debug.ts +101 -3
- package/src/streams/events.ts +22 -0
- package/src/streams/index.ts +58 -1
- package/src/streams/migrations.ts +46 -4
- package/src/streams/store.integration.test.ts +110 -0
- package/src/streams/store.ts +311 -126
- package/src/structured.test.ts +1046 -0
- package/src/structured.ts +74 -27
- package/src/swarm-decompose.ts +912 -0
- package/src/swarm-mail.ts +7 -7
- package/src/swarm-orchestrate.ts +1869 -0
- package/src/swarm-prompts.ts +756 -0
- package/src/swarm-strategies.ts +407 -0
- package/src/swarm.ts +23 -3876
- package/src/tool-availability.ts +29 -6
- package/test-bug-fixes.ts +86 -0
package/.beads/issues.jsonl
CHANGED
|
@@ -18,17 +18,17 @@
|
|
|
18
18
|
{"id":"opencode-swarm-plugin-0bodc.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:23.726612-08:00","updated_at":"2025-12-09T10:00:26.219506-08:00","closed_at":"2025-12-09T10:00:26.219506-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-0bodc.1","depends_on_id":"opencode-swarm-plugin-0bodc","type":"parent-child","created_at":"2025-12-09T10:00:23.72705-08:00","created_by":"daemon"}]}
|
|
19
19
|
{"id":"opencode-swarm-plugin-0bodc.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-09T10:00:23.772101-08:00","updated_at":"2025-12-09T10:00:26.249968-08:00","closed_at":"2025-12-09T10:00:26.249968-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-0bodc.2","depends_on_id":"opencode-swarm-plugin-0bodc","type":"parent-child","created_at":"2025-12-09T10:00:23.772406-08:00","created_by":"daemon"}]}
|
|
20
20
|
{"id":"opencode-swarm-plugin-0bodc.3","title":"Subtask 3","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-09T10:00:23.815565-08:00","updated_at":"2025-12-09T10:00:26.281479-08:00","closed_at":"2025-12-09T10:00:26.281479-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-0bodc.3","depends_on_id":"opencode-swarm-plugin-0bodc","type":"parent-child","created_at":"2025-12-09T10:00:23.815895-08:00","created_by":"daemon"}]}
|
|
21
|
-
{"id":"opencode-swarm-plugin-0bv4r","title":"Add validation to promotePattern state transition","description":"src/pattern-maturity.ts:266-282 - promotePattern throws on deprecated but silently returns on already proven. Consider warning or error for unexpected states like promoting from \"candidate\" without enough feedback.","status":"
|
|
21
|
+
{"id":"opencode-swarm-plugin-0bv4r","title":"Add validation to promotePattern state transition","description":"src/pattern-maturity.ts:266-282 - promotePattern throws on deprecated but silently returns on already proven. Consider warning or error for unexpected states like promoting from \"candidate\" without enough feedback.","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:07:36.184348-08:00","updated_at":"2025-12-13T16:20:33.514538-08:00","closed_at":"2025-12-13T16:20:33.514538-08:00"}
|
|
22
22
|
{"id":"opencode-swarm-plugin-0giv","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:21:27.5822-08:00","updated_at":"2025-12-08T08:21:30.125084-08:00","closed_at":"2025-12-08T08:21:30.125084-08:00"}
|
|
23
23
|
{"id":"opencode-swarm-plugin-0h7kz","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:20:49.245547-08:00","updated_at":"2025-12-13T11:20:52.464106-08:00","closed_at":"2025-12-13T11:20:52.464106-08:00"}
|
|
24
|
-
{"id":"opencode-swarm-plugin-0idn1","title":"Document minSuccessRate default in formatSuccessfulPatternsForPrompt","description":"src/anti-patterns.ts:333 - minSuccessRate default 0.7 (70%) is arbitrary. Add JSDoc: \"/** @param minSuccessRate - Minimum success rate to include (default 0.7 = 70%, chosen to filter out patterns with marginal track records) */\"","status":"
|
|
24
|
+
{"id":"opencode-swarm-plugin-0idn1","title":"Document minSuccessRate default in formatSuccessfulPatternsForPrompt","description":"src/anti-patterns.ts:333 - minSuccessRate default 0.7 (70%) is arbitrary. Add JSDoc: \"/** @param minSuccessRate - Minimum success rate to include (default 0.7 = 70%, chosen to filter out patterns with marginal track records) */\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:07:26.678439-08:00","updated_at":"2025-12-13T16:41:56.006348-08:00","closed_at":"2025-12-13T16:41:56.006348-08:00"}
|
|
25
25
|
{"id":"opencode-swarm-plugin-0jxx","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:16.923763-08:00","updated_at":"2025-12-08T08:22:19.339586-08:00","closed_at":"2025-12-08T08:22:19.339586-08:00"}
|
|
26
26
|
{"id":"opencode-swarm-plugin-0kb2","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:23:18.591779-08:00","updated_at":"2025-12-08T08:23:20.415392-08:00","closed_at":"2025-12-08T08:23:20.415392-08:00"}
|
|
27
27
|
{"id":"opencode-swarm-plugin-0khc","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:11:23.920316-08:00","updated_at":"2025-12-08T11:11:25.828401-08:00","closed_at":"2025-12-08T11:11:25.828401-08:00"}
|
|
28
28
|
{"id":"opencode-swarm-plugin-0khc.2","title":"Edit src/b.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:23.994204-08:00","updated_at":"2025-12-08T11:11:25.880828-08:00","closed_at":"2025-12-08T11:11:25.880828-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-0khc.2","depends_on_id":"opencode-swarm-plugin-0khc","type":"parent-child","created_at":"2025-12-08T11:11:23.994475-08:00","created_by":"daemon"}]}
|
|
29
29
|
{"id":"opencode-swarm-plugin-0l14i","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:12:42.287672-08:00","updated_at":"2025-12-08T11:12:44.151565-08:00","closed_at":"2025-12-08T11:12:44.151565-08:00"}
|
|
30
30
|
{"id":"opencode-swarm-plugin-0l14i.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T11:12:42.322958-08:00","updated_at":"2025-12-08T11:12:44.174169-08:00","closed_at":"2025-12-08T11:12:44.174169-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-0l14i.1","depends_on_id":"opencode-swarm-plugin-0l14i","type":"parent-child","created_at":"2025-12-08T11:12:42.323335-08:00","created_by":"daemon"}]}
|
|
31
|
-
{"id":"opencode-swarm-plugin-0l5bq","title":"Add JSDoc to extractPatternsFromDescription regex patterns","description":"src/anti-patterns.ts:220-260 - strategyPatterns array has 12 regex patterns but no explanation of detection logic. Add comment: \"Detects common decomposition strategies via keyword matching. Not exhaustive - patterns can be manually created for novel strategies.\"","status":"
|
|
31
|
+
{"id":"opencode-swarm-plugin-0l5bq","title":"Add JSDoc to extractPatternsFromDescription regex patterns","description":"src/anti-patterns.ts:220-260 - strategyPatterns array has 12 regex patterns but no explanation of detection logic. Add comment: \"Detects common decomposition strategies via keyword matching. Not exhaustive - patterns can be manually created for novel strategies.\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:07:22.738997-08:00","updated_at":"2025-12-13T16:41:55.320002-08:00","closed_at":"2025-12-13T16:41:55.320002-08:00"}
|
|
32
32
|
{"id":"opencode-swarm-plugin-0lidx","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:41.181135-08:00","updated_at":"2025-12-08T11:12:43.741036-08:00","closed_at":"2025-12-08T11:12:43.741036-08:00"}
|
|
33
33
|
{"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"}
|
|
34
34
|
{"id":"opencode-swarm-plugin-0lo41","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-10T09:06:06.208543-08:00","updated_at":"2025-12-10T09:06:09.912935-08:00","closed_at":"2025-12-10T09:06:09.912935-08:00"}
|
|
@@ -201,7 +201,7 @@
|
|
|
201
201
|
{"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"}
|
|
202
202
|
{"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"}
|
|
203
203
|
{"id":"opencode-swarm-plugin-3r550","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:56.39931-08:00","updated_at":"2025-12-08T11:12:58.421488-08:00","closed_at":"2025-12-08T11:12:58.421488-08:00"}
|
|
204
|
-
{"id":"opencode-swarm-plugin-3s3nr","title":"Gap: No pagination for large event reads","description":"src/streams/store.ts:214-263 - replayEvents() reads ALL events into memory without pagination. For large event logs (\u003e100k events), this could cause OOM. readEvents() has limit/offset but replayEvents doesn't use it. Should: paginate event replay (process in batches of 1000), add progress reporting, consider streaming API for large replays. Also affects debugEvents in debug.ts.","status":"
|
|
204
|
+
{"id":"opencode-swarm-plugin-3s3nr","title":"Gap: No pagination for large event reads","description":"src/streams/store.ts:214-263 - replayEvents() reads ALL events into memory without pagination. For large event logs (\u003e100k events), this could cause OOM. readEvents() has limit/offset but replayEvents doesn't use it. Should: paginate event replay (process in batches of 1000), add progress reporting, consider streaming API for large replays. Also affects debugEvents in debug.ts.","status":"closed","priority":2,"issue_type":"chore","created_at":"2025-12-13T09:25:10.536039-08:00","updated_at":"2025-12-13T16:20:31.328659-08:00","closed_at":"2025-12-13T16:20:31.328659-08:00"}
|
|
205
205
|
{"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"}
|
|
206
206
|
{"id":"opencode-swarm-plugin-4063b","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:16:36.180358-08:00","updated_at":"2025-12-13T11:16:40.104382-08:00","closed_at":"2025-12-13T11:16:40.104382-08:00"}
|
|
207
207
|
{"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"}
|
|
@@ -224,7 +224,7 @@
|
|
|
224
224
|
{"id":"opencode-swarm-plugin-4942","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:11:09.50503-08:00","updated_at":"2025-12-08T11:11:11.381465-08:00","closed_at":"2025-12-08T11:11:11.381465-08:00"}
|
|
225
225
|
{"id":"opencode-swarm-plugin-4bitt","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:20:46.452234-08:00","updated_at":"2025-12-13T11:20:51.060861-08:00","closed_at":"2025-12-13T11:20:51.060861-08:00"}
|
|
226
226
|
{"id":"opencode-swarm-plugin-4c0th","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:40.369138-08:00","updated_at":"2025-12-13T14:48:44.668923-08:00","closed_at":"2025-12-13T14:48:44.668923-08:00"}
|
|
227
|
-
{"id":"opencode-swarm-plugin-4cbdw","title":"Document schema_name enum values in structured_validate","description":"src/structured.ts:351-353 - schema_name enum [\"evaluation\", \"task_decomposition\", \"bead_tree\"] not documented. Add description: \"Schema to validate against (evaluation=agent self-eval, task_decomposition=swarm breakdown, bead_tree=epic+subtasks)\"","status":"
|
|
227
|
+
{"id":"opencode-swarm-plugin-4cbdw","title":"Document schema_name enum values in structured_validate","description":"src/structured.ts:351-353 - schema_name enum [\"evaluation\", \"task_decomposition\", \"bead_tree\"] not documented. Add description: \"Schema to validate against (evaluation=agent self-eval, task_decomposition=swarm breakdown, bead_tree=epic+subtasks)\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:54.29152-08:00","updated_at":"2025-12-13T16:45:46.595725-08:00","closed_at":"2025-12-13T16:45:46.595725-08:00"}
|
|
228
228
|
{"id":"opencode-swarm-plugin-4ctd","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:25.745673-08:00","updated_at":"2025-12-08T11:12:28.126517-08:00","closed_at":"2025-12-08T11:12:28.126517-08:00"}
|
|
229
229
|
{"id":"opencode-swarm-plugin-4d44w","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-10T09:07:22.27411-08:00","updated_at":"2025-12-10T09:07:25.689481-08:00","closed_at":"2025-12-10T09:07:25.689481-08:00"}
|
|
230
230
|
{"id":"opencode-swarm-plugin-4dyt","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:41.061421-08:00","updated_at":"2025-12-08T08:11:41.135147-08:00","closed_at":"2025-12-08T08:11:41.135147-08:00"}
|
|
@@ -263,7 +263,7 @@
|
|
|
263
263
|
{"id":"opencode-swarm-plugin-4rfx","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:23:18.358254-08:00","updated_at":"2025-12-08T08:23:20.235539-08:00","closed_at":"2025-12-08T08:23:20.235539-08:00"}
|
|
264
264
|
{"id":"opencode-swarm-plugin-4rfx.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:18.391813-08:00","updated_at":"2025-12-08T08:23:20.260453-08:00","closed_at":"2025-12-08T08:23:20.260453-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-4rfx.1","depends_on_id":"opencode-swarm-plugin-4rfx","type":"parent-child","created_at":"2025-12-08T08:23:18.392129-08:00","created_by":"daemon"}]}
|
|
265
265
|
{"id":"opencode-swarm-plugin-4rfx.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-08T08:23:18.423962-08:00","updated_at":"2025-12-08T08:23:20.285354-08:00","closed_at":"2025-12-08T08:23:20.285354-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-4rfx.2","depends_on_id":"opencode-swarm-plugin-4rfx","type":"parent-child","created_at":"2025-12-08T08:23:18.424275-08:00","created_by":"daemon"}]}
|
|
266
|
-
{"id":"opencode-swarm-plugin-4t3mp","title":"Extract magic number 10000 to constant in semantic-memory check","description":"src/tool-availability.ts:108 - bunx timeout 10000ms is magic number. Extract to constant: `const BUNX_TIMEOUT_MS = 10000;` for consistency with other timeouts.","status":"
|
|
266
|
+
{"id":"opencode-swarm-plugin-4t3mp","title":"Extract magic number 10000 to constant in semantic-memory check","description":"src/tool-availability.ts:108 - bunx timeout 10000ms is magic number. Extract to constant: `const BUNX_TIMEOUT_MS = 10000;` for consistency with other timeouts.","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:07:06.018452-08:00","updated_at":"2025-12-13T16:41:51.721641-08:00","closed_at":"2025-12-13T16:41:51.721641-08:00"}
|
|
267
267
|
{"id":"opencode-swarm-plugin-4tyc","title":"Update test bead","description":"Blocked on dependency","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T11:11:08.814454-08:00","updated_at":"2025-12-08T11:11:11.094826-08:00","closed_at":"2025-12-08T11:11:11.094826-08:00"}
|
|
268
268
|
{"id":"opencode-swarm-plugin-4uy9","title":"Implement Strategic Swarm Planner","description":"Add strategy selection, planning prompts, example agent, and learning integration for swarm decomposition","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:08:24.603771-08:00","updated_at":"2025-12-08T11:13:18.243383-08:00","closed_at":"2025-12-08T11:13:18.243383-08:00"}
|
|
269
269
|
{"id":"opencode-swarm-plugin-4uy9.1","title":"Add tests for swarm_select_strategy and swarm_plan_prompt","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T11:08:24.640194-08:00","updated_at":"2025-12-08T11:13:15.209806-08:00","closed_at":"2025-12-08T11:13:15.209806-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-4uy9.1","depends_on_id":"opencode-swarm-plugin-4uy9","type":"parent-child","created_at":"2025-12-08T11:08:24.640519-08:00","created_by":"daemon"}]}
|
|
@@ -358,7 +358,7 @@
|
|
|
358
358
|
{"id":"opencode-swarm-plugin-6c2n","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:22.932844-08:00","updated_at":"2025-12-08T11:11:25.487338-08:00","closed_at":"2025-12-08T11:11:25.487338-08:00"}
|
|
359
359
|
{"id":"opencode-swarm-plugin-6cps","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:24.654233-08:00","updated_at":"2025-12-08T11:11:26.148419-08:00","closed_at":"2025-12-08T11:11:26.148419-08:00"}
|
|
360
360
|
{"id":"opencode-swarm-plugin-6dcg","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:49.735967-08:00","updated_at":"2025-12-08T07:46:51.96445-08:00","closed_at":"2025-12-08T07:46:51.96445-08:00"}
|
|
361
|
-
{"id":"opencode-swarm-plugin-6efn9","title":"Document why GET instead of HEAD in urlReachable","description":"src/tool-availability.ts:64-68 - Comment says \"Use GET instead of HEAD - some servers don't support HEAD\" but doesn't clarify that we check .ok, not response body. Add: \"We only check response.ok status, not body content, so GET has minimal overhead vs HEAD.\"","status":"
|
|
361
|
+
{"id":"opencode-swarm-plugin-6efn9","title":"Document why GET instead of HEAD in urlReachable","description":"src/tool-availability.ts:64-68 - Comment says \"Use GET instead of HEAD - some servers don't support HEAD\" but doesn't clarify that we check .ok, not response body. Add: \"We only check response.ok status, not body content, so GET has minimal overhead vs HEAD.\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:07:04.446096-08:00","updated_at":"2025-12-13T16:41:51.189901-08:00","closed_at":"2025-12-13T16:41:51.189901-08:00"}
|
|
362
362
|
{"id":"opencode-swarm-plugin-6eg","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:35.586075-08:00","updated_at":"2025-12-07T19:37:36.81509-08:00","closed_at":"2025-12-07T19:37:36.81509-08:00"}
|
|
363
363
|
{"id":"opencode-swarm-plugin-6ep7","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-08T08:11:38.996265-08:00","updated_at":"2025-12-08T08:11:41.663466-08:00","closed_at":"2025-12-08T08:11:41.663466-08:00"}
|
|
364
364
|
{"id":"opencode-swarm-plugin-6ib2a","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:12:42.179637-08:00","updated_at":"2025-12-08T11:12:44.081038-08:00","closed_at":"2025-12-08T11:12:44.081038-08:00"}
|
|
@@ -397,7 +397,7 @@
|
|
|
397
397
|
{"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"}
|
|
398
398
|
{"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"}
|
|
399
399
|
{"id":"opencode-swarm-plugin-75x7.2","title":"Edit src/b.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:49:10.614977-08:00","updated_at":"2025-12-08T07:49:12.512968-08:00","closed_at":"2025-12-08T07:49:12.512968-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-75x7.2","depends_on_id":"opencode-swarm-plugin-75x7","type":"parent-child","created_at":"2025-12-08T07:49:10.615324-08:00","created_by":"daemon"}]}
|
|
400
|
-
{"id":"opencode-swarm-plugin-76d9t","title":"Extract magic number 2000 to constant in tool-availability.ts","description":"src/tool-availability.ts:58 - Default timeout 2000ms is magic number. Extract to constant: `const DEFAULT_URL_TIMEOUT_MS = 2000;` for clarity and reusability.","status":"
|
|
400
|
+
{"id":"opencode-swarm-plugin-76d9t","title":"Extract magic number 2000 to constant in tool-availability.ts","description":"src/tool-availability.ts:58 - Default timeout 2000ms is magic number. Extract to constant: `const DEFAULT_URL_TIMEOUT_MS = 2000;` for clarity and reusability.","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:07:01.336168-08:00","updated_at":"2025-12-13T16:41:50.541178-08:00","closed_at":"2025-12-13T16:41:50.541178-08:00"}
|
|
401
401
|
{"id":"opencode-swarm-plugin-76wq","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:21:26.848144-08:00","updated_at":"2025-12-08T08:21:29.687811-08:00","closed_at":"2025-12-08T08:21:29.687811-08:00"}
|
|
402
402
|
{"id":"opencode-swarm-plugin-77ka","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:39.150819-08:00","updated_at":"2025-12-08T08:11:41.769041-08:00","closed_at":"2025-12-08T08:11:41.769041-08:00"}
|
|
403
403
|
{"id":"opencode-swarm-plugin-79i","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:36:07.224015-08:00","updated_at":"2025-12-07T19:36:08.874819-08:00","closed_at":"2025-12-07T19:36:08.874819-08:00"}
|
|
@@ -483,13 +483,13 @@
|
|
|
483
483
|
{"id":"opencode-swarm-plugin-8i74.3","title":"Third","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:50.393371-08:00","updated_at":"2025-12-08T07:46:52.364985-08:00","closed_at":"2025-12-08T07:46:52.364985-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-8i74.3","depends_on_id":"opencode-swarm-plugin-8i74","type":"parent-child","created_at":"2025-12-08T07:46:50.393722-08:00","created_by":"daemon"}]}
|
|
484
484
|
{"id":"opencode-swarm-plugin-8i74.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:50.431219-08:00","updated_at":"2025-12-08T07:46:52.392735-08:00","closed_at":"2025-12-08T07:46:52.392735-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-8i74.4","depends_on_id":"opencode-swarm-plugin-8i74","type":"parent-child","created_at":"2025-12-08T07:46:50.431596-08:00","created_by":"daemon"}]}
|
|
485
485
|
{"id":"opencode-swarm-plugin-8j4v","title":"Debug test","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:48.012695-08:00","updated_at":"2025-12-07T19:39:53.542819-08:00","closed_at":"2025-12-07T19:39:53.542819-08:00"}
|
|
486
|
-
{"id":"opencode-swarm-plugin-8kiel","title":"Gap: No migration strategy from MCP to event-sourced","description":"src/streams/agent-mail.ts - No migration path documented or implemented for users moving from MCP-based agent-mail to embedded PGLite. Need: migration tool to export MCP data and import as events, documentation on migration steps, backward compatibility layer, or at minimum clear upgrade guide. Consider: \"migrate-from-mcp\" command, schema version detection, auto-migration on first run.","status":"
|
|
486
|
+
{"id":"opencode-swarm-plugin-8kiel","title":"Gap: No migration strategy from MCP to event-sourced","description":"src/streams/agent-mail.ts - No migration path documented or implemented for users moving from MCP-based agent-mail to embedded PGLite. Need: migration tool to export MCP data and import as events, documentation on migration steps, backward compatibility layer, or at minimum clear upgrade guide. Consider: \"migrate-from-mcp\" command, schema version detection, auto-migration on first run.","status":"closed","priority":2,"issue_type":"chore","created_at":"2025-12-13T09:25:00.37956-08:00","updated_at":"2025-12-13T16:42:00.823655-08:00","closed_at":"2025-12-13T16:42:00.823655-08:00"}
|
|
487
487
|
{"id":"opencode-swarm-plugin-8lig","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:25.517101-08:00","updated_at":"2025-12-08T11:12:27.978547-08:00","closed_at":"2025-12-08T11:12:27.978547-08:00"}
|
|
488
488
|
{"id":"opencode-swarm-plugin-8noh","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:45.63765-08:00","updated_at":"2025-12-08T07:53:45.716599-08:00","closed_at":"2025-12-08T07:53:45.716599-08:00"}
|
|
489
489
|
{"id":"opencode-swarm-plugin-8npbb","title":"rate-limiter.ts:328 - Opportunistic cleanup without bounds","description":"rate-limiter.ts:328 - SqliteRateLimiter cleanup happens 1% of the time but could delete large datasets without limit or batching. On large DBs, this blocks recordRequest. Suggested fix: Add LIMIT clause or batch deletion.","status":"closed","priority":2,"issue_type":"chore","created_at":"2025-12-10T09:06:18.513101-08:00","updated_at":"2025-12-13T15:59:42.483297-08:00","closed_at":"2025-12-13T15:59:42.483297-08:00"}
|
|
490
490
|
{"id":"opencode-swarm-plugin-8p4","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-07T19:39:10.060249-08:00","updated_at":"2025-12-07T19:39:12.022444-08:00","closed_at":"2025-12-07T19:39:12.022444-08:00"}
|
|
491
491
|
{"id":"opencode-swarm-plugin-8pyb","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:30.014902-08:00","updated_at":"2025-12-08T08:14:31.732051-08:00","closed_at":"2025-12-08T08:14:31.732051-08:00"}
|
|
492
|
-
{"id":"opencode-swarm-plugin-8qe8e","title":"Add JSDoc examples to CriterionEvaluation","description":"src/schemas/evaluation.ts:19-24 - CriterionEvaluationSchema lacks usage example. Add JSDoc with example: `{ passed: true, feedback: \"All types validated\", score: 0.95 }`","status":"
|
|
492
|
+
{"id":"opencode-swarm-plugin-8qe8e","title":"Add JSDoc examples to CriterionEvaluation","description":"src/schemas/evaluation.ts:19-24 - CriterionEvaluationSchema lacks usage example. Add JSDoc with example: `{ passed: true, feedback: \"All types validated\", score: 0.95 }`","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:13.139472-08:00","updated_at":"2025-12-13T16:48:07.364425-08:00","closed_at":"2025-12-13T16:48:07.364425-08:00"}
|
|
493
493
|
{"id":"opencode-swarm-plugin-8rl6e","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:41.420444-08:00","updated_at":"2025-12-08T11:12:43.835874-08:00","closed_at":"2025-12-08T11:12:43.835874-08:00"}
|
|
494
494
|
{"id":"opencode-swarm-plugin-8td","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:39:10.72267-08:00","updated_at":"2025-12-07T19:39:12.284908-08:00","closed_at":"2025-12-07T19:39:12.284908-08:00"}
|
|
495
495
|
{"id":"opencode-swarm-plugin-8thxw","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:22.786941-08:00","updated_at":"2025-12-09T10:00:25.916352-08:00","closed_at":"2025-12-09T10:00:25.916352-08:00"}
|
|
@@ -501,7 +501,7 @@
|
|
|
501
501
|
{"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"}
|
|
502
502
|
{"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"}
|
|
503
503
|
{"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"}
|
|
504
|
-
{"id":"opencode-swarm-plugin-95o6e","title":"Add better error message for empty response in structured_validate","description":"src/structured.ts:374-385 - When JSON extraction fails, error just shows \"JSON extraction failed\". Add check for empty/whitespace-only input and provide specific message: \"Response is empty or contains only whitespace\"","status":"
|
|
504
|
+
{"id":"opencode-swarm-plugin-95o6e","title":"Add better error message for empty response in structured_validate","description":"src/structured.ts:374-385 - When JSON extraction fails, error just shows \"JSON extraction failed\". Add check for empty/whitespace-only input and provide specific message: \"Response is empty or contains only whitespace\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:51.941683-08:00","updated_at":"2025-12-13T16:45:46.102955-08:00","closed_at":"2025-12-13T16:45:46.102955-08:00"}
|
|
505
505
|
{"id":"opencode-swarm-plugin-95z7","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:10:54.38177-08:00","updated_at":"2025-12-08T11:10:56.238892-08:00","closed_at":"2025-12-08T11:10:56.238892-08:00"}
|
|
506
506
|
{"id":"opencode-swarm-plugin-96mg","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:11:09.574357-08:00","updated_at":"2025-12-08T11:11:11.432404-08:00","closed_at":"2025-12-08T11:11:11.432404-08:00"}
|
|
507
507
|
{"id":"opencode-swarm-plugin-96mg.1","title":"First","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:09.608926-08:00","updated_at":"2025-12-08T11:11:11.457203-08:00","closed_at":"2025-12-08T11:11:11.457203-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-96mg.1","depends_on_id":"opencode-swarm-plugin-96mg","type":"parent-child","created_at":"2025-12-08T11:11:09.609228-08:00","created_by":"daemon"}]}
|
|
@@ -531,7 +531,7 @@
|
|
|
531
531
|
{"id":"opencode-swarm-plugin-9gks","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:11:41.194407-08:00","updated_at":"2025-12-08T08:11:41.390014-08:00","closed_at":"2025-12-08T08:11:41.390014-08:00"}
|
|
532
532
|
{"id":"opencode-swarm-plugin-9gks.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:41.227583-08:00","updated_at":"2025-12-08T08:11:41.313181-08:00","closed_at":"2025-12-08T08:11:41.313181-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-9gks.1","depends_on_id":"opencode-swarm-plugin-9gks","type":"parent-child","created_at":"2025-12-08T08:11:41.227892-08:00","created_by":"daemon"}]}
|
|
533
533
|
{"id":"opencode-swarm-plugin-9gks.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:41.260544-08:00","updated_at":"2025-12-08T08:11:41.363657-08:00","closed_at":"2025-12-08T08:11:41.363657-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-9gks.2","depends_on_id":"opencode-swarm-plugin-9gks","type":"parent-child","created_at":"2025-12-08T08:11:41.260862-08:00","created_by":"daemon"}]}
|
|
534
|
-
{"id":"opencode-swarm-plugin-9gyl9","title":"Document maturity multiplier rationale in getMaturityMultiplier","description":"src/pattern-maturity.ts:319-327 - Multipliers (candidate: 0.5, established: 1.0, proven: 1.5, deprecated: 0) not explained. Add JSDoc: \"Multipliers chosen to: heavily penalize deprecated (0), slightly boost proven (1.5x), penalize unvalidated candidates (0.5x)\"","status":"
|
|
534
|
+
{"id":"opencode-swarm-plugin-9gyl9","title":"Document maturity multiplier rationale in getMaturityMultiplier","description":"src/pattern-maturity.ts:319-327 - Multipliers (candidate: 0.5, established: 1.0, proven: 1.5, deprecated: 0) not explained. Add JSDoc: \"Multipliers chosen to: heavily penalize deprecated (0), slightly boost proven (1.5x), penalize unvalidated candidates (0.5x)\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:07:39.554601-08:00","updated_at":"2025-12-13T16:20:32.852341-08:00","closed_at":"2025-12-13T16:20:32.852341-08:00"}
|
|
535
535
|
{"id":"opencode-swarm-plugin-9h949","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:20:47.215626-08:00","updated_at":"2025-12-13T11:20:51.517622-08:00","closed_at":"2025-12-13T11:20:51.517622-08:00"}
|
|
536
536
|
{"id":"opencode-swarm-plugin-9hea","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:11:24.107092-08:00","updated_at":"2025-12-08T11:11:25.938473-08:00","closed_at":"2025-12-08T11:11:25.938473-08:00"}
|
|
537
537
|
{"id":"opencode-swarm-plugin-9hea.1","title":"First","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:24.145132-08:00","updated_at":"2025-12-08T11:11:25.963881-08:00","closed_at":"2025-12-08T11:11:25.963881-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-9hea.1","depends_on_id":"opencode-swarm-plugin-9hea","type":"parent-child","created_at":"2025-12-08T11:11:24.145473-08:00","created_by":"daemon"}]}
|
|
@@ -581,6 +581,9 @@
|
|
|
581
581
|
{"id":"opencode-swarm-plugin-a2v","title":"Docker integration test infrastructure","description":"Create Docker-based integration test environment with real beads CLI and Agent Mail server for testing all plugin modules without mocks","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:23:43.835677-08:00","updated_at":"2025-12-08T08:35:23.531219-08:00","closed_at":"2025-12-08T08:35:23.531219-08:00"}
|
|
582
582
|
{"id":"opencode-swarm-plugin-a347","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T08:36:17.512906-08:00","updated_at":"2025-12-08T08:36:19.481274-08:00","closed_at":"2025-12-08T08:36:19.481274-08:00"}
|
|
583
583
|
{"id":"opencode-swarm-plugin-a3fa","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:34.668388-08:00","updated_at":"2025-12-08T08:05:34.745926-08:00","closed_at":"2025-12-08T08:05:34.745926-08:00"}
|
|
584
|
+
{"id":"opencode-swarm-plugin-a544q","title":"Pattern Maturity Tests + Type Consolidation","description":"Add comprehensive tests for pattern-maturity.ts and consolidate duplicated AgentMailState/SwarmMailState types into a shared MailSessionState type","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-13T17:34:47.29781-08:00","updated_at":"2025-12-13T17:38:45.880092-08:00","closed_at":"2025-12-13T17:38:45.880092-08:00"}
|
|
585
|
+
{"id":"opencode-swarm-plugin-a544q.1","title":"Add comprehensive tests for pattern-maturity.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T17:34:47.364337-08:00","updated_at":"2025-12-13T17:38:44.260206-08:00","closed_at":"2025-12-13T17:38:44.260206-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-a544q.1","depends_on_id":"opencode-swarm-plugin-a544q","type":"parent-child","created_at":"2025-12-13T17:34:47.365765-08:00","created_by":"daemon"}]}
|
|
586
|
+
{"id":"opencode-swarm-plugin-a544q.2","title":"Extract shared MailSessionState type to streams/events.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T17:34:47.424639-08:00","updated_at":"2025-12-13T17:38:45.133011-08:00","closed_at":"2025-12-13T17:38:45.133011-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-a544q.2","depends_on_id":"opencode-swarm-plugin-a544q","type":"parent-child","created_at":"2025-12-13T17:34:47.425534-08:00","created_by":"daemon"}]}
|
|
584
587
|
{"id":"opencode-swarm-plugin-a6lo","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:24.861491-08:00","updated_at":"2025-12-08T11:11:26.310192-08:00","closed_at":"2025-12-08T11:11:26.310192-08:00"}
|
|
585
588
|
{"id":"opencode-swarm-plugin-a6rl7","title":"Mandate from Heaven: Agent Voting System","description":"Build a collective intelligence system where agents file and vote on ideas, tips, lore, snippets, and feature requests. High-consensus items become 'mandates' that influence future agent behavior via semantic memory.","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-13T14:56:58.000088-08:00","updated_at":"2025-12-13T15:51:03.366671-08:00","closed_at":"2025-12-13T15:51:03.366671-08:00"}
|
|
586
589
|
{"id":"opencode-swarm-plugin-a6rl7.1","title":"Core schemas and types for mandate system","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-13T14:56:58.053657-08:00","updated_at":"2025-12-13T14:59:07.218098-08:00","closed_at":"2025-12-13T14:59:07.218098-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-a6rl7.1","depends_on_id":"opencode-swarm-plugin-a6rl7","type":"parent-child","created_at":"2025-12-13T14:56:58.055878-08:00","created_by":"daemon"}]}
|
|
@@ -623,7 +626,7 @@
|
|
|
623
626
|
{"id":"opencode-swarm-plugin-b0ydv","title":"Create TDD skill with lore from prime knowledge","description":"Created .opencode/skills/tdd/SKILL.md with RED-GREEN-REFACTOR workflow and lore from Kent Beck, Michael Feathers, Martin Fowler, and Ousterhout's counterpoint.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T09:12:37.165045-08:00","updated_at":"2025-12-13T09:12:40.904565-08:00","closed_at":"2025-12-13T09:12:40.904565-08:00"}
|
|
624
627
|
{"id":"opencode-swarm-plugin-b1hf","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:40.14326-08:00","updated_at":"2025-12-08T11:11:41.771573-08:00","closed_at":"2025-12-08T11:11:41.771573-08:00"}
|
|
625
628
|
{"id":"opencode-swarm-plugin-b1wpc","title":"swarm.ts:1620-1670 - runUbsScan doesn't validate JSON structure","description":"swarm.ts:1620-1670 - runUbsScan parses JSON but doesn't validate with schema. If UBS changes output format, could return malformed data or throw cryptic errors. Suggested fix: Define Zod schema for UBS output and validate.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-10T09:06:33.466723-08:00","updated_at":"2025-12-10T11:56:17.052815-08:00","closed_at":"2025-12-10T11:56:17.052815-08:00"}
|
|
626
|
-
{"id":"opencode-swarm-plugin-b22qj","title":"Gap: No transaction rollback error handling in appendEvents","description":"src/streams/store.ts:68-94 - appendEvents() has try/catch with ROLLBACK but if ROLLBACK itself fails (e.g., connection lost), that error is swallowed. Should log rollback failures. Also, if updateMaterializedViews fails mid-transaction, some events may be in inconsistent state. Consider: logging rollback errors, emitting error events, or adding retry logic.","status":"
|
|
629
|
+
{"id":"opencode-swarm-plugin-b22qj","title":"Gap: No transaction rollback error handling in appendEvents","description":"src/streams/store.ts:68-94 - appendEvents() has try/catch with ROLLBACK but if ROLLBACK itself fails (e.g., connection lost), that error is swallowed. Should log rollback failures. Also, if updateMaterializedViews fails mid-transaction, some events may be in inconsistent state. Consider: logging rollback errors, emitting error events, or adding retry logic.","status":"closed","priority":2,"issue_type":"chore","created_at":"2025-12-13T09:24:56.23944-08:00","updated_at":"2025-12-13T16:06:34.991434-08:00","closed_at":"2025-12-13T16:06:34.991434-08:00"}
|
|
627
630
|
{"id":"opencode-swarm-plugin-b39i","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T11:11:38.123705-08:00","updated_at":"2025-12-08T11:11:40.7258-08:00","closed_at":"2025-12-08T11:11:40.7258-08:00"}
|
|
628
631
|
{"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"}
|
|
629
632
|
{"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"}
|
|
@@ -660,12 +663,12 @@
|
|
|
660
663
|
{"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"}
|
|
661
664
|
{"id":"opencode-swarm-plugin-bsuvl","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:20:46.23906-08:00","updated_at":"2025-12-13T11:20:50.884161-08:00","closed_at":"2025-12-13T11:20:50.884161-08:00"}
|
|
662
665
|
{"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"}
|
|
663
|
-
{"id":"opencode-swarm-plugin-bvot5","title":"Document regex limitations in attemptJsonRepair","description":"src/structured.ts:249-272 - attemptJsonRepair has comment \"This is a simple heuristic - won't work for all cases\" but doesn't list known limitations. Add JSDoc: \"Limitations: single quotes in nested objects, escaped quotes in keys, multiline string detection\"","status":"
|
|
666
|
+
{"id":"opencode-swarm-plugin-bvot5","title":"Document regex limitations in attemptJsonRepair","description":"src/structured.ts:249-272 - attemptJsonRepair has comment \"This is a simple heuristic - won't work for all cases\" but doesn't list known limitations. Add JSDoc: \"Limitations: single quotes in nested objects, escaped quotes in keys, multiline string detection\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:47.470646-08:00","updated_at":"2025-12-13T16:45:44.852448-08:00","closed_at":"2025-12-13T16:45:44.852448-08:00"}
|
|
664
667
|
{"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"}
|
|
665
668
|
{"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"}]}
|
|
666
669
|
{"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"}
|
|
667
670
|
{"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"}
|
|
668
|
-
{"id":"opencode-swarm-plugin-byhfs","title":"Extract magic number 0.01 epsilon to constant in pattern-maturity.ts","description":"src/pattern-maturity.ts:167 - `epsilon = 0.01` for float comparison is magic number. Extract to module constant: `const FLOAT_EPSILON = 0.01;` and document: \"Tolerance for floating-point comparisons\"","status":"
|
|
671
|
+
{"id":"opencode-swarm-plugin-byhfs","title":"Extract magic number 0.01 epsilon to constant in pattern-maturity.ts","description":"src/pattern-maturity.ts:167 - `epsilon = 0.01` for float comparison is magic number. Extract to module constant: `const FLOAT_EPSILON = 0.01;` and document: \"Tolerance for floating-point comparisons\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:07:29.965468-08:00","updated_at":"2025-12-13T16:41:56.538935-08:00","closed_at":"2025-12-13T16:41:56.538935-08:00"}
|
|
669
672
|
{"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"}
|
|
670
673
|
{"id":"opencode-swarm-plugin-byx","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:39:10.518007-08:00","updated_at":"2025-12-07T19:39:12.13146-08:00","closed_at":"2025-12-07T19:39:12.13146-08:00"}
|
|
671
674
|
{"id":"opencode-swarm-plugin-byx.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:10.54688-08:00","updated_at":"2025-12-07T19:39:12.15257-08:00","closed_at":"2025-12-07T19:39:12.15257-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-byx.1","depends_on_id":"opencode-swarm-plugin-byx","type":"parent-child","created_at":"2025-12-07T19:39:10.547179-08:00","created_by":"daemon"}]}
|
|
@@ -758,7 +761,7 @@
|
|
|
758
761
|
{"id":"opencode-swarm-plugin-d4j7","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-08T11:11:22.375891-08:00","updated_at":"2025-12-08T11:11:25.209658-08:00","closed_at":"2025-12-08T11:11:25.209658-08:00"}
|
|
759
762
|
{"id":"opencode-swarm-plugin-d5wi","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:42.679043-08:00","updated_at":"2025-12-07T19:56:44.826201-08:00","closed_at":"2025-12-07T19:56:44.826201-08:00"}
|
|
760
763
|
{"id":"opencode-swarm-plugin-d61a","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:23.158865-08:00","updated_at":"2025-12-08T11:11:25.676049-08:00","closed_at":"2025-12-08T11:11:25.676049-08:00"}
|
|
761
|
-
{"id":"opencode-swarm-plugin-d7age","title":"Gap: Integer overflow risk in timestamp conversions","description":"src/streams/store.ts:169,180 - Parsing timestamps as integers: `parseInt(row.timestamp)`. PostgreSQL BIGINT can exceed JavaScript's MAX_SAFE_INTEGER (2^53-1). Year 2286+ timestamps will overflow. Should: use BigInt for timestamp handling, or document acceptable timestamp range. Low priority but good to note for long-lived systems.","status":"
|
|
764
|
+
{"id":"opencode-swarm-plugin-d7age","title":"Gap: Integer overflow risk in timestamp conversions","description":"src/streams/store.ts:169,180 - Parsing timestamps as integers: `parseInt(row.timestamp)`. PostgreSQL BIGINT can exceed JavaScript's MAX_SAFE_INTEGER (2^53-1). Year 2286+ timestamps will overflow. Should: use BigInt for timestamp handling, or document acceptable timestamp range. Low priority but good to note for long-lived systems.","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-13T09:25:29.654739-08:00","updated_at":"2025-12-13T16:20:35.022602-08:00","closed_at":"2025-12-13T16:20:35.022602-08:00"}
|
|
762
765
|
{"id":"opencode-swarm-plugin-d7el","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:57:06.921129-08:00","updated_at":"2025-12-07T19:57:08.670603-08:00","closed_at":"2025-12-07T19:57:08.670603-08:00"}
|
|
763
766
|
{"id":"opencode-swarm-plugin-d7el.2","title":"Edit src/b.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:06.989286-08:00","updated_at":"2025-12-07T19:57:08.716627-08:00","closed_at":"2025-12-07T19:57:08.716627-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-d7el.2","depends_on_id":"opencode-swarm-plugin-d7el","type":"parent-child","created_at":"2025-12-07T19:57:06.989588-08:00","created_by":"daemon"}]}
|
|
764
767
|
{"id":"opencode-swarm-plugin-d7hbl","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T11:12:41.478935-08:00","updated_at":"2025-12-08T11:12:43.861846-08:00","closed_at":"2025-12-08T11:12:43.861846-08:00"}
|
|
@@ -786,7 +789,7 @@
|
|
|
786
789
|
{"id":"opencode-swarm-plugin-dl17","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:55.165899-08:00","updated_at":"2025-12-08T08:56:57.785281-08:00","closed_at":"2025-12-08T08:56:57.785281-08:00"}
|
|
787
790
|
{"id":"opencode-swarm-plugin-dmt","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:39:18.777024-08:00","updated_at":"2025-12-07T19:39:18.800362-08:00","closed_at":"2025-12-07T19:39:18.800362-08:00"}
|
|
788
791
|
{"id":"opencode-swarm-plugin-doe","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:07.043805-08:00","updated_at":"2025-12-07T19:36:08.828395-08:00","closed_at":"2025-12-07T19:36:08.828395-08:00"}
|
|
789
|
-
{"id":"opencode-swarm-plugin-dqeye","title":"Add JSDoc to schema export file","description":"src/schemas/index.ts:1-78 - File lacks JSDoc describing export groups and their purposes. Add module-level JSDoc explaining that this is the central export point for all schema definitions used in the plugin.","status":"
|
|
792
|
+
{"id":"opencode-swarm-plugin-dqeye","title":"Add JSDoc to schema export file","description":"src/schemas/index.ts:1-78 - File lacks JSDoc describing export groups and their purposes. Add module-level JSDoc explaining that this is the central export point for all schema definitions used in the plugin.","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:04.359624-08:00","updated_at":"2025-12-13T16:48:09.917903-08:00","closed_at":"2025-12-13T16:48:09.917903-08:00"}
|
|
790
793
|
{"id":"opencode-swarm-plugin-dqhn","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:19.288326-08:00","updated_at":"2025-12-08T08:23:19.369593-08:00","closed_at":"2025-12-08T08:23:19.369593-08:00"}
|
|
791
794
|
{"id":"opencode-swarm-plugin-dqi","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:36:08.183959-08:00","updated_at":"2025-12-07T19:36:08.363064-08:00","closed_at":"2025-12-07T19:36:08.363064-08:00"}
|
|
792
795
|
{"id":"opencode-swarm-plugin-dqi.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:08.217008-08:00","updated_at":"2025-12-07T19:36:08.292055-08:00","closed_at":"2025-12-07T19:36:08.292055-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-dqi.1","depends_on_id":"opencode-swarm-plugin-dqi","type":"parent-child","created_at":"2025-12-07T19:36:08.217302-08:00","created_by":"daemon"}]}
|
|
@@ -853,7 +856,7 @@
|
|
|
853
856
|
{"id":"opencode-swarm-plugin-evr9p.3","title":"Deduplicate YAML parser in scripts","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T21:14:02.144137-08:00","updated_at":"2025-12-12T21:19:54.453324-08:00","closed_at":"2025-12-12T21:19:54.453324-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-evr9p.3","depends_on_id":"opencode-swarm-plugin-evr9p","type":"parent-child","created_at":"2025-12-12T21:14:02.145641-08:00","created_by":"daemon"}]}
|
|
854
857
|
{"id":"opencode-swarm-plugin-evr9p.4","title":"Improve global-skills quality","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-12T21:14:02.192572-08:00","updated_at":"2025-12-12T21:22:50.299557-08:00","closed_at":"2025-12-12T21:22:50.299557-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-evr9p.4","depends_on_id":"opencode-swarm-plugin-evr9p","type":"parent-child","created_at":"2025-12-12T21:14:02.19349-08:00","created_by":"daemon"}]}
|
|
855
858
|
{"id":"opencode-swarm-plugin-ewj","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:07.981146-08:00","updated_at":"2025-12-07T19:36:09.265125-08:00","closed_at":"2025-12-07T19:36:09.265125-08:00"}
|
|
856
|
-
{"id":"opencode-swarm-plugin-ewrdy","title":"Document bead ID regex pattern meaning","description":"src/schemas/bead.ts:45 - Regex pattern `/^[a-z0-9]+(-[a-z0-9]+)+(\\.\\d+)?$/` is not explained. Add inline comment explaining: \"project-slug-hash format (e.g., 'my-project-abc12') with optional subtask index (.1, .2)\"","status":"
|
|
859
|
+
{"id":"opencode-swarm-plugin-ewrdy","title":"Document bead ID regex pattern meaning","description":"src/schemas/bead.ts:45 - Regex pattern `/^[a-z0-9]+(-[a-z0-9]+)+(\\.\\d+)?$/` is not explained. Add inline comment explaining: \"project-slug-hash format (e.g., 'my-project-abc12') with optional subtask index (.1, .2)\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:06.693646-08:00","updated_at":"2025-12-13T16:48:09.415056-08:00","closed_at":"2025-12-13T16:48:09.415056-08:00"}
|
|
857
860
|
{"id":"opencode-swarm-plugin-ezaw","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-08T11:11:22.419192-08:00","updated_at":"2025-12-08T11:11:25.235336-08:00","closed_at":"2025-12-08T11:11:25.235336-08:00"}
|
|
858
861
|
{"id":"opencode-swarm-plugin-f1qn","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:12.33332-08:00","updated_at":"2025-12-07T19:41:14.106583-08:00","closed_at":"2025-12-07T19:41:14.106583-08:00"}
|
|
859
862
|
{"id":"opencode-swarm-plugin-f1wl","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:23.050848-08:00","updated_at":"2025-12-08T11:11:25.59273-08:00","closed_at":"2025-12-08T11:11:25.59273-08:00"}
|
|
@@ -868,7 +871,7 @@
|
|
|
868
871
|
{"id":"opencode-swarm-plugin-f8553","title":"rate-limiter.ts:383-410 - Missing bound checks in checkWindow SQL queries","description":"rate-limiter.ts:383-410 - checkWindow SQL queries don't validate query result before accessing .count or .timestamp properties. If query fails or returns unexpected shape, undefined access occurs. Suggested fix: Add null checks and validation.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-10T09:06:22.687466-08:00","updated_at":"2025-12-10T11:58:24.449815-08:00","closed_at":"2025-12-10T11:58:24.449815-08:00"}
|
|
869
872
|
{"id":"opencode-swarm-plugin-f8em","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:55.57952-08:00","updated_at":"2025-12-08T08:56:58.050301-08:00","closed_at":"2025-12-08T08:56:58.050301-08:00"}
|
|
870
873
|
{"id":"opencode-swarm-plugin-f8u","title":"Update test bead","description":"Blocked on dependency","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-07T19:37:34.46912-08:00","updated_at":"2025-12-07T19:37:36.362352-08:00","closed_at":"2025-12-07T19:37:36.362352-08:00"}
|
|
871
|
-
{"id":"opencode-swarm-plugin-f9u7d","title":"Gap: No connection timeout or query timeout","description":"src/streams/index.ts:68 - PGLite instance created with no timeout configuration. Long-running queries could hang indefinitely. Should configure: query timeout (e.g., 30s), statement timeout, connection timeout. PGLite may support options in constructor - check docs. Also: add timeout wrapper around critical operations for fail-fast behavior.","status":"
|
|
874
|
+
{"id":"opencode-swarm-plugin-f9u7d","title":"Gap: No connection timeout or query timeout","description":"src/streams/index.ts:68 - PGLite instance created with no timeout configuration. Long-running queries could hang indefinitely. Should configure: query timeout (e.g., 30s), statement timeout, connection timeout. PGLite may support options in constructor - check docs. Also: add timeout wrapper around critical operations for fail-fast behavior.","status":"closed","priority":2,"issue_type":"chore","created_at":"2025-12-13T09:25:17.064162-08:00","updated_at":"2025-12-13T16:06:35.828834-08:00","closed_at":"2025-12-13T16:06:35.828834-08:00"}
|
|
872
875
|
{"id":"opencode-swarm-plugin-facfz","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:20:46.952066-08:00","updated_at":"2025-12-13T11:20:51.328037-08:00","closed_at":"2025-12-13T11:20:51.328037-08:00"}
|
|
873
876
|
{"id":"opencode-swarm-plugin-faza","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:27.215365-08:00","updated_at":"2025-12-08T11:12:28.812764-08:00","closed_at":"2025-12-08T11:12:28.812764-08:00"}
|
|
874
877
|
{"id":"opencode-swarm-plugin-fb1d","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:42.650227-08:00","updated_at":"2025-12-07T19:56:44.803013-08:00","closed_at":"2025-12-07T19:56:44.803013-08:00"}
|
|
@@ -894,7 +897,7 @@
|
|
|
894
897
|
{"id":"opencode-swarm-plugin-fn2a3.3","title":"Create plugin wrapper template generator","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-09T12:44:59.511026-08:00","updated_at":"2025-12-09T12:52:13.47915-08:00","closed_at":"2025-12-09T12:52:13.47915-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-fn2a3.3","depends_on_id":"opencode-swarm-plugin-fn2a3","type":"parent-child","created_at":"2025-12-09T12:44:59.511712-08:00","created_by":"daemon"}]}
|
|
895
898
|
{"id":"opencode-swarm-plugin-fn2a3.4","title":"Update setup command to generate new plugin wrapper","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T12:44:59.559682-08:00","updated_at":"2025-12-09T12:53:13.282356-08:00","closed_at":"2025-12-09T12:53:13.282356-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-fn2a3.4","depends_on_id":"opencode-swarm-plugin-fn2a3","type":"parent-child","created_at":"2025-12-09T12:44:59.560036-08:00","created_by":"daemon"}]}
|
|
896
899
|
{"id":"opencode-swarm-plugin-fn2a3.5","title":"Export tool registry from source modules","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-09T12:44:59.609125-08:00","updated_at":"2025-12-09T12:46:18.092813-08:00","closed_at":"2025-12-09T12:46:18.092813-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-fn2a3.5","depends_on_id":"opencode-swarm-plugin-fn2a3","type":"parent-child","created_at":"2025-12-09T12:44:59.609492-08:00","created_by":"daemon"}]}
|
|
897
|
-
{"id":"opencode-swarm-plugin-fnup6","title":"Add timestamp field to EvaluationRequest","description":"src/schemas/evaluation.ts:77-82 - EvaluationRequestSchema missing timestamp field that other schemas have. Consider adding `.optional()` timestamp for tracking when evaluation was requested.","status":"
|
|
900
|
+
{"id":"opencode-swarm-plugin-fnup6","title":"Add timestamp field to EvaluationRequest","description":"src/schemas/evaluation.ts:77-82 - EvaluationRequestSchema missing timestamp field that other schemas have. Consider adding `.optional()` timestamp for tracking when evaluation was requested.","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:17.623103-08:00","updated_at":"2025-12-13T16:45:51.784813-08:00","closed_at":"2025-12-13T16:45:51.784813-08:00"}
|
|
898
901
|
{"id":"opencode-swarm-plugin-fo9z","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:43.635138-08:00","updated_at":"2025-12-08T07:53:46.190181-08:00","closed_at":"2025-12-08T07:53:46.190181-08:00"}
|
|
899
902
|
{"id":"opencode-swarm-plugin-foht","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-08T11:11:07.341455-08:00","updated_at":"2025-12-08T11:11:10.086863-08:00","closed_at":"2025-12-08T11:11:10.086863-08:00"}
|
|
900
903
|
{"id":"opencode-swarm-plugin-fomf","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:25.714274-08:00","updated_at":"2025-12-08T11:12:28.097683-08:00","closed_at":"2025-12-08T11:12:28.097683-08:00"}
|
|
@@ -916,7 +919,7 @@
|
|
|
916
919
|
{"id":"opencode-swarm-plugin-fw0sj.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:57.616248-08:00","updated_at":"2025-12-08T11:12:57.695802-08:00","closed_at":"2025-12-08T11:12:57.695802-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-fw0sj.1","depends_on_id":"opencode-swarm-plugin-fw0sj","type":"parent-child","created_at":"2025-12-08T11:12:57.616605-08:00","created_by":"daemon"}]}
|
|
917
920
|
{"id":"opencode-swarm-plugin-fw0sj.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:57.64759-08:00","updated_at":"2025-12-08T11:12:57.742226-08:00","closed_at":"2025-12-08T11:12:57.742226-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-fw0sj.2","depends_on_id":"opencode-swarm-plugin-fw0sj","type":"parent-child","created_at":"2025-12-08T11:12:57.6479-08:00","created_by":"daemon"}]}
|
|
918
921
|
{"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"}
|
|
919
|
-
{"id":"opencode-swarm-plugin-fwovc","title":"Add JSDoc to TaskDecomposition.reasoning field","description":"src/schemas/task.ts:59 - `reasoning` field has inline comment \"Why this decomposition\" but should be JSDoc for IDE tooltips. Add: \"/** Rationale for this decomposition strategy */\"","status":"
|
|
922
|
+
{"id":"opencode-swarm-plugin-fwovc","title":"Add JSDoc to TaskDecomposition.reasoning field","description":"src/schemas/task.ts:59 - `reasoning` field has inline comment \"Why this decomposition\" but should be JSDoc for IDE tooltips. Add: \"/** Rationale for this decomposition strategy */\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:25.735267-08:00","updated_at":"2025-12-13T16:45:49.106586-08:00","closed_at":"2025-12-13T16:45:49.106586-08:00"}
|
|
920
923
|
{"id":"opencode-swarm-plugin-fwtl","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-08T11:11:38.057567-08:00","updated_at":"2025-12-08T11:11:40.675781-08:00","closed_at":"2025-12-08T11:11:40.675781-08:00"}
|
|
921
924
|
{"id":"opencode-swarm-plugin-fxbr","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:12:26.678108-08:00","updated_at":"2025-12-08T11:12:28.511904-08:00","closed_at":"2025-12-08T11:12:28.511904-08:00"}
|
|
922
925
|
{"id":"opencode-swarm-plugin-fxbr.1","title":"Edit src/a.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:26.712588-08:00","updated_at":"2025-12-08T11:12:28.537154-08:00","closed_at":"2025-12-08T11:12:28.537154-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-fxbr.1","depends_on_id":"opencode-swarm-plugin-fxbr","type":"parent-child","created_at":"2025-12-08T11:12:26.712874-08:00","created_by":"daemon"}]}
|
|
@@ -993,7 +996,7 @@
|
|
|
993
996
|
{"id":"opencode-swarm-plugin-h1u","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:52.210601-08:00","updated_at":"2025-12-07T19:34:54.432701-08:00","closed_at":"2025-12-07T19:34:54.432701-08:00"}
|
|
994
997
|
{"id":"opencode-swarm-plugin-h2ban","title":"Gap: Memory leak potential in Map-based caching","description":"src/streams/index.ts:50,53 - instances and schemaInitialized Maps grow unbounded if many different projectPaths are used (e.g., scanning many repos). Should: implement LRU eviction, max cache size, or TTL for unused instances. Also: closeDatabase() is provided but nothing calls it automatically - consider idle timeout to auto-close.","status":"closed","priority":2,"issue_type":"chore","created_at":"2025-12-13T09:25:36.484187-08:00","updated_at":"2025-12-13T09:55:54.155264-08:00","closed_at":"2025-12-13T09:55:54.155264-08:00"}
|
|
995
998
|
{"id":"opencode-swarm-plugin-h2vh","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:25.457831-08:00","updated_at":"2025-12-08T11:10:27.67778-08:00","closed_at":"2025-12-08T11:10:27.67778-08:00"}
|
|
996
|
-
{"id":"opencode-swarm-plugin-h2wai","title":"Add JSDoc to fallbackBehaviors explaining usage","description":"src/tool-availability.ts:217-225 - fallbackBehaviors object lacks JSDoc. Add: \"/** Human-readable descriptions of graceful degradation behavior when tools are unavailable. Shown to users in warnings and tool status output. */\"","status":"
|
|
999
|
+
{"id":"opencode-swarm-plugin-h2wai","title":"Add JSDoc to fallbackBehaviors explaining usage","description":"src/tool-availability.ts:217-225 - fallbackBehaviors object lacks JSDoc. Add: \"/** Human-readable descriptions of graceful degradation behavior when tools are unavailable. Shown to users in warnings and tool status output. */\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:07:10.385729-08:00","updated_at":"2025-12-13T16:41:52.233653-08:00","closed_at":"2025-12-13T16:41:52.233653-08:00"}
|
|
997
1000
|
{"id":"opencode-swarm-plugin-h3hd","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T07:53:43.602181-08:00","updated_at":"2025-12-08T07:53:46.165814-08:00","closed_at":"2025-12-08T07:53:46.165814-08:00"}
|
|
998
1001
|
{"id":"opencode-swarm-plugin-h51i","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T07:46:51.097293-08:00","updated_at":"2025-12-08T07:46:51.315935-08:00","closed_at":"2025-12-08T07:46:51.315935-08:00"}
|
|
999
1002
|
{"id":"opencode-swarm-plugin-h51i.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:51.133344-08:00","updated_at":"2025-12-08T07:46:51.227943-08:00","closed_at":"2025-12-08T07:46:51.227943-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-h51i.1","depends_on_id":"opencode-swarm-plugin-h51i","type":"parent-child","created_at":"2025-12-08T07:46:51.133688-08:00","created_by":"daemon"}]}
|
|
@@ -1008,7 +1011,7 @@
|
|
|
1008
1011
|
{"id":"opencode-swarm-plugin-hbvv.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:26.977042-08:00","updated_at":"2025-12-08T11:10:27.082296-08:00","closed_at":"2025-12-08T11:10:27.082296-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-hbvv.2","depends_on_id":"opencode-swarm-plugin-hbvv","type":"parent-child","created_at":"2025-12-08T11:10:26.977472-08:00","created_by":"daemon"}]}
|
|
1009
1012
|
{"id":"opencode-swarm-plugin-hd81j","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:18:42.380734-08:00","updated_at":"2025-12-13T11:18:46.305204-08:00","closed_at":"2025-12-13T11:18:46.305204-08:00"}
|
|
1010
1013
|
{"id":"opencode-swarm-plugin-hejy","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:23.290114-08:00","updated_at":"2025-12-08T11:11:25.728542-08:00","closed_at":"2025-12-08T11:11:25.728542-08:00"}
|
|
1011
|
-
{"id":"opencode-swarm-plugin-helin","title":"Document subtask index in SubtaskDependency","description":"src/schemas/task.ts:46-47 - `from` and `to` fields say \"subtask index\" but don't clarify zero-based. Add: \"/** Zero-based subtask index */\"","status":"
|
|
1014
|
+
{"id":"opencode-swarm-plugin-helin","title":"Document subtask index in SubtaskDependency","description":"src/schemas/task.ts:46-47 - `from` and `to` fields say \"subtask index\" but don't clarify zero-based. Add: \"/** Zero-based subtask index */\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:24.053154-08:00","updated_at":"2025-12-13T16:45:48.648104-08:00","closed_at":"2025-12-13T16:45:48.648104-08:00"}
|
|
1012
1015
|
{"id":"opencode-swarm-plugin-hgks","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:28.769438-08:00","updated_at":"2025-12-08T08:14:31.115138-08:00","closed_at":"2025-12-08T08:14:31.115138-08:00"}
|
|
1013
1016
|
{"id":"opencode-swarm-plugin-hh5mf","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-13T11:16:37.463069-08:00","updated_at":"2025-12-13T11:16:40.618038-08:00","closed_at":"2025-12-13T11:16:40.618038-08:00"}
|
|
1014
1017
|
{"id":"opencode-swarm-plugin-hh5mf.1","title":"Edit src/a.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:16:37.516054-08:00","updated_at":"2025-12-13T11:16:40.663289-08:00","closed_at":"2025-12-13T11:16:40.663289-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-hh5mf.1","depends_on_id":"opencode-swarm-plugin-hh5mf","type":"parent-child","created_at":"2025-12-13T11:16:37.516849-08:00","created_by":"daemon"}]}
|
|
@@ -1040,7 +1043,7 @@
|
|
|
1040
1043
|
{"id":"opencode-swarm-plugin-hwkw","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:21:27.977487-08:00","updated_at":"2025-12-08T08:21:30.235317-08:00","closed_at":"2025-12-08T08:21:30.235317-08:00"}
|
|
1041
1044
|
{"id":"opencode-swarm-plugin-hxjpi","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-10T09:08:31.67785-08:00","updated_at":"2025-12-10T09:08:35.265628-08:00","closed_at":"2025-12-10T09:08:35.265628-08:00"}
|
|
1042
1045
|
{"id":"opencode-swarm-plugin-hygj","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:17.054995-08:00","updated_at":"2025-12-08T08:22:19.388286-08:00","closed_at":"2025-12-08T08:22:19.388286-08:00"}
|
|
1043
|
-
{"id":"opencode-swarm-plugin-hyj89","title":"Add module-level JSDoc to structured.ts","description":"src/structured.ts:1-12 - Good module doc but missing usage guidance. Add: \"Usage: 1) structured_extract_json for raw extraction, 2) structured_validate for schema validation, 3) structured_parse_* for typed parsing\"","status":"
|
|
1046
|
+
{"id":"opencode-swarm-plugin-hyj89","title":"Add module-level JSDoc to structured.ts","description":"src/structured.ts:1-12 - Good module doc but missing usage guidance. Add: \"Usage: 1) structured_extract_json for raw extraction, 2) structured_validate for schema validation, 3) structured_parse_* for typed parsing\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:36.497225-08:00","updated_at":"2025-12-13T16:45:42.956445-08:00","closed_at":"2025-12-13T16:45:42.956445-08:00"}
|
|
1044
1047
|
{"id":"opencode-swarm-plugin-i04xf","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-10T09:08:31.916345-08:00","updated_at":"2025-12-10T09:08:35.373271-08:00","closed_at":"2025-12-10T09:08:35.373271-08:00"}
|
|
1045
1048
|
{"id":"opencode-swarm-plugin-i1ef","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-07T19:39:29.83577-08:00","updated_at":"2025-12-07T19:39:31.515373-08:00","closed_at":"2025-12-07T19:39:31.515373-08:00"}
|
|
1046
1049
|
{"id":"opencode-swarm-plugin-i2pf","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:39:30.024399-08:00","updated_at":"2025-12-07T19:39:31.62471-08:00","closed_at":"2025-12-07T19:39:31.62471-08:00"}
|
|
@@ -1048,7 +1051,7 @@
|
|
|
1048
1051
|
{"id":"opencode-swarm-plugin-i3xt","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:50.858823-08:00","updated_at":"2025-12-08T07:46:52.507243-08:00","closed_at":"2025-12-08T07:46:52.507243-08:00"}
|
|
1049
1052
|
{"id":"opencode-swarm-plugin-i41","title":"Limit test bead 0","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:34.076515-08:00","updated_at":"2025-12-07T19:37:36.161986-08:00","closed_at":"2025-12-07T19:37:36.161986-08:00"}
|
|
1050
1053
|
{"id":"opencode-swarm-plugin-i5nrg","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:55.519759-08:00","updated_at":"2025-12-08T11:12:58.065517-08:00","closed_at":"2025-12-08T11:12:58.065517-08:00"}
|
|
1051
|
-
{"id":"opencode-swarm-plugin-i6dpl","title":"Add usage example to resetToolCache JSDoc","description":"src/tool-availability.ts:369-372 - resetToolCache says \"for testing\" but doesn't explain when else to use. Add: \"/** Reset tool cache. Use in tests, or when tool availability may have changed (e.g., after installing a tool). */\"","status":"
|
|
1054
|
+
{"id":"opencode-swarm-plugin-i6dpl","title":"Add usage example to resetToolCache JSDoc","description":"src/tool-availability.ts:369-372 - resetToolCache says \"for testing\" but doesn't explain when else to use. Add: \"/** Reset tool cache. Use in tests, or when tool availability may have changed (e.g., after installing a tool). */\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:07:13.17266-08:00","updated_at":"2025-12-13T16:41:53.358205-08:00","closed_at":"2025-12-13T16:41:53.358205-08:00"}
|
|
1052
1055
|
{"id":"opencode-swarm-plugin-i6odv","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-10T09:06:05.747258-08:00","updated_at":"2025-12-10T09:06:09.673753-08:00","closed_at":"2025-12-10T09:06:09.673753-08:00"}
|
|
1053
1056
|
{"id":"opencode-swarm-plugin-i7yl2","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:12:56.80513-08:00","updated_at":"2025-12-08T11:12:58.656807-08:00","closed_at":"2025-12-08T11:12:58.656807-08:00"}
|
|
1054
1057
|
{"id":"opencode-swarm-plugin-i7yl2.1","title":"Only task","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-08T11:12:56.835116-08:00","updated_at":"2025-12-08T11:12:58.68216-08:00","closed_at":"2025-12-08T11:12:58.68216-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-i7yl2.1","depends_on_id":"opencode-swarm-plugin-i7yl2","type":"parent-child","created_at":"2025-12-08T11:12:56.835409-08:00","created_by":"daemon"}]}
|
|
@@ -1066,12 +1069,12 @@
|
|
|
1066
1069
|
{"id":"opencode-swarm-plugin-idou.3","title":"Third","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:07.186768-08:00","updated_at":"2025-12-07T19:57:08.865323-08:00","closed_at":"2025-12-07T19:57:08.865323-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-idou.3","depends_on_id":"opencode-swarm-plugin-idou","type":"parent-child","created_at":"2025-12-07T19:57:07.187083-08:00","created_by":"daemon"}]}
|
|
1067
1070
|
{"id":"opencode-swarm-plugin-idou.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:07.218669-08:00","updated_at":"2025-12-07T19:57:08.887737-08:00","closed_at":"2025-12-07T19:57:08.887737-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-idou.4","depends_on_id":"opencode-swarm-plugin-idou","type":"parent-child","created_at":"2025-12-07T19:57:07.222363-08:00","created_by":"daemon"}]}
|
|
1068
1071
|
{"id":"opencode-swarm-plugin-idz7","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:24.61777-08:00","updated_at":"2025-12-08T11:11:26.259353-08:00","closed_at":"2025-12-08T11:11:26.259353-08:00"}
|
|
1069
|
-
{"id":"opencode-swarm-plugin-ierlm","title":"Simplify double destructuring in structured_parse_evaluation","description":"src/structured.ts:444 - `(v as { passed: boolean }).passed` type assertion is verbose. Since we've validated with EvaluationSchema, use type guard or cast validated earlier: `const criterion = v as CriterionEvaluation; criterion.passed`","status":"
|
|
1072
|
+
{"id":"opencode-swarm-plugin-ierlm","title":"Simplify double destructuring in structured_parse_evaluation","description":"src/structured.ts:444 - `(v as { passed: boolean }).passed` type assertion is verbose. Since we've validated with EvaluationSchema, use type guard or cast validated earlier: `const criterion = v as CriterionEvaluation; criterion.passed`","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:57.069749-08:00","updated_at":"2025-12-13T16:45:47.110329-08:00","closed_at":"2025-12-13T16:45:47.110329-08:00"}
|
|
1070
1073
|
{"id":"opencode-swarm-plugin-if1q","title":"Integration test epic","description":"Testing epic creation","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:14:29.562596-08:00","updated_at":"2025-12-08T08:14:31.381744-08:00","closed_at":"2025-12-08T08:14:31.381744-08:00"}
|
|
1071
1074
|
{"id":"opencode-swarm-plugin-if1q.1","title":"Subtask 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:29.594846-08:00","updated_at":"2025-12-08T08:14:31.404566-08:00","closed_at":"2025-12-08T08:14:31.404566-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-if1q.1","depends_on_id":"opencode-swarm-plugin-if1q","type":"parent-child","created_at":"2025-12-08T08:14:29.595146-08:00","created_by":"daemon"}]}
|
|
1072
1075
|
{"id":"opencode-swarm-plugin-if1q.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-08T08:14:29.624489-08:00","updated_at":"2025-12-08T08:14:31.42969-08:00","closed_at":"2025-12-08T08:14:31.42969-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-if1q.2","depends_on_id":"opencode-swarm-plugin-if1q","type":"parent-child","created_at":"2025-12-08T08:14:29.624781-08:00","created_by":"daemon"}]}
|
|
1073
1076
|
{"id":"opencode-swarm-plugin-if3v","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:53.346318-08:00","updated_at":"2025-12-08T11:10:55.820026-08:00","closed_at":"2025-12-08T11:10:55.820026-08:00"}
|
|
1074
|
-
{"id":"opencode-swarm-plugin-ifb8b","title":"Gap: Insufficient logging/observability","description":"src/streams/store.ts, agent-mail.ts - No logging for critical operations: event appends, materialized view updates, database errors, conflicts detected. Makes debugging production issues hard. Should add structured logging (console.error/warn at minimum) for: database connection errors, event append failures, projection update failures, conflict detection, reservation operations. Consider: log levels (info/warn/error), context fields (projectKey, agentName, eventType).","status":"
|
|
1077
|
+
{"id":"opencode-swarm-plugin-ifb8b","title":"Gap: Insufficient logging/observability","description":"src/streams/store.ts, agent-mail.ts - No logging for critical operations: event appends, materialized view updates, database errors, conflicts detected. Makes debugging production issues hard. Should add structured logging (console.error/warn at minimum) for: database connection errors, event append failures, projection update failures, conflict detection, reservation operations. Consider: log levels (info/warn/error), context fields (projectKey, agentName, eventType).","status":"closed","priority":2,"issue_type":"chore","created_at":"2025-12-13T09:25:07.066447-08:00","updated_at":"2025-12-13T16:06:34.32075-08:00","closed_at":"2025-12-13T16:06:34.32075-08:00"}
|
|
1075
1078
|
{"id":"opencode-swarm-plugin-ihjia","title":"Update test bead","description":"Blocked on dependency","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T14:48:41.498669-08:00","updated_at":"2025-12-13T14:48:45.245218-08:00","closed_at":"2025-12-13T14:48:45.245218-08:00"}
|
|
1076
1079
|
{"id":"opencode-swarm-plugin-ijyv","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:56:56.579396-08:00","updated_at":"2025-12-08T08:56:58.480064-08:00","closed_at":"2025-12-08T08:56:58.480064-08:00"}
|
|
1077
1080
|
{"id":"opencode-swarm-plugin-ijyv.2","title":"Edit src/b.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:56.641855-08:00","updated_at":"2025-12-08T08:56:58.530793-08:00","closed_at":"2025-12-08T08:56:58.530793-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-ijyv.2","depends_on_id":"opencode-swarm-plugin-ijyv","type":"parent-child","created_at":"2025-12-08T08:56:56.642441-08:00","created_by":"daemon"}]}
|
|
@@ -1144,20 +1147,20 @@
|
|
|
1144
1147
|
{"id":"opencode-swarm-plugin-k8d","title":"Docker integration test infrastructure","description":"Create Docker-based integration test environment with real beads CLI and Agent Mail server for testing all plugin modules without mocks","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:24:22.198656-08:00","updated_at":"2025-12-08T08:35:24.03232-08:00","closed_at":"2025-12-08T08:35:24.03232-08:00"}
|
|
1145
1148
|
{"id":"opencode-swarm-plugin-k93","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-07T19:39:10.444177-08:00","updated_at":"2025-12-07T19:39:12.109004-08:00","closed_at":"2025-12-07T19:39:12.109004-08:00"}
|
|
1146
1149
|
{"id":"opencode-swarm-plugin-k96p","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:08.442437-08:00","updated_at":"2025-12-08T11:11:10.936726-08:00","closed_at":"2025-12-08T11:11:10.936726-08:00"}
|
|
1147
|
-
{"id":"opencode-swarm-plugin-k9jxm","title":"Extract magic number 9 to constant in recordPatternObservation","description":"src/anti-patterns.ts:189 - `.slice(-9)` to keep last 10 examples (9 + new = 10) is not obvious. Extract to constant: `const MAX_EXAMPLE_BEADS = 10;` and use `slice(-(MAX_EXAMPLE_BEADS - 1))`","status":"
|
|
1150
|
+
{"id":"opencode-swarm-plugin-k9jxm","title":"Extract magic number 9 to constant in recordPatternObservation","description":"src/anti-patterns.ts:189 - `.slice(-9)` to keep last 10 examples (9 + new = 10) is not obvious. Extract to constant: `const MAX_EXAMPLE_BEADS = 10;` and use `slice(-(MAX_EXAMPLE_BEADS - 1))`","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:07:19.594675-08:00","updated_at":"2025-12-13T16:41:54.755714-08:00","closed_at":"2025-12-13T16:41:54.755714-08:00"}
|
|
1148
1151
|
{"id":"opencode-swarm-plugin-kaj5o","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T11:12:55.432953-08:00","updated_at":"2025-12-08T11:12:57.998991-08:00","closed_at":"2025-12-08T11:12:57.998991-08:00"}
|
|
1149
1152
|
{"id":"opencode-swarm-plugin-kci6","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:44.191794-08:00","updated_at":"2025-12-08T07:53:46.477523-08:00","closed_at":"2025-12-08T07:53:46.477523-08:00"}
|
|
1150
1153
|
{"id":"opencode-swarm-plugin-kcm4","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:16.997856-08:00","updated_at":"2025-12-08T08:22:19.364091-08:00","closed_at":"2025-12-08T08:22:19.364091-08:00"}
|
|
1151
1154
|
{"id":"opencode-swarm-plugin-ke2","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:53.703355-08:00","updated_at":"2025-12-07T19:34:55.270106-08:00","closed_at":"2025-12-07T19:34:55.270106-08:00"}
|
|
1152
1155
|
{"id":"opencode-swarm-plugin-ke73t","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:16:38.210712-08:00","updated_at":"2025-12-13T11:16:41.094483-08:00","closed_at":"2025-12-13T11:16:41.094483-08:00"}
|
|
1153
|
-
{"id":"opencode-swarm-plugin-kg04n","title":"Production-Ready Swarm Mail + Skills Integration","description":"Fix 18 production readiness gaps in Swarm Mail (error handling, race conditions, logging, timeouts, pagination, cleanup) and update CLI prompts/templates to leverage global skills effectively","status":"
|
|
1156
|
+
{"id":"opencode-swarm-plugin-kg04n","title":"Production-Ready Swarm Mail + Skills Integration","description":"Fix 18 production readiness gaps in Swarm Mail (error handling, race conditions, logging, timeouts, pagination, cleanup) and update CLI prompts/templates to leverage global skills effectively","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-13T09:50:37.986193-08:00","updated_at":"2025-12-13T16:45:57.642789-08:00","closed_at":"2025-12-13T16:45:57.642789-08:00"}
|
|
1154
1157
|
{"id":"opencode-swarm-plugin-kg04n.1","title":"Fix database singleton: error handling, race condition, process exit handlers","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T09:50:38.047239-08:00","updated_at":"2025-12-13T10:00:16.730133-08:00","closed_at":"2025-12-13T10:00:16.730133-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-kg04n.1","depends_on_id":"opencode-swarm-plugin-kg04n","type":"parent-child","created_at":"2025-12-13T09:50:38.048675-08:00","created_by":"daemon"}]}
|
|
1155
1158
|
{"id":"opencode-swarm-plugin-kg04n.2","title":"Fix store.ts: transaction rollback, N+1 queries, pagination","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T09:50:38.103935-08:00","updated_at":"2025-12-13T15:59:41.133577-08:00","closed_at":"2025-12-13T15:59:41.133577-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-kg04n.2","depends_on_id":"opencode-swarm-plugin-kg04n","type":"parent-child","created_at":"2025-12-13T09:50:38.105771-08:00","created_by":"daemon"}]}
|
|
1156
1159
|
{"id":"opencode-swarm-plugin-kg04n.3","title":"Add logging, timeouts, and reservation cleanup","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T09:50:38.162535-08:00","updated_at":"2025-12-13T15:59:41.674936-08:00","closed_at":"2025-12-13T15:59:41.674936-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-kg04n.3","depends_on_id":"opencode-swarm-plugin-kg04n","type":"parent-child","created_at":"2025-12-13T09:50:38.163973-08:00","created_by":"daemon"}]}
|
|
1157
|
-
{"id":"opencode-swarm-plugin-kg04n.4","title":"Add schema migration system","description":"","status":"
|
|
1158
|
-
{"id":"opencode-swarm-plugin-kg04n.5","title":"Add performance monitoring and thread safety docs","description":"","status":"
|
|
1160
|
+
{"id":"opencode-swarm-plugin-kg04n.4","title":"Add schema migration system","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T09:50:38.223066-08:00","updated_at":"2025-12-13T16:45:52.324654-08:00","closed_at":"2025-12-13T16:45:52.324654-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-kg04n.4","depends_on_id":"opencode-swarm-plugin-kg04n","type":"parent-child","created_at":"2025-12-13T09:50:38.224391-08:00","created_by":"daemon"}]}
|
|
1161
|
+
{"id":"opencode-swarm-plugin-kg04n.5","title":"Add performance monitoring and thread safety docs","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T09:50:38.282357-08:00","updated_at":"2025-12-13T16:41:58.122669-08:00","closed_at":"2025-12-13T16:41:58.122669-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-kg04n.5","depends_on_id":"opencode-swarm-plugin-kg04n","type":"parent-child","created_at":"2025-12-13T09:50:38.283586-08:00","created_by":"daemon"}]}
|
|
1159
1162
|
{"id":"opencode-swarm-plugin-kg04n.6","title":"Update CLI prompts to leverage global skills","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T09:50:38.335876-08:00","updated_at":"2025-12-13T09:54:29.523416-08:00","closed_at":"2025-12-13T09:54:29.523416-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-kg04n.6","depends_on_id":"opencode-swarm-plugin-kg04n","type":"parent-child","created_at":"2025-12-13T09:50:38.336793-08:00","created_by":"daemon"}]}
|
|
1160
|
-
{"id":"opencode-swarm-plugin-kg04n.7","title":"Document MCP migration path and update README","description":"","status":"
|
|
1163
|
+
{"id":"opencode-swarm-plugin-kg04n.7","title":"Document MCP migration path and update README","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-13T09:50:38.389891-08:00","updated_at":"2025-12-13T16:41:59.947546-08:00","closed_at":"2025-12-13T16:41:59.947546-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-kg04n.7","depends_on_id":"opencode-swarm-plugin-kg04n","type":"parent-child","created_at":"2025-12-13T09:50:38.391664-08:00","created_by":"daemon"}]}
|
|
1161
1164
|
{"id":"opencode-swarm-plugin-kgj","title":"Update test bead","description":"Blocked on dependency","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-07T19:36:06.845975-08:00","updated_at":"2025-12-07T19:36:08.783931-08:00","closed_at":"2025-12-07T19:36:08.783931-08:00"}
|
|
1162
1165
|
{"id":"opencode-swarm-plugin-kgre1","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-10T09:06:07.299289-08:00","updated_at":"2025-12-10T09:06:10.298015-08:00","closed_at":"2025-12-10T09:06:10.298015-08:00"}
|
|
1163
1166
|
{"id":"opencode-swarm-plugin-kh6l","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:36:18.341237-08:00","updated_at":"2025-12-08T08:36:19.969457-08:00","closed_at":"2025-12-08T08:36:19.969457-08:00"}
|
|
@@ -1175,7 +1178,7 @@
|
|
|
1175
1178
|
{"id":"opencode-swarm-plugin-knh71.2","title":"Subtask 2","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-13T11:20:48.424697-08:00","updated_at":"2025-12-13T11:20:51.935658-08:00","closed_at":"2025-12-13T11:20:51.935658-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-knh71.2","depends_on_id":"opencode-swarm-plugin-knh71","type":"parent-child","created_at":"2025-12-13T11:20:48.4254-08:00","created_by":"daemon"}]}
|
|
1176
1179
|
{"id":"opencode-swarm-plugin-knh71.3","title":"Subtask 3","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T11:20:48.479193-08:00","updated_at":"2025-12-13T11:20:51.973575-08:00","closed_at":"2025-12-13T11:20:51.973575-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-knh71.3","depends_on_id":"opencode-swarm-plugin-knh71","type":"parent-child","created_at":"2025-12-13T11:20:48.479959-08:00","created_by":"daemon"}]}
|
|
1177
1180
|
{"id":"opencode-swarm-plugin-kptb","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-07T19:41:10.637373-08:00","updated_at":"2025-12-07T19:41:13.253191-08:00","closed_at":"2025-12-07T19:41:13.253191-08:00"}
|
|
1178
|
-
{"id":"opencode-swarm-plugin-kr0ue","title":"Document shared_context usage pattern","description":"src/schemas/task.ts:62 - `shared_context` field comment \"Context to pass to all agents\" is vague. Add example: \"/** Shared context for all agents (e.g., API contracts, shared types, project conventions) */\"","status":"
|
|
1181
|
+
{"id":"opencode-swarm-plugin-kr0ue","title":"Document shared_context usage pattern","description":"src/schemas/task.ts:62 - `shared_context` field comment \"Context to pass to all agents\" is vague. Add example: \"/** Shared context for all agents (e.g., API contracts, shared types, project conventions) */\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:27.641899-08:00","updated_at":"2025-12-13T16:45:49.63414-08:00","closed_at":"2025-12-13T16:45:49.63414-08:00"}
|
|
1179
1182
|
{"id":"opencode-swarm-plugin-ksf8","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:22.941287-08:00","updated_at":"2025-12-08T11:11:25.542086-08:00","closed_at":"2025-12-08T11:11:25.542086-08:00"}
|
|
1180
1183
|
{"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"}
|
|
1181
1184
|
{"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"}
|
|
@@ -1193,7 +1196,7 @@
|
|
|
1193
1196
|
{"id":"opencode-swarm-plugin-l3hj","title":"Update test bead","description":"Blocked on dependency","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-07T19:56:43.04206-08:00","updated_at":"2025-12-07T19:56:45.007684-08:00","closed_at":"2025-12-07T19:56:45.007684-08:00"}
|
|
1194
1197
|
{"id":"opencode-swarm-plugin-l3zw","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:21:28.705221-08:00","updated_at":"2025-12-08T08:21:30.697066-08:00","closed_at":"2025-12-08T08:21:30.697066-08:00"}
|
|
1195
1198
|
{"id":"opencode-swarm-plugin-l436","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T08:21:27.649303-08:00","updated_at":"2025-12-08T08:21:30.152076-08:00","closed_at":"2025-12-08T08:21:30.152076-08:00"}
|
|
1196
|
-
{"id":"opencode-swarm-plugin-l5i5e","title":"Add validation message for datetime schema","description":"src/schemas/bead.ts:51-53 - datetime schemas have default Zod error messages. Add custom message: `.datetime({ offset: true, message: \"Must be ISO-8601 with timezone\" })`","status":"
|
|
1199
|
+
{"id":"opencode-swarm-plugin-l5i5e","title":"Add validation message for datetime schema","description":"src/schemas/bead.ts:51-53 - datetime schemas have default Zod error messages. Add custom message: `.datetime({ offset: true, message: \"Must be ISO-8601 with timezone\" })`","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:08.592079-08:00","updated_at":"2025-12-13T16:48:08.881079-08:00","closed_at":"2025-12-13T16:48:08.881079-08:00"}
|
|
1197
1200
|
{"id":"opencode-swarm-plugin-l5ya","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:25.338829-08:00","updated_at":"2025-12-08T11:12:27.840456-08:00","closed_at":"2025-12-08T11:12:27.840456-08:00"}
|
|
1198
1201
|
{"id":"opencode-swarm-plugin-l6ce","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:23.548007-08:00","updated_at":"2025-12-08T11:11:25.671739-08:00","closed_at":"2025-12-08T11:11:25.671739-08:00"}
|
|
1199
1202
|
{"id":"opencode-swarm-plugin-l78f","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:26.681415-08:00","updated_at":"2025-12-08T11:10:28.233685-08:00","closed_at":"2025-12-08T11:10:28.233685-08:00"}
|
|
@@ -1208,7 +1211,7 @@
|
|
|
1208
1211
|
{"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"}
|
|
1209
1212
|
{"id":"opencode-swarm-plugin-lifp9","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:20:47.300698-08:00","updated_at":"2025-12-13T11:20:51.556708-08:00","closed_at":"2025-12-13T11:20:51.556708-08:00"}
|
|
1210
1213
|
{"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"}
|
|
1211
|
-
{"id":"opencode-swarm-plugin-ljchj","title":"Add minimum observation threshold to formatMaturityForPrompt","description":"src/pattern-maturity.ts:337-354 - formatMaturityForPrompt shows percentages even for 1 observation (100% from 1 sample is misleading). Add check: if total \u0026lt; 3, show \"Limited data (N observations)\" instead of percentages.","status":"
|
|
1214
|
+
{"id":"opencode-swarm-plugin-ljchj","title":"Add minimum observation threshold to formatMaturityForPrompt","description":"src/pattern-maturity.ts:337-354 - formatMaturityForPrompt shows percentages even for 1 observation (100% from 1 sample is misleading). Add check: if total \u0026lt; 3, show \"Limited data (N observations)\" instead of percentages.","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:07:42.236056-08:00","updated_at":"2025-12-13T16:20:31.992553-08:00","closed_at":"2025-12-13T16:20:31.992553-08:00"}
|
|
1212
1215
|
{"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"}
|
|
1213
1216
|
{"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"}]}
|
|
1214
1217
|
{"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"}]}
|
|
@@ -1263,7 +1266,7 @@
|
|
|
1263
1266
|
{"id":"opencode-swarm-plugin-m945","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:23:18.494405-08:00","updated_at":"2025-12-08T08:23:20.338516-08:00","closed_at":"2025-12-08T08:23:20.338516-08:00"}
|
|
1264
1267
|
{"id":"opencode-swarm-plugin-m945.2","title":"Edit src/b.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:18.559296-08:00","updated_at":"2025-12-08T08:23:20.39017-08:00","closed_at":"2025-12-08T08:23:20.39017-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-m945.2","depends_on_id":"opencode-swarm-plugin-m945","type":"parent-child","created_at":"2025-12-08T08:23:18.559728-08:00","created_by":"daemon"}]}
|
|
1265
1268
|
{"id":"opencode-swarm-plugin-ma95","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T08:22:17.171295-08:00","updated_at":"2025-12-08T08:22:19.435433-08:00","closed_at":"2025-12-08T08:22:19.435433-08:00"}
|
|
1266
|
-
{"id":"opencode-swarm-plugin-manrh","title":"Gap: No performance monitoring or slow query logging","description":"All query operations - No timing instrumentation to detect slow queries. In production, you'd want to know which operations are taking \u003e1s. Should: add query timing wrapper, log slow queries (\u003e100ms threshold), emit metrics for appendEvent, readEvents, projection updates. Consider: performance.now() wrapper, histogram of query times, alerting on P99 latency.","status":"
|
|
1269
|
+
{"id":"opencode-swarm-plugin-manrh","title":"Gap: No performance monitoring or slow query logging","description":"All query operations - No timing instrumentation to detect slow queries. In production, you'd want to know which operations are taking \u003e1s. Should: add query timing wrapper, log slow queries (\u003e100ms threshold), emit metrics for appendEvent, readEvents, projection updates. Consider: performance.now() wrapper, histogram of query times, alerting on P99 latency.","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-13T09:25:32.95699-08:00","updated_at":"2025-12-13T16:41:59.389137-08:00","closed_at":"2025-12-13T16:41:59.389137-08:00"}
|
|
1267
1270
|
{"id":"opencode-swarm-plugin-mb56","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T08:22:17.82073-08:00","updated_at":"2025-12-08T08:22:19.66901-08:00","closed_at":"2025-12-08T08:22:19.66901-08:00"}
|
|
1268
1271
|
{"id":"opencode-swarm-plugin-mb56.2","title":"Edit src/b.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:17.890421-08:00","updated_at":"2025-12-08T08:22:19.723982-08:00","closed_at":"2025-12-08T08:22:19.723982-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-mb56.2","depends_on_id":"opencode-swarm-plugin-mb56","type":"parent-child","created_at":"2025-12-08T08:22:17.890835-08:00","created_by":"daemon"}]}
|
|
1269
1272
|
{"id":"opencode-swarm-plugin-mbkma","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-13T11:16:37.734961-08:00","updated_at":"2025-12-13T11:16:40.838801-08:00","closed_at":"2025-12-13T11:16:40.838801-08:00"}
|
|
@@ -1289,7 +1292,7 @@
|
|
|
1289
1292
|
{"id":"opencode-swarm-plugin-mo2a","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:23:17.537916-08:00","updated_at":"2025-12-08T08:23:19.944563-08:00","closed_at":"2025-12-08T08:23:19.944563-08:00"}
|
|
1290
1293
|
{"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"}
|
|
1291
1294
|
{"id":"opencode-swarm-plugin-mqd8n","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-10T09:07:22.208873-08:00","updated_at":"2025-12-10T09:07:25.655029-08:00","closed_at":"2025-12-10T09:07:25.655029-08:00"}
|
|
1292
|
-
{"id":"opencode-swarm-plugin-mqhmm","title":"Document extraction strategy priority order","description":"src/structured.ts:118-190 - extractJsonFromText tries 6 strategies but priority reasoning not documented. Add JSDoc: \"Strategies tried in order: 1) direct parse (fastest), 2-3) code blocks (common), 4-5) brace matching (resilient), 6) repair (last resort)\"","status":"
|
|
1295
|
+
{"id":"opencode-swarm-plugin-mqhmm","title":"Document extraction strategy priority order","description":"src/structured.ts:118-190 - extractJsonFromText tries 6 strategies but priority reasoning not documented. Add JSDoc: \"Strategies tried in order: 1) direct parse (fastest), 2-3) code blocks (common), 4-5) brace matching (resilient), 6) repair (last resort)\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:42.644422-08:00","updated_at":"2025-12-13T16:45:43.863641-08:00","closed_at":"2025-12-13T16:45:43.863641-08:00"}
|
|
1293
1296
|
{"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"}
|
|
1294
1297
|
{"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"}
|
|
1295
1298
|
{"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"}
|
|
@@ -1362,7 +1365,7 @@
|
|
|
1362
1365
|
{"id":"opencode-swarm-plugin-o6s","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-07T19:39:18.006147-08:00","updated_at":"2025-12-07T19:39:20.281664-08:00","closed_at":"2025-12-07T19:39:20.281664-08:00"}
|
|
1363
1366
|
{"id":"opencode-swarm-plugin-o7ab8","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:57.123784-08:00","updated_at":"2025-12-08T11:12:58.860702-08:00","closed_at":"2025-12-08T11:12:58.860702-08:00"}
|
|
1364
1367
|
{"id":"opencode-swarm-plugin-o7u8","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:16.889028-08:00","updated_at":"2025-12-08T08:22:19.315049-08:00","closed_at":"2025-12-08T08:22:19.315049-08:00"}
|
|
1365
|
-
{"id":"opencode-swarm-plugin-o8i7h","title":"Extract magic number 200 to constant in structured.ts","description":"src/structured.ts:329 - Magic number 200 for preview length. Extract to constant: `const RAW_INPUT_PREVIEW_LENGTH = 200;` and use it on lines 329, 380.","status":"
|
|
1368
|
+
{"id":"opencode-swarm-plugin-o8i7h","title":"Extract magic number 200 to constant in structured.ts","description":"src/structured.ts:329 - Magic number 200 for preview length. Extract to constant: `const RAW_INPUT_PREVIEW_LENGTH = 200;` and use it on lines 329, 380.","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:49.829007-08:00","updated_at":"2025-12-13T16:45:45.52985-08:00","closed_at":"2025-12-13T16:45:45.52985-08:00"}
|
|
1366
1369
|
{"id":"opencode-swarm-plugin-o8rvk","title":"Lifecycle test bead","description":"50% complete","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T14:48:43.757273-08:00","updated_at":"2025-12-13T14:48:43.885987-08:00","closed_at":"2025-12-13T14:48:43.885987-08:00"}
|
|
1367
1370
|
{"id":"opencode-swarm-plugin-o971j","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:18:41.364171-08:00","updated_at":"2025-12-13T11:18:45.726564-08:00","closed_at":"2025-12-13T11:18:45.726564-08:00"}
|
|
1368
1371
|
{"id":"opencode-swarm-plugin-oa82","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:53.435018-08:00","updated_at":"2025-12-08T11:10:55.847654-08:00","closed_at":"2025-12-08T11:10:55.847654-08:00"}
|
|
@@ -1438,12 +1441,12 @@
|
|
|
1438
1441
|
{"id":"opencode-swarm-plugin-pk6.2","title":"Second","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:35.19197-08:00","updated_at":"2025-12-07T19:37:36.687027-08:00","closed_at":"2025-12-07T19:37:36.687027-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-pk6.2","depends_on_id":"opencode-swarm-plugin-pk6","type":"parent-child","created_at":"2025-12-07T19:37:35.192252-08:00","created_by":"daemon"}]}
|
|
1439
1442
|
{"id":"opencode-swarm-plugin-pk6.3","title":"Third","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:35.219292-08:00","updated_at":"2025-12-07T19:37:36.708239-08:00","closed_at":"2025-12-07T19:37:36.708239-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-pk6.3","depends_on_id":"opencode-swarm-plugin-pk6","type":"parent-child","created_at":"2025-12-07T19:37:35.219606-08:00","created_by":"daemon"}]}
|
|
1440
1443
|
{"id":"opencode-swarm-plugin-pk6.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:37:35.24747-08:00","updated_at":"2025-12-07T19:37:36.729939-08:00","closed_at":"2025-12-07T19:37:36.729939-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-pk6.4","depends_on_id":"opencode-swarm-plugin-pk6","type":"parent-child","created_at":"2025-12-07T19:37:35.247773-08:00","created_by":"daemon"}]}
|
|
1441
|
-
{"id":"opencode-swarm-plugin-pkguj","title":"Document PatternKind vs is_negative field relationship","description":"src/anti-patterns.ts:32-35 - DecompositionPatternSchema has both `kind: \"anti_pattern\"` and `is_negative: true` which seem redundant. Add JSDoc clarifying: \"/** kind tracks pattern lifecycle (pattern→anti_pattern), is_negative is a derived boolean flag for quick filtering */\"","status":"
|
|
1444
|
+
{"id":"opencode-swarm-plugin-pkguj","title":"Document PatternKind vs is_negative field relationship","description":"src/anti-patterns.ts:32-35 - DecompositionPatternSchema has both `kind: \"anti_pattern\"` and `is_negative: true` which seem redundant. Add JSDoc clarifying: \"/** kind tracks pattern lifecycle (pattern→anti_pattern), is_negative is a derived boolean flag for quick filtering */\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:07:16.47239-08:00","updated_at":"2025-12-13T16:41:54.120691-08:00","closed_at":"2025-12-13T16:41:54.120691-08:00"}
|
|
1442
1445
|
{"id":"opencode-swarm-plugin-pne89","title":"Bead to start","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-09T10:00:23.415605-08:00","updated_at":"2025-12-09T10:00:26.122015-08:00","closed_at":"2025-12-09T10:00:26.122015-08:00"}
|
|
1443
1446
|
{"id":"opencode-swarm-plugin-pnzl","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:08.062458-08:00","updated_at":"2025-12-08T11:11:10.417441-08:00","closed_at":"2025-12-08T11:11:10.417441-08:00"}
|
|
1444
1447
|
{"id":"opencode-swarm-plugin-po6t","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:11.036931-08:00","updated_at":"2025-12-07T19:41:13.502931-08:00","closed_at":"2025-12-07T19:41:13.502931-08:00"}
|
|
1445
|
-
{"id":"opencode-swarm-plugin-poiyi","title":"Document EffortLevel time ranges in schema comment","description":"src/schemas/task.ts:12-17 - Time ranges only in inline comments. Move to JSDoc for better IDE support: \"/** Effort estimation: trivial (\u003c 5 min), small (5-30 min), medium (30 min - 2 hours), large (2+ hours) */\"","status":"
|
|
1446
|
-
{"id":"opencode-swarm-plugin-ppyaf","title":"Clarify dependencies default value behavior","description":"src/schemas/bead.ts:55 - `dependencies` uses `.optional().default([])` which is redundant - optional with default is always present. Change to just `.default([])` for clarity.","status":"
|
|
1448
|
+
{"id":"opencode-swarm-plugin-poiyi","title":"Document EffortLevel time ranges in schema comment","description":"src/schemas/task.ts:12-17 - Time ranges only in inline comments. Move to JSDoc for better IDE support: \"/** Effort estimation: trivial (\u003c 5 min), small (5-30 min), medium (30 min - 2 hours), large (2+ hours) */\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:20.198569-08:00","updated_at":"2025-12-13T16:45:47.639416-08:00","closed_at":"2025-12-13T16:45:47.639416-08:00"}
|
|
1449
|
+
{"id":"opencode-swarm-plugin-ppyaf","title":"Clarify dependencies default value behavior","description":"src/schemas/bead.ts:55 - `dependencies` uses `.optional().default([])` which is redundant - optional with default is always present. Change to just `.default([])` for clarity.","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:09.341547-08:00","updated_at":"2025-12-13T16:48:08.412935-08:00","closed_at":"2025-12-13T16:48:08.412935-08:00"}
|
|
1447
1450
|
{"id":"opencode-swarm-plugin-pqe1f","title":"agent-mail.ts:122-131 - Non-atomic session state save","description":"agent-mail.ts:122-131 - saveSessionState() writes directly to target file without atomic write-then-rename pattern. Could corrupt state if process crashes mid-write. Suggested fix: Write to temp file, then rename atomically.","status":"closed","priority":2,"issue_type":"bug","created_at":"2025-12-10T09:06:01.116799-08:00","updated_at":"2025-12-13T08:52:55.939004-08:00","closed_at":"2025-12-13T08:52:55.939004-08:00"}
|
|
1448
1451
|
{"id":"opencode-swarm-plugin-pqrsv","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:18:44.21406-08:00","updated_at":"2025-12-13T11:18:47.262919-08:00","closed_at":"2025-12-13T11:18:47.262919-08:00"}
|
|
1449
1452
|
{"id":"opencode-swarm-plugin-prx0","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:22.332649-08:00","updated_at":"2025-12-08T11:11:25.183868-08:00","closed_at":"2025-12-08T11:11:25.183868-08:00"}
|
|
@@ -1472,17 +1475,17 @@
|
|
|
1472
1475
|
{"id":"opencode-swarm-plugin-qayj","title":"Workflow test epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:41:12.931142-08:00","updated_at":"2025-12-07T19:41:13.125635-08:00","closed_at":"2025-12-07T19:41:13.125635-08:00"}
|
|
1473
1476
|
{"id":"opencode-swarm-plugin-qayj.1","title":"Step 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:12.964246-08:00","updated_at":"2025-12-07T19:41:13.053518-08:00","closed_at":"2025-12-07T19:41:13.053518-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-qayj.1","depends_on_id":"opencode-swarm-plugin-qayj","type":"parent-child","created_at":"2025-12-07T19:41:12.964549-08:00","created_by":"daemon"}]}
|
|
1474
1477
|
{"id":"opencode-swarm-plugin-qayj.2","title":"Step 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:12.999044-08:00","updated_at":"2025-12-07T19:41:13.103098-08:00","closed_at":"2025-12-07T19:41:13.103098-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-qayj.2","depends_on_id":"opencode-swarm-plugin-qayj","type":"parent-child","created_at":"2025-12-07T19:41:12.99937-08:00","created_by":"daemon"}]}
|
|
1475
|
-
{"id":"opencode-swarm-plugin-qb5pt","title":"Document weight field decay semantics","description":"src/schemas/evaluation.ts:34-35 - weight comment \"lower = less reliable\" could be more specific. Change to: \"/** Current weight after 90-day half-life decay (0-1, 1=recent/validated, 0=old/unreliable) */\"","status":"
|
|
1478
|
+
{"id":"opencode-swarm-plugin-qb5pt","title":"Document weight field decay semantics","description":"src/schemas/evaluation.ts:34-35 - weight comment \"lower = less reliable\" could be more specific. Change to: \"/** Current weight after 90-day half-life decay (0-1, 1=recent/validated, 0=old/unreliable) */\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:15.949005-08:00","updated_at":"2025-12-13T16:48:06.823057-08:00","closed_at":"2025-12-13T16:48:06.823057-08:00"}
|
|
1476
1479
|
{"id":"opencode-swarm-plugin-qcf4","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:16.554185-08:00","updated_at":"2025-12-08T08:22:19.137592-08:00","closed_at":"2025-12-08T08:22:19.137592-08:00"}
|
|
1477
1480
|
{"id":"opencode-swarm-plugin-qfjv","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:33.26168-08:00","updated_at":"2025-12-08T08:05:35.508416-08:00","closed_at":"2025-12-08T08:05:35.508416-08:00"}
|
|
1478
1481
|
{"id":"opencode-swarm-plugin-qgd2n","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:16:36.35338-08:00","updated_at":"2025-12-13T11:16:40.1931-08:00","closed_at":"2025-12-13T11:16:40.1931-08:00"}
|
|
1479
|
-
{"id":"opencode-swarm-plugin-qgt38","title":"Document SubtaskSpec estimated_complexity scale","description":"src/schemas/bead.ts:106 - `estimated_complexity: z.number().int().min(1).max(5)` - scale meaning not documented. Add JSDoc: \"/** Complexity estimate (1=trivial, 5=very complex) */\"","status":"
|
|
1480
|
-
{"id":"opencode-swarm-plugin-qhj39","title":"Codebase Quality Analysis and Improvement Ideas","description":"Parallel analysis of opencode-swarm-plugin codebase across multiple dimensions: architecture, testing, performance, error handling, and code organization","status":"
|
|
1481
|
-
{"id":"opencode-swarm-plugin-qhj39.1","title":"Architecture and Module Design Analysis","description":"","status":"
|
|
1482
|
-
{"id":"opencode-swarm-plugin-qhj39.2","title":"Testing Coverage and Quality Analysis","description":"","status":"
|
|
1483
|
-
{"id":"opencode-swarm-plugin-qhj39.3","title":"Error Handling and Resilience Analysis","description":"","status":"
|
|
1484
|
-
{"id":"opencode-swarm-plugin-qhj39.4","title":"Performance and Resource Management Analysis","description":"","status":"
|
|
1485
|
-
{"id":"opencode-swarm-plugin-qhj39.5","title":"Synthesis: Prioritized Improvement Roadmap","description":"","status":"
|
|
1482
|
+
{"id":"opencode-swarm-plugin-qgt38","title":"Document SubtaskSpec estimated_complexity scale","description":"src/schemas/bead.ts:106 - `estimated_complexity: z.number().int().min(1).max(5)` - scale meaning not documented. Add JSDoc: \"/** Complexity estimate (1=trivial, 5=very complex) */\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:10.789511-08:00","updated_at":"2025-12-13T16:48:07.924735-08:00","closed_at":"2025-12-13T16:48:07.924735-08:00"}
|
|
1483
|
+
{"id":"opencode-swarm-plugin-qhj39","title":"Codebase Quality Analysis and Improvement Ideas","description":"Parallel analysis of opencode-swarm-plugin codebase across multiple dimensions: architecture, testing, performance, error handling, and code organization","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-13T13:46:33.460464-08:00","updated_at":"2025-12-13T16:35:47.684376-08:00","closed_at":"2025-12-13T16:35:47.684376-08:00"}
|
|
1484
|
+
{"id":"opencode-swarm-plugin-qhj39.1","title":"Architecture and Module Design Analysis","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T13:46:33.527617-08:00","updated_at":"2025-12-13T16:14:01.218929-08:00","closed_at":"2025-12-13T16:14:01.218929-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-qhj39.1","depends_on_id":"opencode-swarm-plugin-qhj39","type":"parent-child","created_at":"2025-12-13T13:46:33.528576-08:00","created_by":"daemon"}]}
|
|
1485
|
+
{"id":"opencode-swarm-plugin-qhj39.2","title":"Testing Coverage and Quality Analysis","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T13:46:33.587114-08:00","updated_at":"2025-12-13T16:14:02.185091-08:00","closed_at":"2025-12-13T16:14:02.185091-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-qhj39.2","depends_on_id":"opencode-swarm-plugin-qhj39","type":"parent-child","created_at":"2025-12-13T13:46:33.587953-08:00","created_by":"daemon"}]}
|
|
1486
|
+
{"id":"opencode-swarm-plugin-qhj39.3","title":"Error Handling and Resilience Analysis","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T13:46:33.638663-08:00","updated_at":"2025-12-13T16:14:02.957291-08:00","closed_at":"2025-12-13T16:14:02.957291-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-qhj39.3","depends_on_id":"opencode-swarm-plugin-qhj39","type":"parent-child","created_at":"2025-12-13T13:46:33.639443-08:00","created_by":"daemon"}]}
|
|
1487
|
+
{"id":"opencode-swarm-plugin-qhj39.4","title":"Performance and Resource Management Analysis","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T13:46:33.692921-08:00","updated_at":"2025-12-13T16:14:03.860041-08:00","closed_at":"2025-12-13T16:14:03.860041-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-qhj39.4","depends_on_id":"opencode-swarm-plugin-qhj39","type":"parent-child","created_at":"2025-12-13T13:46:33.693758-08:00","created_by":"daemon"}]}
|
|
1488
|
+
{"id":"opencode-swarm-plugin-qhj39.5","title":"Synthesis: Prioritized Improvement Roadmap","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T13:46:33.748664-08:00","updated_at":"2025-12-13T16:35:46.458137-08:00","closed_at":"2025-12-13T16:35:46.458137-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-qhj39.5","depends_on_id":"opencode-swarm-plugin-qhj39","type":"parent-child","created_at":"2025-12-13T13:46:33.749458-08:00","created_by":"daemon"}]}
|
|
1486
1489
|
{"id":"opencode-swarm-plugin-qhr0","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-08T08:22:16.521307-08:00","updated_at":"2025-12-08T08:22:19.112363-08:00","closed_at":"2025-12-08T08:22:19.112363-08:00"}
|
|
1487
1490
|
{"id":"opencode-swarm-plugin-qkscs","title":"Production Hardening: Logging, Cleanup, and N+1 Fixes","description":"Fix 3 production readiness gaps in Swarm Mail to improve reliability and debuggability","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-13T13:27:21.122378-08:00","updated_at":"2025-12-13T15:51:22.811521-08:00","closed_at":"2025-12-13T15:51:22.811521-08:00"}
|
|
1488
1491
|
{"id":"opencode-swarm-plugin-qkscs.1","title":"Fix N+1 queries in store.ts message and reservation handlers","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T13:27:21.179002-08:00","updated_at":"2025-12-13T15:51:23.583961-08:00","closed_at":"2025-12-13T15:51:23.583961-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-qkscs.1","depends_on_id":"opencode-swarm-plugin-qkscs","type":"parent-child","created_at":"2025-12-13T13:27:21.180631-08:00","created_by":"daemon"}]}
|
|
@@ -1492,7 +1495,7 @@
|
|
|
1492
1495
|
{"id":"opencode-swarm-plugin-qlrp","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:56:55.899992-08:00","updated_at":"2025-12-08T08:56:58.219456-08:00","closed_at":"2025-12-08T08:56:58.219456-08:00"}
|
|
1493
1496
|
{"id":"opencode-swarm-plugin-qlzm","title":"Update test bead","description":"Updated description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:10:25.282262-08:00","updated_at":"2025-12-08T11:10:27.598379-08:00","closed_at":"2025-12-08T11:10:27.598379-08:00"}
|
|
1494
1497
|
{"id":"opencode-swarm-plugin-qmh5","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:05:33.074979-08:00","updated_at":"2025-12-08T08:05:35.431897-08:00","closed_at":"2025-12-08T08:05:35.431897-08:00"}
|
|
1495
|
-
{"id":"opencode-swarm-plugin-qmkwc","title":"Add JSDoc to plugin.ts exports","description":"src/plugin.ts:1-12 - File has warning about exports but no JSDoc explaining why. Add: \"/** CRITICAL: Only export the plugin function. OpenCode plugin loader calls all exports as functions, so exporting classes/constants will cause load failures. */\"","status":"
|
|
1498
|
+
{"id":"opencode-swarm-plugin-qmkwc","title":"Add JSDoc to plugin.ts exports","description":"src/plugin.ts:1-12 - File has warning about exports but no JSDoc explaining why. Add: \"/** CRITICAL: Only export the plugin function. OpenCode plugin loader calls all exports as functions, so exporting classes/constants will cause load failures. */\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:59.660536-08:00","updated_at":"2025-12-13T16:41:57.162635-08:00","closed_at":"2025-12-13T16:41:57.162635-08:00"}
|
|
1496
1499
|
{"id":"opencode-swarm-plugin-qmq6","title":"Limit test bead 4","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:09.691145-08:00","updated_at":"2025-12-08T08:25:12.302074-08:00","closed_at":"2025-12-08T08:25:12.302074-08:00"}
|
|
1497
1500
|
{"id":"opencode-swarm-plugin-qnng","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:38.46203-08:00","updated_at":"2025-12-08T11:11:40.909868-08:00","closed_at":"2025-12-08T11:11:40.909868-08:00"}
|
|
1498
1501
|
{"id":"opencode-swarm-plugin-qpa0","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:43.832175-08:00","updated_at":"2025-12-08T07:53:46.263135-08:00","closed_at":"2025-12-08T07:53:46.263135-08:00"}
|
|
@@ -1510,7 +1513,7 @@
|
|
|
1510
1513
|
{"id":"opencode-swarm-plugin-r4ur.3","title":"Third","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:39.707223-08:00","updated_at":"2025-12-08T11:11:41.589205-08:00","closed_at":"2025-12-08T11:11:41.589205-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-r4ur.3","depends_on_id":"opencode-swarm-plugin-r4ur","type":"parent-child","created_at":"2025-12-08T11:11:39.707548-08:00","created_by":"daemon"}]}
|
|
1511
1514
|
{"id":"opencode-swarm-plugin-r4ur.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:39.738254-08:00","updated_at":"2025-12-08T11:11:41.627948-08:00","closed_at":"2025-12-08T11:11:41.627948-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-r4ur.4","depends_on_id":"opencode-swarm-plugin-r4ur","type":"parent-child","created_at":"2025-12-08T11:11:39.738606-08:00","created_by":"daemon"}]}
|
|
1512
1515
|
{"id":"opencode-swarm-plugin-r4v5","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:21:27.336024-08:00","updated_at":"2025-12-08T08:21:30.013866-08:00","closed_at":"2025-12-08T08:21:30.013866-08:00"}
|
|
1513
|
-
{"id":"opencode-swarm-plugin-r5glh","title":"Add constraint between status and blockers fields","description":"src/schemas/task.ts:107-111 - AgentProgressSchema has `status: \"blocked\"` and `blockers` array but no validation linking them. Add `.refine()` to require blockers when status is blocked.","status":"
|
|
1516
|
+
{"id":"opencode-swarm-plugin-r5glh","title":"Add constraint between status and blockers fields","description":"src/schemas/task.ts:107-111 - AgentProgressSchema has `status: \"blocked\"` and `blockers` array but no validation linking them. Add `.refine()` to require blockers when status is blocked.","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:34.320563-08:00","updated_at":"2025-12-13T16:45:51.156357-08:00","closed_at":"2025-12-13T16:45:51.156357-08:00"}
|
|
1514
1517
|
{"id":"opencode-swarm-plugin-r603","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:41:10.962513-08:00","updated_at":"2025-12-07T19:41:13.452949-08:00","closed_at":"2025-12-07T19:41:13.452949-08:00"}
|
|
1515
1518
|
{"id":"opencode-swarm-plugin-r628","title":"Update test bead","description":"Original description","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-08T07:46:49.427816-08:00","updated_at":"2025-12-08T07:46:51.876555-08:00","closed_at":"2025-12-08T07:46:51.876555-08:00"}
|
|
1516
1519
|
{"id":"opencode-swarm-plugin-r71uk","title":"Ordered subtasks epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-13T14:48:42.732193-08:00","updated_at":"2025-12-13T14:48:45.827165-08:00","closed_at":"2025-12-13T14:48:45.827165-08:00"}
|
|
@@ -1547,7 +1550,7 @@
|
|
|
1547
1550
|
{"id":"opencode-swarm-plugin-ryzv","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:56:43.146246-08:00","updated_at":"2025-12-07T19:56:43.167763-08:00","closed_at":"2025-12-07T19:56:43.167763-08:00"}
|
|
1548
1551
|
{"id":"opencode-swarm-plugin-s0ah","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:25:10.991261-08:00","updated_at":"2025-12-08T08:25:12.921305-08:00","closed_at":"2025-12-08T08:25:12.921305-08:00"}
|
|
1549
1552
|
{"id":"opencode-swarm-plugin-s0fr","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:11:40.824343-08:00","updated_at":"2025-12-08T08:11:42.592959-08:00","closed_at":"2025-12-08T08:11:42.592959-08:00"}
|
|
1550
|
-
{"id":"opencode-swarm-plugin-s4xfg","title":"Simplify errorBullets initialization in StructuredValidationError","description":"src/structured.ts:47 - `this.errorBullets = zodError ? formatZodErrors(zodError) : [message];` could use nullish coalescing for clarity: `this.errorBullets = zodError ? formatZodErrors(zodError) : [message];` (no change needed, but could assign in constructor params for cleaner code)","status":"
|
|
1553
|
+
{"id":"opencode-swarm-plugin-s4xfg","title":"Simplify errorBullets initialization in StructuredValidationError","description":"src/structured.ts:47 - `this.errorBullets = zodError ? formatZodErrors(zodError) : [message];` could use nullish coalescing for clarity: `this.errorBullets = zodError ? formatZodErrors(zodError) : [message];` (no change needed, but could assign in constructor params for cleaner code)","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:39.878643-08:00","updated_at":"2025-12-13T16:45:43.398628-08:00","closed_at":"2025-12-13T16:45:43.398628-08:00"}
|
|
1551
1554
|
{"id":"opencode-swarm-plugin-s5eh","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:57:07.355512-08:00","updated_at":"2025-12-07T19:57:08.933805-08:00","closed_at":"2025-12-07T19:57:08.933805-08:00"}
|
|
1552
1555
|
{"id":"opencode-swarm-plugin-s5nu","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:46:48.728004-08:00","updated_at":"2025-12-08T07:46:51.543929-08:00","closed_at":"2025-12-08T07:46:51.543929-08:00"}
|
|
1553
1556
|
{"id":"opencode-swarm-plugin-s680v","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-13T11:20:48.188738-08:00","updated_at":"2025-12-13T11:20:51.812623-08:00","closed_at":"2025-12-13T11:20:51.812623-08:00"}
|
|
@@ -1679,12 +1682,12 @@
|
|
|
1679
1682
|
{"id":"opencode-swarm-plugin-u3q34.4","title":"Update src/swarm.ts integration points","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T10:46:25.848869-08:00","updated_at":"2025-12-13T11:07:53.078537-08:00","closed_at":"2025-12-13T11:07:53.078537-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-u3q34.4","depends_on_id":"opencode-swarm-plugin-u3q34","type":"parent-child","created_at":"2025-12-13T10:46:25.849699-08:00","created_by":"daemon"}]}
|
|
1680
1683
|
{"id":"opencode-swarm-plugin-u3q34.5","title":"Update tool-availability.ts and supporting modules","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T10:46:25.897832-08:00","updated_at":"2025-12-13T11:07:53.974396-08:00","closed_at":"2025-12-13T11:07:53.974396-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-u3q34.5","depends_on_id":"opencode-swarm-plugin-u3q34","type":"parent-child","created_at":"2025-12-13T10:46:25.898654-08:00","created_by":"daemon"}]}
|
|
1681
1684
|
{"id":"opencode-swarm-plugin-u3q34.6","title":"Migrate tests from agent-mail to swarm-mail","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T10:46:25.947081-08:00","updated_at":"2025-12-13T11:07:54.960497-08:00","closed_at":"2025-12-13T11:07:54.960497-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-u3q34.6","depends_on_id":"opencode-swarm-plugin-u3q34","type":"parent-child","created_at":"2025-12-13T10:46:25.94776-08:00","created_by":"daemon"}]}
|
|
1682
|
-
{"id":"opencode-swarm-plugin-u3q34.7","title":"Remove old agent-mail.ts and update documentation","description":"","status":"
|
|
1685
|
+
{"id":"opencode-swarm-plugin-u3q34.7","title":"Remove old agent-mail.ts and update documentation","description":"","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-13T10:46:25.99697-08:00","updated_at":"2025-12-13T16:42:01.379047-08:00","closed_at":"2025-12-13T16:42:01.379047-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-u3q34.7","depends_on_id":"opencode-swarm-plugin-u3q34","type":"parent-child","created_at":"2025-12-13T10:46:25.997868-08:00","created_by":"daemon"}]}
|
|
1683
1686
|
{"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"}
|
|
1684
1687
|
{"id":"opencode-swarm-plugin-u4w6a","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-08T11:12:55.402022-08:00","updated_at":"2025-12-08T11:12:57.960131-08:00","closed_at":"2025-12-08T11:12:57.960131-08:00"}
|
|
1685
1688
|
{"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"}
|
|
1686
|
-
{"id":"opencode-swarm-plugin-u5m4w","title":"Document state transition side effects in updatePatternMaturity","description":"src/pattern-maturity.ts:222-255 - updatePatternMaturity has side effects (sets promoted_at, deprecated_at) but not documented. Add JSDoc: \"Tracks state transitions by setting promoted_at/deprecated_at timestamps on first entry into proven/deprecated states.\"","status":"
|
|
1687
|
-
{"id":"opencode-swarm-plugin-u6gys","title":"Document reservation_ids relationship to Agent Mail","description":"src/schemas/task.ts:85 - `reservation_ids` lacks context. Add JSDoc: \"/** Agent Mail reservation IDs for file locking (used to release locks on completion) */\"","status":"
|
|
1689
|
+
{"id":"opencode-swarm-plugin-u5m4w","title":"Document state transition side effects in updatePatternMaturity","description":"src/pattern-maturity.ts:222-255 - updatePatternMaturity has side effects (sets promoted_at, deprecated_at) but not documented. Add JSDoc: \"Tracks state transitions by setting promoted_at/deprecated_at timestamps on first entry into proven/deprecated states.\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:07:33.62453-08:00","updated_at":"2025-12-13T16:20:34.138638-08:00","closed_at":"2025-12-13T16:20:34.138638-08:00"}
|
|
1690
|
+
{"id":"opencode-swarm-plugin-u6gys","title":"Document reservation_ids relationship to Agent Mail","description":"src/schemas/task.ts:85 - `reservation_ids` lacks context. Add JSDoc: \"/** Agent Mail reservation IDs for file locking (used to release locks on completion) */\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:32.169242-08:00","updated_at":"2025-12-13T16:45:50.582038-08:00","closed_at":"2025-12-13T16:45:50.582038-08:00"}
|
|
1688
1691
|
{"id":"opencode-swarm-plugin-u7mg","title":"Epic with file references","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-08T11:11:24.182806-08:00","updated_at":"2025-12-08T11:11:26.017819-08:00","closed_at":"2025-12-08T11:11:26.017819-08:00"}
|
|
1689
1692
|
{"id":"opencode-swarm-plugin-u7mg.1","title":"Edit src/a.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:11:24.221224-08:00","updated_at":"2025-12-09T09:34:43.345951-08:00","closed_at":"2025-12-09T09:34:43.345951-08:00"}
|
|
1690
1693
|
{"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"}
|
|
@@ -1828,14 +1831,14 @@
|
|
|
1828
1831
|
{"id":"opencode-swarm-plugin-wt6tx","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-10T09:06:06.254613-08:00","updated_at":"2025-12-10T09:06:09.947925-08:00","closed_at":"2025-12-10T09:06:09.947925-08:00"}
|
|
1829
1832
|
{"id":"opencode-swarm-plugin-wtuz","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:36:16.464088-08:00","updated_at":"2025-12-08T08:36:19.116376-08:00","closed_at":"2025-12-08T08:36:19.116376-08:00"}
|
|
1830
1833
|
{"id":"opencode-swarm-plugin-wua","title":"High priority ready bead","description":"","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-07T19:37:34.785248-08:00","updated_at":"2025-12-07T19:37:36.428883-08:00","closed_at":"2025-12-07T19:37:36.428883-08:00"}
|
|
1831
|
-
{"id":"opencode-swarm-plugin-wuhvb","title":"Add safety check to findBalancedBraces depth","description":"src/structured.ts:195-238 - findBalancedBraces has no max depth check. If depth goes negative or exceeds reasonable limit (e.g., 100), it could indicate malformed input. Add early return for depth \u0026lt; 0 or depth \u0026gt; 100.","status":"
|
|
1834
|
+
{"id":"opencode-swarm-plugin-wuhvb","title":"Add safety check to findBalancedBraces depth","description":"src/structured.ts:195-238 - findBalancedBraces has no max depth check. If depth goes negative or exceeds reasonable limit (e.g., 100), it could indicate malformed input. Add early return for depth \u0026lt; 0 or depth \u0026gt; 100.","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:45.256712-08:00","updated_at":"2025-12-13T16:45:44.387924-08:00","closed_at":"2025-12-13T16:45:44.387924-08:00"}
|
|
1832
1835
|
{"id":"opencode-swarm-plugin-wv4f","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:22:17.36199-08:00","updated_at":"2025-12-08T08:22:17.38879-08:00","closed_at":"2025-12-08T08:22:17.38879-08:00"}
|
|
1833
1836
|
{"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"}
|
|
1834
1837
|
{"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"}
|
|
1835
1838
|
{"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"}
|
|
1836
1839
|
{"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"}
|
|
1837
1840
|
{"id":"opencode-swarm-plugin-x0c9z","title":"Cleanup task","description":"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-13T11:18:41.528371-08:00","updated_at":"2025-12-13T11:18:45.857664-08:00","closed_at":"2025-12-13T11:18:45.857664-08:00"}
|
|
1838
|
-
{"id":"opencode-swarm-plugin-x3231","title":"Gap: No thread safety documentation for PGLite singleton","description":"src/streams/index.ts - No documentation on whether PGLite is thread-safe or if concurrent queries from multiple async operations are safe. Node.js is single-threaded but async operations can interleave. Should: document PGLite's concurrency model, test concurrent appendEvent calls, verify transaction isolation, add test for race conditions under load.","status":"
|
|
1841
|
+
{"id":"opencode-swarm-plugin-x3231","title":"Gap: No thread safety documentation for PGLite singleton","description":"src/streams/index.ts - No documentation on whether PGLite is thread-safe or if concurrent queries from multiple async operations are safe. Node.js is single-threaded but async operations can interleave. Should: document PGLite's concurrency model, test concurrent appendEvent calls, verify transaction isolation, add test for race conditions under load.","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-13T09:25:42.564807-08:00","updated_at":"2025-12-13T16:41:58.684039-08:00","closed_at":"2025-12-13T16:41:58.684039-08:00"}
|
|
1839
1842
|
{"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"}
|
|
1840
1843
|
{"id":"opencode-swarm-plugin-x3k9p","title":"Thread link test bead","description":"[thread:test-thread-456]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:18:44.399589-08:00","updated_at":"2025-12-13T11:18:47.306187-08:00","closed_at":"2025-12-13T11:18:47.306187-08:00"}
|
|
1841
1844
|
{"id":"opencode-swarm-plugin-x4ce1","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-10T09:08:32.289945-08:00","updated_at":"2025-12-10T09:08:35.611893-08:00","closed_at":"2025-12-10T09:08:35.611893-08:00"}
|
|
@@ -1859,7 +1862,17 @@
|
|
|
1859
1862
|
{"id":"opencode-swarm-plugin-x9lag.3","title":"Third","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-10T09:07:23.996286-08:00","updated_at":"2025-12-10T09:07:26.550723-08:00","closed_at":"2025-12-10T09:07:26.550723-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-x9lag.3","depends_on_id":"opencode-swarm-plugin-x9lag","type":"parent-child","created_at":"2025-12-10T09:07:23.997403-08:00","created_by":"daemon"}]}
|
|
1860
1863
|
{"id":"opencode-swarm-plugin-x9lag.4","title":"Fourth","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-10T09:07:24.037782-08:00","updated_at":"2025-12-10T09:07:26.589046-08:00","closed_at":"2025-12-10T09:07:26.589046-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-x9lag.4","depends_on_id":"opencode-swarm-plugin-x9lag","type":"parent-child","created_at":"2025-12-10T09:07:24.041396-08:00","created_by":"daemon"}]}
|
|
1861
1864
|
{"id":"opencode-swarm-plugin-xbil","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T07:53:43.773303-08:00","updated_at":"2025-12-08T07:53:46.23941-08:00","closed_at":"2025-12-08T07:53:46.23941-08:00"}
|
|
1862
|
-
{"id":"opencode-swarm-plugin-xc4po","title":"Add JSDoc to DecomposedSubtask.risks field","description":"src/schemas/task.ts:38 - `risks` field lacks description. Add JSDoc: \"/** Potential risks or complications (e.g., 'tight coupling', 'data migration required') */\"","status":"
|
|
1865
|
+
{"id":"opencode-swarm-plugin-xc4po","title":"Add JSDoc to DecomposedSubtask.risks field","description":"src/schemas/task.ts:38 - `risks` field lacks description. Add JSDoc: \"/** Potential risks or complications (e.g., 'tight coupling', 'data migration required') */\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:22.374689-08:00","updated_at":"2025-12-13T16:45:48.108316-08:00","closed_at":"2025-12-13T16:45:48.108316-08:00"}
|
|
1866
|
+
{"id":"opencode-swarm-plugin-xcavl","title":"Codebase Health: Split swarm.ts, fix bugs, add tests","description":"Critical improvements identified from analysis: split god module, fix data integrity bugs, add missing test coverage","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-13T16:57:57.93951-08:00","updated_at":"2025-12-13T17:21:15.826931-08:00","closed_at":"2025-12-13T17:21:15.826931-08:00"}
|
|
1867
|
+
{"id":"opencode-swarm-plugin-xcavl.1","title":"Split swarm.ts: Extract swarm-strategies.ts","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T16:57:57.99498-08:00","updated_at":"2025-12-13T17:21:12.619794-08:00","closed_at":"2025-12-13T17:21:12.619794-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-xcavl.1","depends_on_id":"opencode-swarm-plugin-xcavl","type":"parent-child","created_at":"2025-12-13T16:57:57.99606-08:00","created_by":"daemon"}]}
|
|
1868
|
+
{"id":"opencode-swarm-plugin-xcavl.2","title":"Split swarm.ts: Extract swarm-decompose.ts","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T16:57:58.047931-08:00","updated_at":"2025-12-13T17:21:13.275233-08:00","closed_at":"2025-12-13T17:21:13.275233-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-xcavl.2","depends_on_id":"opencode-swarm-plugin-xcavl","type":"parent-child","created_at":"2025-12-13T16:57:58.048892-08:00","created_by":"daemon"}]}
|
|
1869
|
+
{"id":"opencode-swarm-plugin-xcavl.3","title":"Split swarm.ts: Extract swarm-prompts.ts","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T16:57:58.105828-08:00","updated_at":"2025-12-13T17:21:13.835048-08:00","closed_at":"2025-12-13T17:21:13.835048-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-xcavl.3","depends_on_id":"opencode-swarm-plugin-xcavl","type":"parent-child","created_at":"2025-12-13T16:57:58.107241-08:00","created_by":"daemon"}]}
|
|
1870
|
+
{"id":"opencode-swarm-plugin-xcavl.4","title":"Split swarm.ts: Extract swarm-orchestrate.ts","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T16:57:58.157999-08:00","updated_at":"2025-12-13T17:21:14.461773-08:00","closed_at":"2025-12-13T17:21:14.461773-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-xcavl.4","depends_on_id":"opencode-swarm-plugin-xcavl","type":"parent-child","created_at":"2025-12-13T16:57:58.159412-08:00","created_by":"daemon"}]}
|
|
1871
|
+
{"id":"opencode-swarm-plugin-xcavl.5","title":"Fix transaction rollback error propagation","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T16:57:58.21724-08:00","updated_at":"2025-12-13T17:05:47.103573-08:00","closed_at":"2025-12-13T17:05:47.103573-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-xcavl.5","depends_on_id":"opencode-swarm-plugin-xcavl","type":"parent-child","created_at":"2025-12-13T16:57:58.218636-08:00","created_by":"daemon"}]}
|
|
1872
|
+
{"id":"opencode-swarm-plugin-xcavl.6","title":"Make file reservation idempotent with ON CONFLICT","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-13T16:57:58.269982-08:00","updated_at":"2025-12-13T17:05:47.675583-08:00","closed_at":"2025-12-13T17:05:47.675583-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-xcavl.6","depends_on_id":"opencode-swarm-plugin-xcavl","type":"parent-child","created_at":"2025-12-13T16:57:58.27125-08:00","created_by":"daemon"}]}
|
|
1873
|
+
{"id":"opencode-swarm-plugin-xcavl.7","title":"Add tests for structured.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T16:57:58.323033-08:00","updated_at":"2025-12-13T17:05:48.48549-08:00","closed_at":"2025-12-13T17:05:48.48549-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-xcavl.7","depends_on_id":"opencode-swarm-plugin-xcavl","type":"parent-child","created_at":"2025-12-13T16:57:58.324485-08:00","created_by":"daemon"}]}
|
|
1874
|
+
{"id":"opencode-swarm-plugin-xcavl.8","title":"Add tests for anti-patterns.ts","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T16:57:58.376043-08:00","updated_at":"2025-12-13T17:05:49.201843-08:00","closed_at":"2025-12-13T17:05:49.201843-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-xcavl.8","depends_on_id":"opencode-swarm-plugin-xcavl","type":"parent-child","created_at":"2025-12-13T16:57:58.377102-08:00","created_by":"daemon"}]}
|
|
1875
|
+
{"id":"opencode-swarm-plugin-xcavl.9","title":"Fix CI to run integration tests","description":"## Changes Made\n\nAdded integration test step to CI workflow (.github/workflows/ci.yml):\n\n**Before:**\n- Only ran unit tests (`bun run test`)\n\n**After:**\n- Runs unit tests (step: \"Run unit tests\")\n- Runs integration tests (step: \"Run integration tests\") with 10-minute timeout\n\n## Implementation Details\n\n1. **Single job approach:** Both unit and integration tests run in the same job sequentially\n2. **Timeout:** Integration tests have `timeout-minutes: 10` to prevent hanging\n3. **Fail fast:** If either test suite fails, the build fails (default behavior)\n4. **Verified:** \n - 10 integration test files exist in src/\n - `test:integration` script exists in package.json\n - Script uses vitest with proper config (vitest.integration.config.ts)\n - Tests run serially to avoid race conditions\n\n## Success Criteria Met\n- ✅ CI runs both unit and integration tests\n- ✅ Build fails if either test suite fails (continue-on-error is false by default)\n- ✅ Integration tests have reasonable timeout (10 min)\n\n## Workflow Structure\n```yaml\n- Run unit tests (bun run test)\n- Run integration tests (bun run test:integration, timeout: 10 min)\n```\n\nBoth steps must pass for CI to succeed.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T16:57:58.429642-08:00","updated_at":"2025-12-13T17:05:49.697088-08:00","closed_at":"2025-12-13T17:05:49.697088-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-xcavl.9","depends_on_id":"opencode-swarm-plugin-xcavl","type":"parent-child","created_at":"2025-12-13T16:57:58.430689-08:00","created_by":"daemon"}]}
|
|
1863
1876
|
{"id":"opencode-swarm-plugin-xdstu","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-13T11:18:44.585559-08:00","updated_at":"2025-12-13T11:18:47.343607-08:00","closed_at":"2025-12-13T11:18:47.343607-08:00"}
|
|
1864
1877
|
{"id":"opencode-swarm-plugin-xfs29","title":"Thread link test bead","description":"[thread:test-thread-123]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-10T09:08:33.821533-08:00","updated_at":"2025-12-10T09:08:36.641013-08:00","closed_at":"2025-12-10T09:08:36.641013-08:00"}
|
|
1865
1878
|
{"id":"opencode-swarm-plugin-xid","title":"Limit test bead 3","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:34:52.617824-08:00","updated_at":"2025-12-07T19:34:54.705834-08:00","closed_at":"2025-12-07T19:34:54.705834-08:00"}
|
|
@@ -1909,7 +1922,7 @@
|
|
|
1909
1922
|
{"id":"opencode-swarm-plugin-ygpl","title":"Bead to close","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:26.265071-08:00","updated_at":"2025-12-08T11:12:26.289606-08:00","closed_at":"2025-12-08T11:12:26.289606-08:00"}
|
|
1910
1923
|
{"id":"opencode-swarm-plugin-ygpma","title":"Thread link test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:16:38.610431-08:00","updated_at":"2025-12-13T11:16:41.177098-08:00","closed_at":"2025-12-13T11:16:41.177098-08:00"}
|
|
1911
1924
|
{"id":"opencode-swarm-plugin-yhvo","title":"Single subtask epic","description":"","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-07T19:41:12.082709-08:00","updated_at":"2025-12-07T19:41:13.923772-08:00","closed_at":"2025-12-07T19:41:13.923772-08:00"}
|
|
1912
|
-
{"id":"opencode-swarm-plugin-yi3ke","title":"Document warnMissingTool deduplication strategy","description":"src/tool-availability.ts:301-310 - warnMissingTool uses Set for deduplication but comment doesn't explain why. Add JSDoc: \"/** Logs warning once per tool per session. Uses Set to prevent spam when tool is checked repeatedly. */\"","status":"
|
|
1925
|
+
{"id":"opencode-swarm-plugin-yi3ke","title":"Document warnMissingTool deduplication strategy","description":"src/tool-availability.ts:301-310 - warnMissingTool uses Set for deduplication but comment doesn't explain why. Add JSDoc: \"/** Logs warning once per tool per session. Uses Set to prevent spam when tool is checked repeatedly. */\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:07:11.393397-08:00","updated_at":"2025-12-13T16:41:52.798405-08:00","closed_at":"2025-12-13T16:41:52.798405-08:00"}
|
|
1913
1926
|
{"id":"opencode-swarm-plugin-yih","title":"Limit test bead 2","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-07T19:36:06.525069-08:00","updated_at":"2025-12-07T19:36:08.634794-08:00","closed_at":"2025-12-07T19:36:08.634794-08:00"}
|
|
1914
1927
|
{"id":"opencode-swarm-plugin-yj2i","title":"Query test bead","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:28.55214-08:00","updated_at":"2025-12-08T08:14:30.988935-08:00","closed_at":"2025-12-08T08:14:30.988935-08:00"}
|
|
1915
1928
|
{"id":"opencode-swarm-plugin-yo4","title":"New feature request","description":"","status":"closed","priority":1,"issue_type":"feature","created_at":"2025-12-07T19:36:06.212343-08:00","updated_at":"2025-12-07T19:36:08.45342-08:00","closed_at":"2025-12-07T19:36:08.45342-08:00"}
|
|
@@ -1933,7 +1946,7 @@
|
|
|
1933
1946
|
{"id":"opencode-swarm-plugin-z41xe","title":"Test bead minimal","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-13T11:16:35.211913-08:00","updated_at":"2025-12-13T11:16:39.567258-08:00","closed_at":"2025-12-13T11:16:39.567258-08:00"}
|
|
1934
1947
|
{"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"}
|
|
1935
1948
|
{"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"}
|
|
1936
|
-
{"id":"opencode-swarm-plugin-z8rkb","title":"Add validation for SpawnedAgent.agent_name format","description":"src/schemas/task.ts:81 - `agent_name` is plain string but Agent Mail uses specific format (e.g., \"BlueLake\"). Add regex validation or comment: \"/** Agent Mail name (e.g., 'BlueLake', 'CrimsonRiver') */\"","status":"
|
|
1949
|
+
{"id":"opencode-swarm-plugin-z8rkb","title":"Add validation for SpawnedAgent.agent_name format","description":"src/schemas/task.ts:81 - `agent_name` is plain string but Agent Mail uses specific format (e.g., \"BlueLake\"). Add regex validation or comment: \"/** Agent Mail name (e.g., 'BlueLake', 'CrimsonRiver') */\"","status":"closed","priority":3,"issue_type":"chore","created_at":"2025-12-10T09:06:30.499386-08:00","updated_at":"2025-12-13T16:45:50.112928-08:00","closed_at":"2025-12-13T16:45:50.112928-08:00"}
|
|
1937
1950
|
{"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"}
|
|
1938
1951
|
{"id":"opencode-swarm-plugin-z9yl","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:21:28.946829-08:00","updated_at":"2025-12-08T08:21:30.752391-08:00","closed_at":"2025-12-08T08:21:30.752391-08:00"}
|
|
1939
1952
|
{"id":"opencode-swarm-plugin-zasi","title":"Limit test bead 1","description":"","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:28.739509-08:00","updated_at":"2025-12-08T08:14:31.090283-08:00","closed_at":"2025-12-08T08:14:31.090283-08:00"}
|
|
@@ -1945,7 +1958,7 @@
|
|
|
1945
1958
|
{"id":"opencode-swarm-plugin-zi7n","title":"Test bug with priority","description":"This is a critical bug","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-08T08:36:16.30257-08:00","updated_at":"2025-12-08T08:36:19.014772-08:00","closed_at":"2025-12-08T08:36:19.014772-08:00"}
|
|
1946
1959
|
{"id":"opencode-swarm-plugin-zj6j9","title":"Thread link test bead","description":"Important context here\n\n[thread:test-thread-789]","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T11:12:57.222284-08:00","updated_at":"2025-12-08T11:12:58.884345-08:00","closed_at":"2025-12-08T11:12:58.884345-08:00"}
|
|
1947
1960
|
{"id":"opencode-swarm-plugin-zjku","title":"Update test bead","description":"Original description","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-08T08:14:29.199507-08:00","updated_at":"2025-12-08T08:14:31.307698-08:00","closed_at":"2025-12-08T08:14:31.307698-08:00"}
|
|
1948
|
-
{"id":"opencode-swarm-plugin-zmzuw","title":"Gap: N+1 query in handleMessageSent","description":"src/streams/store.ts:360-395 - handleMessageSent() loops through recipients and inserts one-by-one with separate queries. For messages with many recipients, this is N+1 pattern. Should use bulk INSERT with VALUES (...), (...), (...) or INSERT ... SELECT. Similar issue in handleFileReserved (lines 398-416) which loops through paths.","status":"
|
|
1961
|
+
{"id":"opencode-swarm-plugin-zmzuw","title":"Gap: N+1 query in handleMessageSent","description":"src/streams/store.ts:360-395 - handleMessageSent() loops through recipients and inserts one-by-one with separate queries. For messages with many recipients, this is N+1 pattern. Should use bulk INSERT with VALUES (...), (...), (...) or INSERT ... SELECT. Similar issue in handleFileReserved (lines 398-416) which loops through paths.","status":"closed","priority":2,"issue_type":"chore","created_at":"2025-12-13T09:25:14.000433-08:00","updated_at":"2025-12-13T16:06:33.70323-08:00","closed_at":"2025-12-13T16:06:33.70323-08:00"}
|
|
1949
1962
|
{"id":"opencode-swarm-plugin-zn4of","title":"Review skill-builder PR branch","description":"Analyze skill-builder PR branch for errors, omissions, improvements, oversights, gaps, and ideas. READ-ONLY code review - no modifications.","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-12T21:05:18.645731-08:00","updated_at":"2025-12-12T21:17:59.05899-08:00","closed_at":"2025-12-12T21:17:59.05899-08:00"}
|
|
1950
1963
|
{"id":"opencode-swarm-plugin-zn4of.1","title":"Review src/skills.ts core module","description":"READ-ONLY review of src/skills.ts (1356 lines). Analyzing: security (path traversal, script execution), bugs (__dirname in ES modules, iteration errors), missing features, code quality. Found critical __dirname bug and TypeScript config issue.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T21:05:18.691442-08:00","updated_at":"2025-12-12T21:08:55.61161-08:00","closed_at":"2025-12-12T21:08:55.61161-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-zn4of.1","depends_on_id":"opencode-swarm-plugin-zn4of","type":"parent-child","created_at":"2025-12-12T21:05:18.693109-08:00","created_by":"daemon"}]}
|
|
1951
1964
|
{"id":"opencode-swarm-plugin-zn4of.2","title":"Review global-skills definitions","description":"","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-12T21:05:18.739019-08:00","updated_at":"2025-12-12T21:07:06.557236-08:00","closed_at":"2025-12-12T21:07:06.557236-08:00","dependencies":[{"issue_id":"opencode-swarm-plugin-zn4of.2","depends_on_id":"opencode-swarm-plugin-zn4of","type":"parent-child","created_at":"2025-12-12T21:05:18.740085-08:00","created_by":"daemon"}]}
|