opencode-swarm-plugin 0.43.0 → 0.44.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/bin/cass.characterization.test.ts +422 -0
  2. package/bin/swarm.serve.test.ts +6 -4
  3. package/bin/swarm.test.ts +68 -0
  4. package/bin/swarm.ts +81 -8
  5. package/dist/compaction-prompt-scoring.js +139 -0
  6. package/dist/contributor-tools.d.ts +42 -0
  7. package/dist/contributor-tools.d.ts.map +1 -0
  8. package/dist/eval-capture.js +12811 -0
  9. package/dist/hive.d.ts.map +1 -1
  10. package/dist/index.d.ts +12 -0
  11. package/dist/index.d.ts.map +1 -1
  12. package/dist/index.js +7728 -62590
  13. package/dist/plugin.js +23833 -78695
  14. package/dist/sessions/agent-discovery.d.ts +59 -0
  15. package/dist/sessions/agent-discovery.d.ts.map +1 -0
  16. package/dist/sessions/index.d.ts +10 -0
  17. package/dist/sessions/index.d.ts.map +1 -0
  18. package/dist/swarm-orchestrate.d.ts.map +1 -1
  19. package/dist/swarm-prompts.d.ts.map +1 -1
  20. package/dist/swarm-review.d.ts.map +1 -1
  21. package/package.json +17 -5
  22. package/.changeset/swarm-insights-data-layer.md +0 -63
  23. package/.hive/analysis/eval-failure-analysis-2025-12-25.md +0 -331
  24. package/.hive/analysis/session-data-quality-audit.md +0 -320
  25. package/.hive/eval-results.json +0 -483
  26. package/.hive/issues.jsonl +0 -138
  27. package/.hive/memories.jsonl +0 -729
  28. package/.opencode/eval-history.jsonl +0 -327
  29. package/.turbo/turbo-build.log +0 -9
  30. package/CHANGELOG.md +0 -2255
  31. package/SCORER-ANALYSIS.md +0 -598
  32. package/docs/analysis/subagent-coordination-patterns.md +0 -902
  33. package/docs/analysis-socratic-planner-pattern.md +0 -504
  34. package/docs/planning/ADR-001-monorepo-structure.md +0 -171
  35. package/docs/planning/ADR-002-package-extraction.md +0 -393
  36. package/docs/planning/ADR-003-performance-improvements.md +0 -451
  37. package/docs/planning/ADR-004-message-queue-features.md +0 -187
  38. package/docs/planning/ADR-005-devtools-observability.md +0 -202
  39. package/docs/planning/ADR-007-swarm-enhancements-worktree-review.md +0 -168
  40. package/docs/planning/ADR-008-worker-handoff-protocol.md +0 -293
  41. package/docs/planning/ADR-009-oh-my-opencode-patterns.md +0 -353
  42. package/docs/planning/ROADMAP.md +0 -368
  43. package/docs/semantic-memory-cli-syntax.md +0 -123
  44. package/docs/swarm-mail-architecture.md +0 -1147
  45. package/docs/testing/context-recovery-test.md +0 -470
  46. package/evals/ARCHITECTURE.md +0 -1189
  47. package/evals/README.md +0 -768
  48. package/evals/compaction-prompt.eval.ts +0 -149
  49. package/evals/compaction-resumption.eval.ts +0 -289
  50. package/evals/coordinator-behavior.eval.ts +0 -307
  51. package/evals/coordinator-session.eval.ts +0 -154
  52. package/evals/evalite.config.ts.bak +0 -15
  53. package/evals/example.eval.ts +0 -31
  54. package/evals/fixtures/compaction-cases.ts +0 -350
  55. package/evals/fixtures/compaction-prompt-cases.ts +0 -311
  56. package/evals/fixtures/coordinator-sessions.ts +0 -328
  57. package/evals/fixtures/decomposition-cases.ts +0 -105
  58. package/evals/lib/compaction-loader.test.ts +0 -248
  59. package/evals/lib/compaction-loader.ts +0 -320
  60. package/evals/lib/data-loader.evalite-test.ts +0 -289
  61. package/evals/lib/data-loader.test.ts +0 -345
  62. package/evals/lib/data-loader.ts +0 -281
  63. package/evals/lib/llm.ts +0 -115
  64. package/evals/scorers/compaction-prompt-scorers.ts +0 -145
  65. package/evals/scorers/compaction-scorers.ts +0 -305
  66. package/evals/scorers/coordinator-discipline.evalite-test.ts +0 -539
  67. package/evals/scorers/coordinator-discipline.ts +0 -325
  68. package/evals/scorers/index.test.ts +0 -146
  69. package/evals/scorers/index.ts +0 -328
  70. package/evals/scorers/outcome-scorers.evalite-test.ts +0 -27
  71. package/evals/scorers/outcome-scorers.ts +0 -349
  72. package/evals/swarm-decomposition.eval.ts +0 -121
  73. package/examples/commands/swarm.md +0 -745
  74. package/examples/plugin-wrapper-template.ts +0 -2426
  75. package/examples/skills/hive-workflow/SKILL.md +0 -212
  76. package/examples/skills/skill-creator/SKILL.md +0 -223
  77. package/examples/skills/swarm-coordination/SKILL.md +0 -292
  78. package/global-skills/cli-builder/SKILL.md +0 -344
  79. package/global-skills/cli-builder/references/advanced-patterns.md +0 -244
  80. package/global-skills/learning-systems/SKILL.md +0 -644
  81. package/global-skills/skill-creator/LICENSE.txt +0 -202
  82. package/global-skills/skill-creator/SKILL.md +0 -352
  83. package/global-skills/skill-creator/references/output-patterns.md +0 -82
  84. package/global-skills/skill-creator/references/workflows.md +0 -28
  85. package/global-skills/swarm-coordination/SKILL.md +0 -995
  86. package/global-skills/swarm-coordination/references/coordinator-patterns.md +0 -235
  87. package/global-skills/swarm-coordination/references/strategies.md +0 -138
  88. package/global-skills/system-design/SKILL.md +0 -213
  89. package/global-skills/testing-patterns/SKILL.md +0 -430
  90. package/global-skills/testing-patterns/references/dependency-breaking-catalog.md +0 -586
  91. package/opencode-swarm-plugin-0.30.7.tgz +0 -0
  92. package/opencode-swarm-plugin-0.31.0.tgz +0 -0
  93. package/scripts/cleanup-test-memories.ts +0 -346
  94. package/scripts/init-skill.ts +0 -222
  95. package/scripts/migrate-unknown-sessions.ts +0 -349
  96. package/scripts/validate-skill.ts +0 -204
  97. package/src/agent-mail.ts +0 -1724
  98. package/src/anti-patterns.test.ts +0 -1167
  99. package/src/anti-patterns.ts +0 -448
  100. package/src/compaction-capture.integration.test.ts +0 -257
  101. package/src/compaction-hook.test.ts +0 -838
  102. package/src/compaction-hook.ts +0 -1204
  103. package/src/compaction-observability.integration.test.ts +0 -139
  104. package/src/compaction-observability.test.ts +0 -187
  105. package/src/compaction-observability.ts +0 -324
  106. package/src/compaction-prompt-scorers.test.ts +0 -475
  107. package/src/compaction-prompt-scoring.ts +0 -300
  108. package/src/dashboard.test.ts +0 -611
  109. package/src/dashboard.ts +0 -462
  110. package/src/error-enrichment.test.ts +0 -403
  111. package/src/error-enrichment.ts +0 -219
  112. package/src/eval-capture.test.ts +0 -1015
  113. package/src/eval-capture.ts +0 -929
  114. package/src/eval-gates.test.ts +0 -306
  115. package/src/eval-gates.ts +0 -218
  116. package/src/eval-history.test.ts +0 -508
  117. package/src/eval-history.ts +0 -214
  118. package/src/eval-learning.test.ts +0 -378
  119. package/src/eval-learning.ts +0 -360
  120. package/src/eval-runner.test.ts +0 -223
  121. package/src/eval-runner.ts +0 -402
  122. package/src/export-tools.test.ts +0 -476
  123. package/src/export-tools.ts +0 -257
  124. package/src/hive.integration.test.ts +0 -2241
  125. package/src/hive.ts +0 -1628
  126. package/src/index.ts +0 -935
  127. package/src/learning.integration.test.ts +0 -1815
  128. package/src/learning.ts +0 -1079
  129. package/src/logger.test.ts +0 -189
  130. package/src/logger.ts +0 -135
  131. package/src/mandate-promotion.test.ts +0 -473
  132. package/src/mandate-promotion.ts +0 -239
  133. package/src/mandate-storage.integration.test.ts +0 -601
  134. package/src/mandate-storage.test.ts +0 -578
  135. package/src/mandate-storage.ts +0 -794
  136. package/src/mandates.ts +0 -540
  137. package/src/memory-tools.test.ts +0 -195
  138. package/src/memory-tools.ts +0 -344
  139. package/src/memory.integration.test.ts +0 -334
  140. package/src/memory.test.ts +0 -158
  141. package/src/memory.ts +0 -527
  142. package/src/model-selection.test.ts +0 -188
  143. package/src/model-selection.ts +0 -68
  144. package/src/observability-tools.test.ts +0 -359
  145. package/src/observability-tools.ts +0 -871
  146. package/src/output-guardrails.test.ts +0 -438
  147. package/src/output-guardrails.ts +0 -381
  148. package/src/pattern-maturity.test.ts +0 -1160
  149. package/src/pattern-maturity.ts +0 -525
  150. package/src/planning-guardrails.test.ts +0 -491
  151. package/src/planning-guardrails.ts +0 -438
  152. package/src/plugin.ts +0 -23
  153. package/src/post-compaction-tracker.test.ts +0 -251
  154. package/src/post-compaction-tracker.ts +0 -237
  155. package/src/query-tools.test.ts +0 -636
  156. package/src/query-tools.ts +0 -324
  157. package/src/rate-limiter.integration.test.ts +0 -466
  158. package/src/rate-limiter.ts +0 -774
  159. package/src/replay-tools.test.ts +0 -496
  160. package/src/replay-tools.ts +0 -240
  161. package/src/repo-crawl.integration.test.ts +0 -441
  162. package/src/repo-crawl.ts +0 -610
  163. package/src/schemas/cell-events.test.ts +0 -347
  164. package/src/schemas/cell-events.ts +0 -807
  165. package/src/schemas/cell.ts +0 -257
  166. package/src/schemas/evaluation.ts +0 -166
  167. package/src/schemas/index.test.ts +0 -199
  168. package/src/schemas/index.ts +0 -286
  169. package/src/schemas/mandate.ts +0 -232
  170. package/src/schemas/swarm-context.ts +0 -115
  171. package/src/schemas/task.ts +0 -161
  172. package/src/schemas/worker-handoff.test.ts +0 -302
  173. package/src/schemas/worker-handoff.ts +0 -131
  174. package/src/skills.integration.test.ts +0 -1192
  175. package/src/skills.test.ts +0 -643
  176. package/src/skills.ts +0 -1549
  177. package/src/storage.integration.test.ts +0 -341
  178. package/src/storage.ts +0 -884
  179. package/src/structured.integration.test.ts +0 -817
  180. package/src/structured.test.ts +0 -1046
  181. package/src/structured.ts +0 -762
  182. package/src/swarm-decompose.test.ts +0 -188
  183. package/src/swarm-decompose.ts +0 -1302
  184. package/src/swarm-deferred.integration.test.ts +0 -157
  185. package/src/swarm-deferred.test.ts +0 -38
  186. package/src/swarm-insights.test.ts +0 -214
  187. package/src/swarm-insights.ts +0 -459
  188. package/src/swarm-mail.integration.test.ts +0 -970
  189. package/src/swarm-mail.ts +0 -739
  190. package/src/swarm-orchestrate.integration.test.ts +0 -282
  191. package/src/swarm-orchestrate.test.ts +0 -548
  192. package/src/swarm-orchestrate.ts +0 -3084
  193. package/src/swarm-prompts.test.ts +0 -1270
  194. package/src/swarm-prompts.ts +0 -2077
  195. package/src/swarm-research.integration.test.ts +0 -701
  196. package/src/swarm-research.test.ts +0 -698
  197. package/src/swarm-research.ts +0 -472
  198. package/src/swarm-review.integration.test.ts +0 -285
  199. package/src/swarm-review.test.ts +0 -879
  200. package/src/swarm-review.ts +0 -709
  201. package/src/swarm-strategies.ts +0 -407
  202. package/src/swarm-worktree.test.ts +0 -501
  203. package/src/swarm-worktree.ts +0 -575
  204. package/src/swarm.integration.test.ts +0 -2377
  205. package/src/swarm.ts +0 -38
  206. package/src/tool-adapter.integration.test.ts +0 -1221
  207. package/src/tool-availability.ts +0 -461
  208. package/tsconfig.json +0 -28
@@ -1,138 +0,0 @@
1
- {"id":"opencode-swarm-plugin--ys7z8-mjk7dc97sjc","title":"Pino Logging Infrastructure + Compaction Instrumentation","description":"Add structured Pino logging to ~/.config/swarm-tools/logs/ with daily rotation. Instrument compaction-hook.ts as first consumer. Add swarm log CLI for querying. Complements existing DEBUG env var approach.\n\n## Execution Order\n1. Logger infrastructure (parallel-ready after this)\n2. Compaction instrumentation (depends on 1)\n3. CLI command (depends on 1, parallel with 2)\n\n## Success Criteria\n- Logs written to ~/.config/swarm-tools/logs/compaction-YYYY-MM-DD.log\n- 14-day retention with daily rotation\n- SWARM_LOG_PRETTY=1 shows human-readable output\n- swarm log CLI can tail/filter logs\n- Compaction phases fully instrumented","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-24T16:02:57.739Z","updated_at":"2025-12-24T16:24:35.974Z","closed_at":"2025-12-24T16:24:35.974Z","dependencies":[],"labels":[],"comments":[]}
2
- {"id":"opencode-swarm-plugin--ys7z8-mjk7dc9fs37","title":"Create logger infrastructure (src/logger.ts)","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-24T16:02:57.747Z","updated_at":"2025-12-24T16:13:39.015Z","closed_at":"2025-12-24T16:13:39.015Z","parent_id":"opencode-swarm-plugin--ys7z8-mjk7dc97sjc","dependencies":[],"labels":[],"comments":[]}
3
- {"id":"opencode-swarm-plugin--ys7z8-mjk7dc9igjj","title":"Instrument compaction-hook.ts with structured logging","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-24T16:02:57.750Z","updated_at":"2025-12-24T16:24:25.848Z","closed_at":"2025-12-24T16:24:25.848Z","parent_id":"opencode-swarm-plugin--ys7z8-mjk7dc97sjc","dependencies":[],"labels":[],"comments":[]}
4
- {"id":"opencode-swarm-plugin--ys7z8-mjk7dc9k1k7","title":"Add swarm log CLI command","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-24T16:02:57.752Z","updated_at":"2025-12-24T16:24:26.653Z","closed_at":"2025-12-24T16:24:26.653Z","parent_id":"opencode-swarm-plugin--ys7z8-mjk7dc97sjc","dependencies":[],"labels":[],"comments":[]}
5
- {"id":"opencode-swarm-plugin--ys7z8-mjk8n0jbbb9","title":"P0 Security Fixes + Analytics Queries","description":"Fix SQL injection vulnerabilities in cursor.ts and lock.ts, then implement pre-built analytics queries.\n\n## Phase 1: Security Fixes (P0 - parallel)\n- cursor.ts: Replace db.exec() string interpolation with db.query() parameterized\n- lock.ts: Same pattern\n\n## Phase 2: Analytics Queries\n- Implement 5 pre-built analytics queries for swarm-db CLI\n- Based on Four Golden Signals (latency, traffic, errors, saturation)\n\n## Success Criteria\n- No SQL injection vulnerabilities (parameterized queries only)\n- Tests verify malicious input is safely escaped\n- Analytics queries work with --format, --since, --until flags","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-24T16:38:28.727Z","updated_at":"2025-12-24T16:50:06.170Z","closed_at":"2025-12-24T16:50:06.170Z","dependencies":[],"labels":[],"comments":[]}
6
- {"id":"opencode-swarm-plugin--ys7z8-mjk8n0jkf0y","title":"Fix SQL injection in cursor.ts","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-24T16:38:28.736Z","updated_at":"2025-12-24T16:41:00.391Z","closed_at":"2025-12-24T16:41:00.391Z","parent_id":"opencode-swarm-plugin--ys7z8-mjk8n0jbbb9","dependencies":[],"labels":[],"comments":[]}
7
- {"id":"opencode-swarm-plugin--ys7z8-mjk8n0jm0rb","title":"Fix SQL injection in lock.ts","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-24T16:38:28.738Z","updated_at":"2025-12-24T16:41:00.939Z","closed_at":"2025-12-24T16:41:00.939Z","parent_id":"opencode-swarm-plugin--ys7z8-mjk8n0jbbb9","dependencies":[],"labels":[],"comments":[]}
8
- {"id":"opencode-swarm-plugin--ys7z8-mjk8n0jonu4","title":"Implement pre-built analytics queries (1-5)","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T16:38:28.740Z","updated_at":"2025-12-24T16:49:57.415Z","closed_at":"2025-12-24T16:49:57.415Z","parent_id":"opencode-swarm-plugin--ys7z8-mjk8n0jbbb9","dependencies":[],"labels":[],"comments":[]}
9
- {"id":"opencode-swarm-plugin--ys7z8-mjk979715dp","title":"Durable Streams Adapter for Hive Visualizer","description":"Phase 1 of Hive Visualizer: Create Durable Streams protocol adapter exposing swarm-mail events for real-time visualization.\n\nProtocol: https://github.com/durable-streams/durable-streams\n\nComponents:\n1. DurableStreamAdapter - wraps event store with read(offset, limit), head(), subscribe()\n2. HTTP Server - SSE endpoint at /streams/:project for live tailing\n3. Exports - expose from swarm-mail index","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-24T16:54:13.069Z","updated_at":"2025-12-24T20:52:11.488Z","closed_at":"2025-12-24T20:52:11.488Z","dependencies":[],"labels":[],"comments":[]}
10
- {"id":"opencode-swarm-plugin--ys7z8-mjk9797bp4t","title":"DurableStreamAdapter core implementation","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-24T16:54:13.079Z","updated_at":"2025-12-24T20:49:50.930Z","closed_at":"2025-12-24T20:49:50.930Z","parent_id":"opencode-swarm-plugin--ys7z8-mjk979715dp","dependencies":[],"labels":[],"comments":[]}
11
- {"id":"opencode-swarm-plugin--ys7z8-mjk9797g8pe","title":"Durable Streams HTTP server with SSE","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T16:54:13.084Z","updated_at":"2025-12-24T20:49:52.235Z","closed_at":"2025-12-24T20:49:52.235Z","parent_id":"opencode-swarm-plugin--ys7z8-mjk979715dp","dependencies":[],"labels":[],"comments":[]}
12
- {"id":"opencode-swarm-plugin--ys7z8-mjk9797i98d","title":"Export Durable Streams from swarm-mail index","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T16:54:13.086Z","updated_at":"2025-12-24T20:52:09.153Z","closed_at":"2025-12-24T20:52:09.153Z","parent_id":"opencode-swarm-plugin--ys7z8-mjk979715dp","dependencies":[],"labels":[],"comments":[]}
13
- {"id":"opencode-swarm-plugin--ys7z8-mjkn5xozcd6","title":"Wire captureDecomposition() into swarm_decompose","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-24T23:25:06.131Z","updated_at":"2025-12-24T23:34:22.895Z","closed_at":"2025-12-24T23:34:22.895Z","parent_id":"opencode-swarm-plugin--ys7z8-mjkn5xocowf","dependencies":[],"labels":[],"comments":[]}
14
- {"id":"opencode-swarm-plugin--ys7z8-mjkn5xocowf","title":"Wire Up Decomposition Eval Capture Pipeline","description":"Connect the existing eval-capture.ts functions to the swarm execution path so decomposition outcomes are recorded for evaluation.\n\n## Problem\nThe eval-capture.ts file has capture functions that are never called:\n- `captureDecomposition()` - not called from swarm_decompose\n- `captureSubtaskOutcome()` - not called from swarm_complete \n- `finalizeEvalRecord()` - not called from swarm_record_outcome\n\nCompare to coordinator events which ARE captured via `captureCoordinatorEvent()`.\n\n## Solution\nWire up the three capture functions to their respective tools:\n\n1. **swarm_decompose** → `captureDecomposition()`\n2. **swarm_complete** → `captureSubtaskOutcome()`\n3. **swarm_record_outcome** → `finalizeEvalRecord()`\n\n## Deliverables\n- Integration code in swarm tools\n- Tests verifying capture works\n- Updated README with eval workflow\n- Easy-to-run scripts in package.json\n\n## Success Criteria\n- `bunx evalite run evals/swarm-decomposition.eval.ts` passes (no missing table error)\n- After running a swarm, eval_records table has data\n- `pnpm eval:run` script works","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-24T23:25:06.108Z","updated_at":"2025-12-24T23:52:10.847Z","closed_at":"2025-12-24T23:52:10.847Z","dependencies":[],"labels":[],"comments":[]}
15
- {"id":"opencode-swarm-plugin--ys7z8-mjkn5xp1blq","title":"Wire captureSubtaskOutcome() into swarm_complete","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-24T23:25:06.133Z","updated_at":"2025-12-24T23:52:01.496Z","closed_at":"2025-12-24T23:52:01.496Z","parent_id":"opencode-swarm-plugin--ys7z8-mjkn5xocowf","dependencies":[],"labels":[],"comments":[]}
16
- {"id":"opencode-swarm-plugin--ys7z8-mjkn5xp41f2","title":"Wire finalizeEvalRecord() into swarm_record_outcome","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-24T23:25:06.136Z","updated_at":"2025-12-24T23:52:02.719Z","closed_at":"2025-12-24T23:52:02.719Z","parent_id":"opencode-swarm-plugin--ys7z8-mjkn5xocowf","dependencies":[],"labels":[],"comments":[]}
17
- {"id":"opencode-swarm-plugin--ys7z8-mjkn5xp793w","title":"Add eval scripts to package.json and update README","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-24T23:25:06.139Z","updated_at":"2025-12-24T23:52:04.385Z","closed_at":"2025-12-24T23:52:04.385Z","parent_id":"opencode-swarm-plugin--ys7z8-mjkn5xocowf","dependencies":[],"labels":[],"comments":[]}
18
- {"id":"opencode-swarm-plugin--ys7z8-mjkvvysb1bk","title":"Fix Eval Pipeline: Database Table + Scorer API","description":"Two fixes: 1) Ensure eval_records table is created when swarm-mail database initializes, 2) Fix composite scorer API usage in evalite tests","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T03:29:17.531Z","updated_at":"2025-12-25T03:42:14.497Z","closed_at":"2025-12-25T03:42:14.497Z","dependencies":[],"labels":[],"comments":[]}
19
- {"id":"opencode-swarm-plugin--ys7z8-mjkvvysjyrv","title":"Verify eval_records table creation in swarm-mail","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-25T03:29:17.539Z","updated_at":"2025-12-25T03:40:16.396Z","closed_at":"2025-12-25T03:40:16.396Z","parent_id":"opencode-swarm-plugin--ys7z8-mjkvvysb1bk","dependencies":[],"labels":[],"comments":[]}
20
- {"id":"opencode-swarm-plugin--ys7z8-mjkvvysl8ye","title":"Fix composite scorer API in coordinator-discipline.ts","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-25T03:29:17.541Z","updated_at":"2025-12-25T03:40:17.922Z","closed_at":"2025-12-25T03:40:17.922Z","parent_id":"opencode-swarm-plugin--ys7z8-mjkvvysb1bk","dependencies":[],"labels":[],"comments":[]}
21
- {"id":"opencode-swarm-plugin--ys7z8-mjkvvysnzae","title":"Fix composite scorer API in compaction-scorers.ts","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T03:29:17.543Z","updated_at":"2025-12-25T03:40:19.200Z","closed_at":"2025-12-25T03:40:19.200Z","parent_id":"opencode-swarm-plugin--ys7z8-mjkvvysb1bk","dependencies":[],"labels":[],"comments":[]}
22
- {"id":"opencode-swarm-plugin--ys7z8-mjkvvysrwgk","title":"Fix composite scorer API in coordinator-behavior.eval.ts","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T03:29:17.547Z","updated_at":"2025-12-25T03:42:04.249Z","closed_at":"2025-12-25T03:42:04.249Z","parent_id":"opencode-swarm-plugin--ys7z8-mjkvvysb1bk","dependencies":[],"labels":[],"comments":[]}
23
- {"id":"opencode-swarm-plugin--ys7z8-mjkwt9rqf2s","title":"Fix session ID propagation in eval capture","description":"Session IDs not flowing to captureCoordinatorEvent - 82% of events orphaned in unknown.jsonl. Root cause: swarm tools use process.env.OPENCODE_SESSION_ID which is not set, instead of ctx.sessionID which IS available.","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T03:55:11.414Z","updated_at":"2025-12-25T04:14:23.283Z","closed_at":"2025-12-25T04:14:23.283Z","dependencies":[],"labels":[],"comments":[]}
24
- {"id":"opencode-swarm-plugin--ys7z8-mjkwt9rzlw3","title":"Add sessionId parameter to captureCoordinatorEvent and update call sites","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-25T03:55:11.423Z","updated_at":"2025-12-25T04:05:28.792Z","closed_at":"2025-12-25T04:05:28.792Z","parent_id":"opencode-swarm-plugin--ys7z8-mjkwt9rqf2s","dependencies":[],"labels":[],"comments":[]}
25
- {"id":"opencode-swarm-plugin--ys7z8-mjkwt9s2boa","title":"Create migration script to re-attribute unknown.jsonl events to proper sessions","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-25T03:55:11.426Z","updated_at":"2025-12-25T04:05:29.764Z","closed_at":"2025-12-25T04:05:29.764Z","parent_id":"opencode-swarm-plugin--ys7z8-mjkwt9rqf2s","dependencies":[],"labels":[],"comments":[]}
26
- {"id":"opencode-swarm-plugin--ys7z8-mjkwt9s6xoa","title":"Run migration and verify data integrity","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T03:55:11.430Z","updated_at":"2025-12-25T04:14:16.676Z","closed_at":"2025-12-25T04:14:16.676Z","parent_id":"opencode-swarm-plugin--ys7z8-mjkwt9rqf2s","dependencies":[],"labels":[],"comments":[]}
27
- {"id":"opencode-swarm-plugin--ys7z8-mjkyhrqmecc","title":"Add quality gate filters to eval session loader","description":"Filter eval sessions by quality signals: minEvents >= 3, hasWorkerSpawn, hasReviewCompleted. Currently 67 of 82 sessions are noise (<3 events). Quality gate will keep ~15 high-signal sessions.","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T04:42:14.062Z","updated_at":"2025-12-25T04:49:40.809Z","closed_at":"2025-12-25T04:49:40.809Z","dependencies":[],"labels":[],"comments":[]}
28
- {"id":"opencode-swarm-plugin--ys7z8-mjkyhrr2qm7","title":"Add quality filter options to loadCapturedSessions with TDD","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-25T04:42:14.078Z","updated_at":"2025-12-25T04:49:39.904Z","closed_at":"2025-12-25T04:49:39.904Z","parent_id":"opencode-swarm-plugin--ys7z8-mjkyhrqmecc","dependencies":[],"labels":[],"comments":[]}
29
- {"id":"opencode-swarm-plugin--ys7z8-mjl04zn4u31","title":"Add eval_run plugin tool","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-25T05:28:17.008Z","updated_at":"2025-12-25T05:28:17.008Z","parent_id":"opencode-swarm-plugin--ys7z8-mjl04zmvv7c","dependencies":[],"labels":[],"comments":[]}
30
- {"id":"opencode-swarm-plugin--ys7z8-mjl04znglws","title":"Capture VIOLATION events for coordinator discipline","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-25T05:28:17.020Z","updated_at":"2025-12-25T05:28:17.020Z","parent_id":"opencode-swarm-plugin--ys7z8-mjl04zmvv7c","dependencies":[],"labels":[],"comments":[]}
31
- {"id":"opencode-swarm-plugin--ys7z8-mjl04zn8by5","title":"Capture decomposition_complete event","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-25T05:28:17.012Z","updated_at":"2025-12-25T05:38:07.026Z","closed_at":"2025-12-25T05:38:07.026Z","parent_id":"opencode-swarm-plugin--ys7z8-mjl04zmvv7c","dependencies":[],"labels":[],"comments":[]}
32
- {"id":"opencode-swarm-plugin--ys7z8-mjl04znn0uk","title":"Add review efficiency scorer","status":"in_progress","priority":2,"issue_type":"task","created_at":"2025-12-25T05:28:17.027Z","updated_at":"2025-12-25T05:37:03.084Z","parent_id":"opencode-swarm-plugin--ys7z8-mjl04zmvv7c","dependencies":[],"labels":[],"comments":[]}
33
- {"id":"opencode-swarm-plugin--ys7z8-mjl04znqie9","title":"Update spawnEfficiency scorer fallback","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T05:28:17.030Z","updated_at":"2025-12-25T05:29:34.561Z","closed_at":"2025-12-25T05:29:34.561Z","parent_id":"opencode-swarm-plugin--ys7z8-mjl04zmvv7c","dependencies":[],"labels":[],"comments":[]}
34
- {"id":"opencode-swarm-plugin--ys7z8-mjljadmu3bx","title":"Research: Learning Systems (confidence decay, pattern maturity, anti-patterns)","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-25T14:24:21.126Z","updated_at":"2025-12-25T14:24:21.126Z","parent_id":"opencode-swarm-plugin--ys7z8-mjljadmo9mg","dependencies":[],"labels":[],"comments":[]}
35
- {"id":"opencode-swarm-plugin--ys7z8-mjljadmyadr","title":"Research: Memory & Context Preservation (compaction, semantic memory)","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-25T14:24:21.130Z","updated_at":"2025-12-25T14:24:21.130Z","parent_id":"opencode-swarm-plugin--ys7z8-mjljadmo9mg","dependencies":[],"labels":[],"comments":[]}
36
- {"id":"opencode-swarm-plugin--ys7z8-mjljadn06xp","title":"Research: Observability & Evaluation (logging, eval capture, gates)","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-25T14:24:21.132Z","updated_at":"2025-12-25T14:24:21.132Z","parent_id":"opencode-swarm-plugin--ys7z8-mjljadmo9mg","dependencies":[],"labels":[],"comments":[]}
37
- {"id":"opencode-swarm-plugin--ys7z8-mjljadn1c2k","title":"Research: Skills System & Knowledge Injection","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-25T14:24:21.133Z","updated_at":"2025-12-25T14:24:21.133Z","parent_id":"opencode-swarm-plugin--ys7z8-mjljadmo9mg","dependencies":[],"labels":[],"comments":[]}
38
- {"id":"opencode-swarm-plugin--ys7z8-mjljadn8e6u","title":"Research: Existing ADRs & Documentation Gaps","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-25T14:24:21.140Z","updated_at":"2025-12-25T14:24:21.140Z","parent_id":"opencode-swarm-plugin--ys7z8-mjljadmo9mg","dependencies":[],"labels":[],"comments":[]}
39
- {"id":"opencode-swarm-plugin--ys7z8-mjljadnaj6o","title":"Synthesize: Write ADR-009 Pattern Catalog","status":"open","priority":0,"issue_type":"task","created_at":"2025-12-25T14:24:21.142Z","updated_at":"2025-12-25T14:24:21.142Z","parent_id":"opencode-swarm-plugin--ys7z8-mjljadmo9mg","dependencies":[],"labels":[],"comments":[]}
40
- {"id":"opencode-swarm-plugin--ys7z8-mjljadmo9mg","title":"ADR-009: Pattern Catalog and Innovation Documentation","description":"## ADR-009: Patterns from oh-my-opencode\n\nResearch complete. ADR written at `docs/planning/ADR-009-oh-my-opencode-patterns.md`\n\n### Patterns to Adopt (from code-yeongyu/oh-my-opencode)\n\n**HIGH PRIORITY:**\n1. 7-Section Delegation Protocol - structured coordinator → worker prompts\n2. Compaction Context Injection - preserve decomposition strategy through compaction\n3. Preemptive Compaction - compact at 80% threshold, not 100% overflow\n4. Event + Polling Hybrid - faster completion detection\n5. Parallel Execution Minimums - force 3+ parallel tool calls for researchers\n6. Context-Safe Tool Limits - hard caps on repo-autopsy, cass, find-exports\n\n**MEDIUM PRIORITY:**\n7. Todo-Aware Completion - check for unfinished work before marking done\n8. Think Mode Auto-Switching - extended thinking for complex decomposition\n\n### Implementation Phases\n- Phase 1: Delegation Protocol + Context Injection\n- Phase 2: Preemptive Compaction + Event Hybrid\n- Phase 3: Tool Limits + Parallel Enforcement\n- Phase 4: Bonus Features\n\n### Attribution\nAll patterns credited to code-yeongyu/oh-my-opencode (2961★)","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T14:24:21.120Z","updated_at":"2025-12-25T14:43:59.615Z","closed_at":"2025-12-25T14:43:59.615Z","dependencies":[],"labels":[],"comments":[]}
41
- {"id":"opencode-swarm-plugin--ys7z8-mjlk7js9bt1","title":"Eval System Full Audit","description":"Comprehensive audit of the evalite-based eval system. Investigate infrastructure, data sources, scorers, session logs, and identify improvement opportunities. Current scores: compaction-prompt 53%, coordinator-behavior 77%, example 0%, compaction-resumption 93%, swarm-decomposition 70%, coordinator-session 66%.","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T14:50:08.745Z","updated_at":"2025-12-25T15:04:48.646Z","closed_at":"2025-12-25T15:04:48.646Z","dependencies":[],"labels":[],"comments":[]}
42
- {"id":"opencode-swarm-plugin--ys7z8-mjlk7jsilk9","title":"Audit eval infrastructure and architecture","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-25T14:50:08.754Z","updated_at":"2025-12-25T14:59:50.106Z","closed_at":"2025-12-25T14:59:50.106Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlk7js9bt1","dependencies":[],"labels":[],"comments":[]}
43
- {"id":"opencode-swarm-plugin--ys7z8-mjlk7jsl4tt","title":"Analyze failing evals - example.eval.ts (0%) and compaction-prompt (53%)","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-25T14:50:08.757Z","updated_at":"2025-12-25T14:59:51.856Z","closed_at":"2025-12-25T14:59:51.856Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlk7js9bt1","dependencies":[],"labels":[],"comments":[]}
44
- {"id":"opencode-swarm-plugin--ys7z8-mjlk7jspacf","title":"Audit session data quality and filtering","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-25T14:50:08.761Z","updated_at":"2025-12-25T14:59:53.284Z","closed_at":"2025-12-25T14:59:53.284Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlk7js9bt1","dependencies":[],"labels":[],"comments":[]}
45
- {"id":"opencode-swarm-plugin--ys7z8-mjlk7jsrvls","title":"Analyze scorer implementations and scoring patterns","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-25T14:50:08.763Z","updated_at":"2025-12-25T14:59:54.612Z","closed_at":"2025-12-25T14:59:54.612Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlk7js9bt1","dependencies":[],"labels":[],"comments":[]}
46
- {"id":"opencode-swarm-plugin--ys7z8-mjlk7jstvch","title":"Synthesize findings and propose improvements","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T14:50:08.765Z","updated_at":"2025-12-25T15:04:46.898Z","closed_at":"2025-12-25T15:04:46.898Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlk7js9bt1","dependencies":[],"labels":[],"comments":[]}
47
- {"id":"opencode-swarm-plugin--ys7z8-mjl04zmvv7c","title":"Eval System Improvements: Tool + Event Capture + Scorers","description":"Improve eval system with:\n1. Plugin tool for running evals (eval_run)\n2. Capture decomposition_complete events\n3. Capture VIOLATION events\n4. Improve compaction prompt structure\n5. Add review efficiency scorer\n6. Enforce knowledge gathering validation\n\nTarget: 70% → 85% overall eval score","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T05:28:16.999Z","updated_at":"2025-12-25T16:06:41.043Z","closed_at":"2025-12-25T16:06:41.043Z","dependencies":[],"labels":[],"comments":[]}
48
- {"id":"opencode-swarm-plugin--ys7z8-mjl04znlxzw","title":"Improve compaction prompt structure","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T05:28:17.025Z","updated_at":"2025-12-25T16:06:31.435Z","closed_at":"2025-12-25T16:06:31.435Z","parent_id":"opencode-swarm-plugin--ys7z8-mjl04zmvv7c","dependencies":[],"labels":[],"comments":[]}
49
- {"id":"opencode-swarm-plugin--ys7z8-mjlnn93f5t1","title":"Eval-Driven Improvement Flywheel","description":"Wire up the complete eval improvement feedback loop:\n1. Connect eval-runner to eval-history (recordEvalRun)\n2. Add checkGate + learnFromEvalFailure integration\n3. Add eval:gate script for CI\n4. Inject failures into coordinator prompts\n5. Add GitHub Actions workflow\n\nGoal: Evals drive real improvement over time via automated regression detection and learning.","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T16:26:20.235Z","updated_at":"2025-12-25T16:49:21.513Z","closed_at":"2025-12-25T16:49:21.513Z","dependencies":[],"labels":[],"comments":[]}
50
- {"id":"opencode-swarm-plugin--ys7z8-mjlnn93leeb","title":"Wire recordEvalRun into eval-runner","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-25T16:26:20.241Z","updated_at":"2025-12-25T16:33:02.253Z","closed_at":"2025-12-25T16:33:02.253Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlnn93f5t1","dependencies":[],"labels":[],"comments":[]}
51
- {"id":"opencode-swarm-plugin--ys7z8-mjlnn93ux01","title":"Add checkGate + learnFromEvalFailure to eval-runner","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-25T16:26:20.250Z","updated_at":"2025-12-25T16:40:50.736Z","closed_at":"2025-12-25T16:40:50.736Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlnn93f5t1","dependencies":[],"labels":[],"comments":[]}
52
- {"id":"opencode-swarm-plugin--ys7z8-mjlnn93vdrq","title":"Add eval:gate script for CI","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T16:26:20.251Z","updated_at":"2025-12-25T16:46:33.480Z","closed_at":"2025-12-25T16:46:33.480Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlnn93f5t1","dependencies":[],"labels":[],"comments":[]}
53
- {"id":"opencode-swarm-plugin--ys7z8-mjlnn93xd5t","title":"Inject eval failures into coordinator prompts","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T16:26:20.253Z","updated_at":"2025-12-25T16:46:35.136Z","closed_at":"2025-12-25T16:46:35.136Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlnn93f5t1","dependencies":[],"labels":[],"comments":[]}
54
- {"id":"opencode-swarm-plugin--ys7z8-mjlnn9412oc","title":"Add GitHub Actions eval workflow","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T16:26:20.257Z","updated_at":"2025-12-25T16:49:12.694Z","closed_at":"2025-12-25T16:49:12.694Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlnn93f5t1","dependencies":[],"labels":[],"comments":[]}
55
- {"id":"opencode-swarm-plugin--ys7z8-mjljadmw66u","title":"Research: Swarm Coordination (decomposition, orchestration, review, worktree)","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-25T14:24:21.128Z","updated_at":"2025-12-25T16:50:12.242Z","closed_at":"2025-12-25T16:50:12.242Z","parent_id":"opencode-swarm-plugin--ys7z8-mjljadmo9mg","dependencies":[],"labels":[],"comments":[]}
56
- {"id":"opencode-swarm-plugin--ys7z8-mjljadn7knk","title":"Research: Mandates, Guardrails & Structured Output","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-25T14:24:21.139Z","updated_at":"2025-12-25T16:50:13.275Z","closed_at":"2025-12-25T16:50:13.275Z","parent_id":"opencode-swarm-plugin--ys7z8-mjljadmo9mg","dependencies":[],"labels":[],"comments":[]}
57
- {"id":"opencode-swarm-plugin--ys7z8-mjltv0j8x4n","title":"Audit & fix data capture gaps","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-25T19:20:20.084Z","updated_at":"2025-12-25T19:30:57.891Z","closed_at":"2025-12-25T19:30:57.891Z","parent_id":"opencode-swarm-plugin--ys7z8-mjltv0ievr0","dependencies":[],"labels":[],"comments":[]}
58
- {"id":"opencode-swarm-plugin--ys7z8-mjltv0jcpjx","title":"Add swarm stats CLI command","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-25T19:20:20.088Z","updated_at":"2025-12-25T19:30:59.853Z","closed_at":"2025-12-25T19:30:59.853Z","parent_id":"opencode-swarm-plugin--ys7z8-mjltv0ievr0","dependencies":[],"labels":[],"comments":[]}
59
- {"id":"opencode-swarm-plugin--ys7z8-mjltv0jhsd6","title":"Add swarm history CLI command","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-25T19:20:20.093Z","updated_at":"2025-12-25T19:31:01.913Z","closed_at":"2025-12-25T19:31:01.913Z","parent_id":"opencode-swarm-plugin--ys7z8-mjltv0ievr0","dependencies":[],"labels":[],"comments":[]}
60
- {"id":"opencode-swarm-plugin--ys7z8-mjltv0jlqz3","title":"Add prompt injection of insights","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:20:20.097Z","updated_at":"2025-12-25T19:41:22.866Z","closed_at":"2025-12-25T19:41:22.866Z","parent_id":"opencode-swarm-plugin--ys7z8-mjltv0ievr0","dependencies":[],"labels":[],"comments":[]}
61
- {"id":"opencode-swarm-plugin--ys7z8-mjltv0jn9mo","title":"Create TanStack Start dashboard scaffold","description":"BLOCKED: TanStack version conflict. @tanstack/start-config@1.120.20 expects CONSTANTS export missing from @tanstack/router-generator@1.120.4. Scaffold created but dev server fails. Options: downgrade to 1.91.x, migrate to Vite, or await patch.","status":"blocked","priority":2,"issue_type":"task","created_at":"2025-12-25T19:20:20.099Z","updated_at":"2025-12-25T19:41:25.571Z","parent_id":"opencode-swarm-plugin--ys7z8-mjltv0ievr0","dependencies":[],"labels":[],"comments":[]}
62
- {"id":"opencode-swarm-plugin--ys7z8-mjltv0jqpc4","title":"Add real-time streaming to dashboard","description":"BLOCKED: Depends on dashboard scaffold (mjltv0jn9mo) which is blocked by TanStack version conflict.","status":"blocked","priority":3,"issue_type":"task","created_at":"2025-12-25T19:20:20.102Z","updated_at":"2025-12-25T19:41:27.255Z","parent_id":"opencode-swarm-plugin--ys7z8-mjltv0ievr0","dependencies":[],"labels":[],"comments":[]}
63
- {"id":"opencode-swarm-plugin--ys7z8-mjlu8vf4cir","title":"handleSubtaskOutcomeDrizzle is a stub - outcomes not persisted","description":"Found during O11y epic: packages/swarm-mail/src/streams/store-drizzle.ts has handleSubtaskOutcomeDrizzle() as a stub. This means subtask_outcome events are emitted but eval_records.outcomes array never gets populated.\n\nImpact: swarm history shows empty, success rates always 0%.\n\nLocation: packages/swarm-mail/src/streams/store-drizzle.ts\nRelated: handleSubtaskOutcome in store.ts (PGlite version) has the full implementation.","status":"closed","priority":0,"issue_type":"bug","created_at":"2025-12-25T19:31:06.640Z","updated_at":"2025-12-25T19:44:30.687Z","closed_at":"2025-12-25T19:44:30.687Z","dependencies":[],"labels":[],"comments":[]}
64
- {"id":"opencode-swarm-plugin--ys7z8-mjkn1kfmt00","title":"Hive TUI - Terminal Visualizer for Swarm Activity","description":"Phase 2 of Hive Visualizer: Terminal-based dashboard using OpenTUI showing real-time swarm activity.\n\n## Architecture\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│ HIVE TUI │\n├─────────────────────────────────────────────────────────────┤\n│ ┌─────────────┐ ┌─────────────┐ ┌─────────────────┐ │\n│ │ AGENTS │ │ EVENTS │ │ CELLS │ │\n│ │ PANE │ │ PANE │ │ PANE │ │\n│ │ │ │ │ │ │ │\n│ │ SwiftStone │ │ agent_reg │ │ ● Epic-123 │ │\n│ │ BlueLake ● │ │ task_start │ │ ├─ Task-1 ✓ │ │\n│ │ IronPeak │ │ msg_sent │ │ ├─ Task-2 ◐ │ │\n│ │ │ │ ... │ │ └─ Task-3 ○ │ │\n│ └─────────────┘ └─────────────┘ └─────────────────┘ │\n└─────────────────────────────────────────────────────────────┘\n ▲\n │ SSE\n ┌─────────┴─────────┐\n │ DurableStreamServer│\n │ (from Phase 1) │\n └───────────────────┘\n```\n\n## Tech Stack\n- OpenTUI (@opentui/core) - TUI framework from SST\n- Durable Streams SSE client - consumes Phase 1 server\n- New package: packages/hive-tui/\n\n## Execution Order\n1. Package scaffold (first - creates structure)\n2. Data layer, Agents pane, Events pane, Cells pane (parallel after 1)\n3. Main layout + CLI (last - composes everything)\n\n## Success Criteria\n- `hive-tui` command launches dashboard\n- Live updates via SSE from DurableStreamServer\n- Keyboard navigation between panes\n- Shows: active agents, event stream, cell tree with status","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-24T23:21:42.322Z","updated_at":"2025-12-25T20:26:24.190Z","closed_at":"2025-12-25T20:26:24.190Z","dependencies":[],"labels":[],"comments":[]}
65
- {"id":"opencode-swarm-plugin--ys7z8-mjkn1kfwppx","title":"Package scaffold (packages/hive-tui/)","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-24T23:21:42.332Z","updated_at":"2025-12-25T20:26:43.234Z","closed_at":"2025-12-25T20:26:43.234Z","parent_id":"opencode-swarm-plugin--ys7z8-mjkn1kfmt00","dependencies":[],"labels":[],"comments":[]}
66
- {"id":"opencode-swarm-plugin--ys7z8-mjkn1kfzpxp","title":"SSE data layer connecting to DurableStreamServer","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-24T23:21:42.335Z","updated_at":"2025-12-25T20:26:25.511Z","closed_at":"2025-12-25T20:26:25.511Z","parent_id":"opencode-swarm-plugin--ys7z8-mjkn1kfmt00","dependencies":[],"labels":[],"comments":[]}
67
- {"id":"opencode-swarm-plugin--ys7z8-mjkn1kg44fk","title":"Agents pane component","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T23:21:42.340Z","updated_at":"2025-12-25T20:25:55.030Z","closed_at":"2025-12-25T20:25:55.030Z","parent_id":"opencode-swarm-plugin--ys7z8-mjkn1kfmt00","dependencies":[],"labels":[],"comments":[]}
68
- {"id":"opencode-swarm-plugin--ys7z8-mjkn1kg8qrn","title":"Events pane component with live tail","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T23:21:42.344Z","updated_at":"2025-12-25T20:25:56.299Z","closed_at":"2025-12-25T20:25:56.299Z","parent_id":"opencode-swarm-plugin--ys7z8-mjkn1kfmt00","dependencies":[],"labels":[],"comments":[]}
69
- {"id":"opencode-swarm-plugin--ys7z8-mjkn1kga43j","title":"Cells pane component with tree view","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T23:21:42.346Z","updated_at":"2025-12-25T20:25:57.454Z","closed_at":"2025-12-25T20:25:57.454Z","parent_id":"opencode-swarm-plugin--ys7z8-mjkn1kfmt00","dependencies":[],"labels":[],"comments":[]}
70
- {"id":"opencode-swarm-plugin--ys7z8-mjkn1kgcjpl","title":"Main layout + CLI entry point","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-24T23:21:42.348Z","updated_at":"2025-12-25T20:25:53.869Z","closed_at":"2025-12-25T20:25:53.869Z","parent_id":"opencode-swarm-plugin--ys7z8-mjkn1kfmt00","dependencies":[],"labels":[],"comments":[]}
71
- {"id":"opencode-swarm-plugin--ys7z8-mjknrr4aqj0","title":"Add OAuth","description":"Implement OAuth authentication","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-24T23:42:04.042Z","updated_at":"2025-12-25T20:26:26.832Z","closed_at":"2025-12-25T20:26:26.832Z","dependencies":[],"labels":[],"comments":[]}
72
- {"id":"opencode-swarm-plugin--ys7z8-mjknrr4ghia","title":"Add auth service","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-24T23:42:04.048Z","updated_at":"2025-12-25T20:25:58.588Z","closed_at":"2025-12-25T20:25:58.588Z","parent_id":"opencode-swarm-plugin--ys7z8-mjknrr4aqj0","dependencies":[],"labels":[],"comments":[]}
73
- {"id":"opencode-swarm-plugin--ys7z8-mjknrr4ssue","title":"Fix bug","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-24T23:42:04.060Z","updated_at":"2025-12-25T20:26:27.586Z","closed_at":"2025-12-25T20:26:27.586Z","dependencies":[],"labels":[],"comments":[]}
74
- {"id":"opencode-swarm-plugin--ys7z8-mjknrr4uw8i","title":"Fix auth bug","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-24T23:42:04.062Z","updated_at":"2025-12-25T20:26:28.581Z","closed_at":"2025-12-25T20:26:28.581Z","parent_id":"opencode-swarm-plugin--ys7z8-mjknrr4ssue","dependencies":[],"labels":[],"comments":[]}
75
- {"id":"opencode-swarm-plugin--ys7z8-mjlt2jmpqns","title":"Test Epic for Eval Pipeline","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T18:58:11.809Z","updated_at":"2025-12-25T20:26:29.651Z","closed_at":"2025-12-25T20:26:29.651Z","dependencies":[],"labels":[],"comments":[]}
76
- {"id":"opencode-swarm-plugin--ys7z8-mjlt2jmvwt3","title":"Subtask 1","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T18:58:11.815Z","updated_at":"2025-12-25T20:25:59.350Z","closed_at":"2025-12-25T20:25:59.350Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlt2jmpqns","dependencies":[],"labels":[],"comments":[]}
77
- {"id":"opencode-swarm-plugin--ys7z8-mjlt2jmx81f","title":"Subtask 2","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T18:58:11.817Z","updated_at":"2025-12-25T20:26:00.139Z","closed_at":"2025-12-25T20:26:00.139Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlt2jmpqns","dependencies":[],"labels":[],"comments":[]}
78
- {"id":"opencode-swarm-plugin--ys7z8-mjlt58qq9m4","title":"Test Epic 1","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T19:00:17.666Z","updated_at":"2025-12-25T20:26:30.477Z","closed_at":"2025-12-25T20:26:30.477Z","dependencies":[],"labels":[],"comments":[]}
79
- {"id":"opencode-swarm-plugin--ys7z8-mjlt58qxi13","title":"Subtask 0.1","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:00:17.673Z","updated_at":"2025-12-25T20:26:01.006Z","closed_at":"2025-12-25T20:26:01.006Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlt58qq9m4","dependencies":[],"labels":[],"comments":[]}
80
- {"id":"opencode-swarm-plugin--ys7z8-mjlt58r3din","title":"Subtask 0.2","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:00:17.679Z","updated_at":"2025-12-25T20:26:01.782Z","closed_at":"2025-12-25T20:26:01.782Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlt58qq9m4","dependencies":[],"labels":[],"comments":[]}
81
- {"id":"opencode-swarm-plugin--ys7z8-mjlt58rnyoo","title":"Test Epic 2","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T19:00:17.699Z","updated_at":"2025-12-25T20:26:31.288Z","closed_at":"2025-12-25T20:26:31.288Z","dependencies":[],"labels":[],"comments":[]}
82
- {"id":"opencode-swarm-plugin--ys7z8-mjlt58rpj98","title":"Subtask 1.1","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:00:17.701Z","updated_at":"2025-12-25T20:26:02.519Z","closed_at":"2025-12-25T20:26:02.519Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlt58rnyoo","dependencies":[],"labels":[],"comments":[]}
83
- {"id":"opencode-swarm-plugin--ys7z8-mjlt58rrg2w","title":"Subtask 1.2","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:00:17.703Z","updated_at":"2025-12-25T20:26:16.942Z","closed_at":"2025-12-25T20:26:16.942Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlt58rnyoo","dependencies":[],"labels":[],"comments":[]}
84
- {"id":"opencode-swarm-plugin--ys7z8-mjlt58s4r63","title":"Test Epic 3","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T19:00:17.716Z","updated_at":"2025-12-25T20:26:32.137Z","closed_at":"2025-12-25T20:26:32.137Z","dependencies":[],"labels":[],"comments":[]}
85
- {"id":"opencode-swarm-plugin--ys7z8-mjlt58s6xsl","title":"Subtask 2.1","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:00:17.718Z","updated_at":"2025-12-25T20:26:17.878Z","closed_at":"2025-12-25T20:26:17.878Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlt58s4r63","dependencies":[],"labels":[],"comments":[]}
86
- {"id":"opencode-swarm-plugin--ys7z8-mjlt58s8wgu","title":"Subtask 2.2","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:00:17.720Z","updated_at":"2025-12-25T20:26:18.708Z","closed_at":"2025-12-25T20:26:18.708Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlt58s4r63","dependencies":[],"labels":[],"comments":[]}
87
- {"id":"opencode-swarm-plugin--ys7z8-mjlt58sdhmg","title":"Test Epic 4","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T19:00:17.725Z","updated_at":"2025-12-25T20:26:33.048Z","closed_at":"2025-12-25T20:26:33.048Z","dependencies":[],"labels":[],"comments":[]}
88
- {"id":"opencode-swarm-plugin--ys7z8-mjlt58sggac","title":"Subtask 3.1","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:00:17.728Z","updated_at":"2025-12-25T20:26:20.429Z","closed_at":"2025-12-25T20:26:20.429Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlt58sdhmg","dependencies":[],"labels":[],"comments":[]}
89
- {"id":"opencode-swarm-plugin--ys7z8-mjlt58sih1z","title":"Subtask 3.2","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:00:17.730Z","updated_at":"2025-12-25T20:26:20.607Z","closed_at":"2025-12-25T20:26:20.607Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlt58sdhmg","dependencies":[],"labels":[],"comments":[]}
90
- {"id":"opencode-swarm-plugin--ys7z8-mjlt58srqht","title":"Test Epic 5","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T19:00:17.739Z","updated_at":"2025-12-25T20:26:33.601Z","closed_at":"2025-12-25T20:26:33.601Z","dependencies":[],"labels":[],"comments":[]}
91
- {"id":"opencode-swarm-plugin--ys7z8-mjlt58st6u2","title":"Subtask 4.1","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:00:17.741Z","updated_at":"2025-12-25T20:26:21.379Z","closed_at":"2025-12-25T20:26:21.379Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlt58srqht","dependencies":[],"labels":[],"comments":[]}
92
- {"id":"opencode-swarm-plugin--ys7z8-mjlt58svjte","title":"Subtask 4.2","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:00:17.743Z","updated_at":"2025-12-25T20:26:22.297Z","closed_at":"2025-12-25T20:26:22.297Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlt58srqht","dependencies":[],"labels":[],"comments":[]}
93
- {"id":"opencode-swarm-plugin--ys7z8-mjlv8hy1tzf","title":"Vite + React Dashboard (replacing TanStack Start)","description":"Fresh Vite + React dashboard replacing blocked TanStack Start package. Preserves reusable components (StatsGrid, SwarmCard, api.ts). Provides real-time visualization of swarm activity via SSE.","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T19:58:48.793Z","updated_at":"2025-12-25T20:27:23.720Z","closed_at":"2025-12-25T20:27:23.720Z","dependencies":[],"labels":[],"comments":[]}
94
- {"id":"opencode-swarm-plugin--ys7z8-mjlv8hylexw","title":"Package scaffold: Delete TanStack, create Vite + React","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-25T19:58:48.813Z","updated_at":"2025-12-25T20:26:45.183Z","closed_at":"2025-12-25T20:26:45.183Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlv8hy1tzf","dependencies":[],"labels":[],"comments":[]}
95
- {"id":"opencode-swarm-plugin--ys7z8-mjlv8hz0mpf","title":"SSE data layer with EventSource hook","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:58:48.828Z","updated_at":"2025-12-25T20:08:52.360Z","closed_at":"2025-12-25T20:08:52.360Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlv8hy1tzf","dependencies":[],"labels":[],"comments":[]}
96
- {"id":"opencode-swarm-plugin--ys7z8-mjlv8hz9ovm","title":"Agents pane component","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:58:48.837Z","updated_at":"2025-12-25T20:18:32.293Z","closed_at":"2025-12-25T20:18:32.293Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlv8hy1tzf","dependencies":[],"labels":[],"comments":[]}
97
- {"id":"opencode-swarm-plugin--ys7z8-mjlv8hzdnf2","title":"Events pane with live tail","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:58:48.841Z","updated_at":"2025-12-25T20:18:33.574Z","closed_at":"2025-12-25T20:18:33.574Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlv8hy1tzf","dependencies":[],"labels":[],"comments":[]}
98
- {"id":"opencode-swarm-plugin--ys7z8-mjlv8hzi0bv","title":"Cells pane with tree view","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T19:58:48.846Z","updated_at":"2025-12-25T20:18:34.562Z","closed_at":"2025-12-25T20:18:34.562Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlv8hy1tzf","dependencies":[],"labels":[],"comments":[]}
99
- {"id":"opencode-swarm-plugin--ys7z8-mjlv8hzxyee","title":"Main layout with keyboard navigation","status":"closed","priority":3,"issue_type":"task","created_at":"2025-12-25T19:58:48.861Z","updated_at":"2025-12-25T20:24:43.227Z","closed_at":"2025-12-25T20:24:43.227Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlv8hy1tzf","dependencies":[],"labels":[],"comments":[]}
100
- {"id":"opencode-swarm-plugin--ys7z8-mjlm2nmf2hw","title":"P0 Eval Fixes","description":"Immediate fixes from eval audit. Target: restore eval health (0%→100%, 53%→70%), remove 250 LOC dead code.","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T15:42:19.671Z","updated_at":"2025-12-25T20:40:14.672Z","closed_at":"2025-12-25T20:40:14.672Z","dependencies":[],"labels":[],"comments":[]}
101
- {"id":"opencode-swarm-plugin--ys7z8-mjlm2nmlu3m","title":"Fix example.eval.ts data/task mismatch","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-25T15:42:19.677Z","updated_at":"2025-12-25T20:40:00.437Z","closed_at":"2025-12-25T20:40:00.437Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlm2nmf2hw","dependencies":[],"labels":[],"comments":[]}
102
- {"id":"opencode-swarm-plugin--ys7z8-mjlm2nmont1","title":"Fix compaction-prompt case-sensitive regex and missing tools","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-25T15:42:19.680Z","updated_at":"2025-12-25T20:40:02.213Z","closed_at":"2025-12-25T20:40:02.213Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlm2nmf2hw","dependencies":[],"labels":[],"comments":[]}
103
- {"id":"opencode-swarm-plugin--ys7z8-mjlm2nmt1kq","title":"Remove 4 unused coordinator scorers","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-25T15:42:19.685Z","updated_at":"2025-12-25T20:40:03.974Z","closed_at":"2025-12-25T20:40:03.974Z","parent_id":"opencode-swarm-plugin--ys7z8-mjlm2nmf2hw","dependencies":[],"labels":[],"comments":[]}
104
- {"id":"opencode-swarm-plugin--ys7z8-mjlwcoh8ut2","title":"Add `swarm serve` command to start SSE server","description":"Add a `serve` subcommand to bin/swarm.ts that starts the DurableStreamServer on a configurable port (default 3001).\n\nFiles: bin/swarm.ts\n\nImplementation:\n1. Add `serve` case to the switch statement\n2. Import createDurableStreamServer from swarm-mail\n3. Start server with adapter from getSwarmMailLibSQL()\n4. Print URL to console\n5. Keep process alive\n\nExample usage: `swarm serve --port 3001`\n\nThe dashboard at localhost:5173 will connect to this SSE endpoint.","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T20:30:03.500Z","updated_at":"2025-12-25T20:40:05.728Z","closed_at":"2025-12-25T20:40:05.728Z","dependencies":[],"labels":[],"comments":[]}
105
- {"id":"opencode-swarm-plugin--ys7z8-mjlwcslohuv","title":"Wire dashboard panes to real swarm-mail data","description":"Connect CellsPane and AgentsPane to real data from the SSE server.\n\nFiles: \n- packages/swarm-dashboard/src/lib/api.ts\n- packages/swarm-dashboard/src/components/CellsPane.tsx\n- packages/swarm-dashboard/src/components/AgentsPane.tsx\n- packages/swarm-dashboard/src/hooks/useSwarmEvents.ts\n\nImplementation:\n1. Update api.ts to fetch cells from hive (can use REST endpoint or derive from events)\n2. Update CellsPane to use real cell data instead of mock\n3. Update AgentsPane to derive agent list from SSE events (agent_registered events)\n4. Ensure useSwarmEvents properly accumulates agent state\n\nThe SSE server runs at localhost:3001 (from `swarm serve` command).","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-25T20:30:08.844Z","updated_at":"2025-12-25T20:40:07.548Z","closed_at":"2025-12-25T20:40:07.548Z","dependencies":[],"labels":[],"comments":[]}
106
- {"id":"opencode-swarm-plugin--ys7z8-mjltv0ievr0","title":"Swarm O11y & Eval Insights Pipeline","description":"Comprehensive observability and eval insights for swarm coordination.\n\nCOMPLETED:\n1. ✅ `swarm serve` command - starts SSE server on configurable port\n2. ✅ Dashboard panes wired to real data (CellsPane, AgentsPane)\n3. ✅ Vite + React dashboard with SSE hooks\n\nREMAINING:\n- GET /cells endpoint on server (dashboard blocked on this)\n- Fix dashboard test fixtures for mock server\n- CLI commands: `swarm stats`, `swarm history`\n- Prompt injection for insights","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-25T19:20:20.054Z","updated_at":"2025-12-26T02:08:19.642Z","closed_at":"2025-12-26T02:08:19.642Z","dependencies":[],"labels":[],"comments":[]}
107
- {"id":"opencode-swarm-plugin--ys7z8-mjm7ecfjfk6","title":"Add GET /cells endpoint to DurableStreamServer","description":"Add a REST endpoint to DurableStreamServer that returns cells from the hive.\n\nFile: packages/swarm-mail/src/streams/durable-server.ts\n\nImplementation:\n1. Add GET /cells route handler\n2. Query cells from HiveAdapter (already available via createHiveAdapter)\n3. Return JSON array of cells with tree structure\n4. Add tests in durable-server.test.ts\n\nThe dashboard CellsPane is blocked on this endpoint.","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-26T01:39:16.975Z","updated_at":"2025-12-26T01:49:06.122Z","closed_at":"2025-12-26T01:49:06.122Z","dependencies":[],"labels":[],"comments":[]}
108
- {"id":"opencode-swarm-plugin--ys7z8-mjm7eejlqob","title":"Fix dashboard test fixtures for mock server","description":"Fix failing dashboard tests by adding proper mock server fixtures.\n\nFiles:\n- packages/swarm-dashboard/src/components/CellsPane.test.tsx\n- packages/swarm-dashboard/src/lib/api.test.ts\n\nImplementation:\n1. Mock fetch() for /cells endpoint\n2. Provide realistic cell data fixtures\n3. Fix async timing issues in tests\n4. Ensure all 32 tests pass","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T01:39:19.713Z","updated_at":"2025-12-26T01:49:09.474Z","closed_at":"2025-12-26T01:49:09.474Z","dependencies":[],"labels":[],"comments":[]}
109
- {"id":"opencode-swarm-plugin--ys7z8-mjm7egyyxnu","title":"Add `swarm stats` CLI command","description":"Add a `stats` subcommand to bin/swarm.ts that displays swarm analytics.\n\nFile: bin/swarm.ts\n\nImplementation:\n1. Add `stats` case to switch statement\n2. Query analytics from swarm-mail (getAnalytics or similar)\n3. Display: total swarms, success rate, avg duration, top strategies\n4. Use @clack/prompts for nice formatting\n5. Add tests in bin/swarm.test.ts","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T01:39:22.858Z","updated_at":"2025-12-26T01:52:09.421Z","closed_at":"2025-12-26T01:52:09.421Z","dependencies":[],"labels":[],"comments":[]}
110
- {"id":"opencode-swarm-plugin--ys7z8-mjm7ej3gkdr","title":"Add `swarm history` CLI command","description":"Add a `history` subcommand to bin/swarm.ts that shows past swarm executions.\n\nFile: bin/swarm.ts\n\nImplementation:\n1. Add `history` case to switch statement\n2. Query eval_records from swarm-mail\n3. Display: epic title, date, workers, success/fail, duration\n4. Support --limit flag (default 10)\n5. Add tests in bin/swarm.test.ts","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T01:39:25.612Z","updated_at":"2025-12-26T01:52:10.181Z","closed_at":"2025-12-26T01:52:10.181Z","dependencies":[],"labels":[],"comments":[]}
111
- {"id":"opencode-swarm-plugin--ys7z8-mjm7elm2poh","title":"Create swarm-insights data layer","description":"Create a data layer that aggregates insights for prompt injection.\n\nFile: src/swarm-insights.ts (NEW)\n\nImplementation:\n1. getStrategyInsights(task) - success rates by strategy for similar tasks\n2. getFileInsights(files) - past issues, gotchas for specific files\n3. getPatternInsights() - common failure patterns, anti-patterns\n4. Cache results to avoid repeated queries\n5. Add tests in swarm-insights.test.ts","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T01:39:28.874Z","updated_at":"2025-12-26T01:57:17.504Z","closed_at":"2025-12-26T01:57:17.504Z","dependencies":[],"labels":[],"comments":[]}
112
- {"id":"opencode-swarm-plugin--ys7z8-mjm7eo34l57","title":"Inject insights into coordinator prompts","description":"Inject aggregated insights into coordinator prompts before decomposition.\n\nFile: src/swarm-prompts.ts\n\nImplementation:\n1. Call getStrategyInsights() in swarm_plan_prompt\n2. Add \"## Historical Insights\" section to prompt\n3. Include: strategy success rates, common pitfalls, recommendations\n4. Keep injection concise (<500 tokens)\n5. Add tests verifying injection","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T01:39:32.080Z","updated_at":"2025-12-26T02:03:27.468Z","closed_at":"2025-12-26T02:03:27.468Z","dependencies":[],"labels":[],"comments":[]}
113
- {"id":"opencode-swarm-plugin--ys7z8-mjm7eq8o1oq","title":"Inject insights into worker prompts","description":"Inject file-specific insights into worker prompts.\n\nFile: src/swarm-prompts.ts\n\nImplementation:\n1. Call getFileInsights(files) in swarm_spawn_subtask\n2. Add \"## File-Specific Gotchas\" section to worker prompt\n3. Include: past bugs in these files, known issues, patterns\n4. Query semantic-memory for relevant learnings\n5. Keep injection concise (<300 tokens per file)\n6. Add tests verifying injection","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T01:39:34.872Z","updated_at":"2025-12-26T02:08:10.131Z","closed_at":"2025-12-26T02:08:10.131Z","dependencies":[],"labels":[],"comments":[]}
114
- {"id":"opencode-swarm-plugin--ys7z8-mjmadcpu98d","title":"Document swarm-insights layer + CLI help + plugin template","description":"Full documentation for the new swarm-insights data layer:\n- README.md: Add swarm-insights architecture section\n- CLI help: Update swarm stats/history descriptions\n- Plugin template: Add swarm-insights tool descriptions\n- AGENTS.md: Document insights tools for agents\n- JSDoc: Ensure swarm-insights.ts has complete docs\n- Changeset: Document the new feature for release","status":"open","priority":1,"issue_type":"epic","created_at":"2025-12-26T03:02:29.538Z","updated_at":"2025-12-26T03:02:29.538Z","dependencies":[],"labels":[],"comments":[]}
115
- {"id":"opencode-swarm-plugin--ys7z8-mjmadcq6aib","title":"Update CLI help text for stats/history commands","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-26T03:02:29.550Z","updated_at":"2025-12-26T03:02:29.550Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmadcpu98d","dependencies":[],"labels":[],"comments":[]}
116
- {"id":"opencode-swarm-plugin--ys7z8-mjmadcq85et","title":"Add swarm-insights tools to plugin-wrapper-template.ts","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-26T03:02:29.552Z","updated_at":"2025-12-26T03:02:29.552Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmadcpu98d","dependencies":[],"labels":[],"comments":[]}
117
- {"id":"opencode-swarm-plugin--ys7z8-mjmadcqag0y","title":"Ensure swarm-insights.ts has complete JSDoc","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-26T03:02:29.554Z","updated_at":"2025-12-26T03:02:29.554Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmadcpu98d","dependencies":[],"labels":[],"comments":[]}
118
- {"id":"opencode-swarm-plugin--ys7z8-mjmadcqcklk","title":"Create changeset for swarm-insights feature","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-26T03:02:29.556Z","updated_at":"2025-12-26T03:02:29.556Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmadcpu98d","dependencies":[],"labels":[],"comments":[]}
119
- {"id":"opencode-swarm-plugin--ys7z8-mjmadcq2s4l","title":"Update README.md with swarm-insights architecture","status":"closed","priority":2,"issue_type":"task","created_at":"2025-12-26T03:02:29.546Z","updated_at":"2025-12-26T03:12:28.691Z","closed_at":"2025-12-26T03:12:28.691Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmadcpu98d","dependencies":[],"labels":[],"comments":[]}
120
- {"id":"opencode-swarm-plugin--ys7z8-mjmavq7f31x","title":"ADR-010: CASS Inhousing Feasibility Study","description":"Deep dive into CASS (coding_agent_session_search) to determine if we should bring cross-agent session search in-house, eliminating the Python dependency.\n\n**Deliverables:**\n1. Full architecture analysis of CASS\n2. Gap analysis vs our semantic-memory\n3. Agent session format survey\n4. ADR-010 with TDD implementation plan, docs, and observability\n\n**Success Criteria:**\n- Clear recommendation: inhouse vs keep vs hybrid\n- If inhouse: schema design, TDD test plan, effort estimate\n- Observability hooks designed (aligns with ADR-005)\n- Migration path documented","status":"closed","priority":1,"issue_type":"epic","created_at":"2025-12-26T03:16:46.827Z","updated_at":"2025-12-26T03:29:01.651Z","closed_at":"2025-12-26T03:29:01.651Z","dependencies":[],"labels":[],"comments":[]}
121
- {"id":"opencode-swarm-plugin--ys7z8-mjmavq7m7od","title":"T1: CASS Architecture Deep Dive","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-26T03:16:46.834Z","updated_at":"2025-12-26T03:22:05.154Z","closed_at":"2025-12-26T03:22:05.154Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmavq7f31x","dependencies":[],"labels":[],"comments":[]}
122
- {"id":"opencode-swarm-plugin--ys7z8-mjmavq7pz17","title":"T2: Semantic Memory Gap Analysis","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-26T03:16:46.837Z","updated_at":"2025-12-26T03:22:06.745Z","closed_at":"2025-12-26T03:22:06.745Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmavq7f31x","dependencies":[],"labels":[],"comments":[]}
123
- {"id":"opencode-swarm-plugin--ys7z8-mjmavq7rt9z","title":"T3: Agent Session Format Survey","status":"closed","priority":0,"issue_type":"task","created_at":"2025-12-26T03:16:46.839Z","updated_at":"2025-12-26T03:22:08.486Z","closed_at":"2025-12-26T03:22:08.486Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmavq7f31x","dependencies":[],"labels":[],"comments":[]}
124
- {"id":"opencode-swarm-plugin--ys7z8-mjmavq7va7b","title":"T4: Write ADR-010 with TDD Plan","status":"closed","priority":1,"issue_type":"task","created_at":"2025-12-26T03:16:46.843Z","updated_at":"2025-12-26T03:28:59.753Z","closed_at":"2025-12-26T03:28:59.753Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmavq7f31x","dependencies":[],"labels":[],"comments":[]}
125
- {"id":"opencode-swarm-plugin--ys7z8-mjmbqk4bd8i","title":"ADR-010 Implementation: CASS Inhousing - Session Indexing Layer","description":"Implement ADR-010: Bring session indexing in-house by building on semantic-memory infrastructure.\n\n**Vision:** Unified query API for semantic memory + session search, no external CASS binary.\n\n**Acknowledgment:** This work is inspired by CASS (coding_agent_session_search) by Dicklesworthstone - a production-quality Rust implementation that showed us what's possible.\n\n**Scope:**\n- 8 thin adapters on semantic-memory (parser, chunker, watcher, discovery, staleness, viewer, pagination, tools)\n- Full TDD with characterization tests\n- Comprehensive docs (README, AGENTS.md, plugin-wrapper-template.ts)\n- Dual-mode support (binary → hybrid → inhouse migration)\n\n**Out of Scope:**\n- Cloud-only agents (Claude Code, Gemini, Copilot)\n- Multi-machine sync\n- TUI\n\n**Success Criteria:**\n- All tests pass (characterization + unit + integration)\n- cass_* MCP tools work identically to binary CASS\n- Docs updated with session indexing section\n- CASS acknowledged in README","status":"open","priority":1,"issue_type":"epic","created_at":"2025-12-26T03:40:45.275Z","updated_at":"2025-12-26T03:40:45.275Z","dependencies":[],"labels":[],"comments":[]}
126
- {"id":"opencode-swarm-plugin--ys7z8-mjmbqk4hney","title":"T0: Characterization Tests - Capture CASS Baseline Behavior","status":"open","priority":0,"issue_type":"task","created_at":"2025-12-26T03:40:45.281Z","updated_at":"2025-12-26T03:40:45.281Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmbqk4bd8i","dependencies":[],"labels":[],"comments":[]}
127
- {"id":"opencode-swarm-plugin--ys7z8-mjmbqk4jagt","title":"T1: Session Parser + Metadata Schema Extension","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-26T03:40:45.283Z","updated_at":"2025-12-26T03:40:45.283Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmbqk4bd8i","dependencies":[],"labels":[],"comments":[]}
128
- {"id":"opencode-swarm-plugin--ys7z8-mjmbqk4l62w","title":"T2: Chunk Processor - Message-Level Chunking + Embedding","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-26T03:40:45.285Z","updated_at":"2025-12-26T03:40:45.285Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmbqk4bd8i","dependencies":[],"labels":[],"comments":[]}
129
- {"id":"opencode-swarm-plugin--ys7z8-mjmbqk4n2t1","title":"T3: Agent Discovery - Path to Agent Type Mapping","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-26T03:40:45.287Z","updated_at":"2025-12-26T03:40:45.287Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmbqk4bd8i","dependencies":[],"labels":[],"comments":[]}
130
- {"id":"opencode-swarm-plugin--ys7z8-mjmbqk4ppbb","title":"T4: File Watcher - Debounced Auto-Indexing","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-26T03:40:45.289Z","updated_at":"2025-12-26T03:40:45.289Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmbqk4bd8i","dependencies":[],"labels":[],"comments":[]}
131
- {"id":"opencode-swarm-plugin--ys7z8-mjmbqk4rq7j","title":"T5: Staleness Detector - Index Freshness Tracking","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-26T03:40:45.291Z","updated_at":"2025-12-26T03:40:45.291Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmbqk4bd8i","dependencies":[],"labels":[],"comments":[]}
132
- {"id":"opencode-swarm-plugin--ys7z8-mjmbqk4ud5r","title":"T6: Session Viewer - JSONL Line Reader with Context","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-26T03:40:45.294Z","updated_at":"2025-12-26T03:40:45.294Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmbqk4bd8i","dependencies":[],"labels":[],"comments":[]}
133
- {"id":"opencode-swarm-plugin--ys7z8-mjmbqk4wkik","title":"T7: Pagination API - Field Selection for Compact Output","status":"open","priority":1,"issue_type":"task","created_at":"2025-12-26T03:40:45.296Z","updated_at":"2025-12-26T03:40:45.296Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmbqk4bd8i","dependencies":[],"labels":[],"comments":[]}
134
- {"id":"opencode-swarm-plugin--ys7z8-mjmbqk56gp5","title":"T8: Session Indexer Orchestrator - Ties Components Together","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-26T03:40:45.306Z","updated_at":"2025-12-26T03:40:45.306Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmbqk4bd8i","dependencies":[],"labels":[],"comments":[]}
135
- {"id":"opencode-swarm-plugin--ys7z8-mjmbqk577u2","title":"T9: MCP Tools - cass_search, cass_view, cass_expand, cass_index, cass_health, cass_stats","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-26T03:40:45.307Z","updated_at":"2025-12-26T03:40:45.307Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmbqk4bd8i","dependencies":[],"labels":[],"comments":[]}
136
- {"id":"opencode-swarm-plugin--ys7z8-mjmbqk59ewy","title":"T10: Dual-Mode Support - Binary/Inhouse/Hybrid Switching","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-26T03:40:45.309Z","updated_at":"2025-12-26T03:40:45.309Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmbqk4bd8i","dependencies":[],"labels":[],"comments":[]}
137
- {"id":"opencode-swarm-plugin--ys7z8-mjmbqk5batv","title":"T11: Documentation - README, AGENTS.md, Plugin Template, CASS Acknowledgment","status":"open","priority":2,"issue_type":"task","created_at":"2025-12-26T03:40:45.311Z","updated_at":"2025-12-26T03:40:45.311Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmbqk4bd8i","dependencies":[],"labels":[],"comments":[]}
138
- {"id":"opencode-swarm-plugin--ys7z8-mjmbqk5d7v1","title":"T12: Changeset + Final Validation","status":"open","priority":3,"issue_type":"task","created_at":"2025-12-26T03:40:45.313Z","updated_at":"2025-12-26T03:40:45.313Z","parent_id":"opencode-swarm-plugin--ys7z8-mjmbqk4bd8i","dependencies":[],"labels":[],"comments":[]}