opencastle 0.27.3 → 0.29.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.
Files changed (130) hide show
  1. package/README.md +12 -3
  2. package/bin/cli.mjs +13 -5
  3. package/dist/cli/convoy/engine.d.ts.map +1 -1
  4. package/dist/cli/convoy/engine.js +2 -11
  5. package/dist/cli/convoy/engine.js.map +1 -1
  6. package/dist/cli/convoy/engine.test.js +2 -1
  7. package/dist/cli/convoy/engine.test.js.map +1 -1
  8. package/dist/cli/convoy/export.d.ts +1 -3
  9. package/dist/cli/convoy/export.d.ts.map +1 -1
  10. package/dist/cli/convoy/export.js +9 -88
  11. package/dist/cli/convoy/export.js.map +1 -1
  12. package/dist/cli/convoy/export.test.js +7 -186
  13. package/dist/cli/convoy/export.test.js.map +1 -1
  14. package/dist/cli/convoy/issues.js +3 -3
  15. package/dist/cli/convoy/issues.js.map +1 -1
  16. package/dist/cli/convoy/issues.test.js +4 -3
  17. package/dist/cli/convoy/issues.test.js.map +1 -1
  18. package/dist/cli/convoy/pipeline.d.ts.map +1 -1
  19. package/dist/cli/convoy/pipeline.js +0 -21
  20. package/dist/cli/convoy/pipeline.js.map +1 -1
  21. package/dist/cli/convoy/pipeline.test.js +0 -21
  22. package/dist/cli/convoy/pipeline.test.js.map +1 -1
  23. package/dist/cli/dashboard.d.ts.map +1 -1
  24. package/dist/cli/dashboard.js +32 -8
  25. package/dist/cli/dashboard.js.map +1 -1
  26. package/dist/cli/destroy.d.ts.map +1 -1
  27. package/dist/cli/destroy.js +13 -0
  28. package/dist/cli/destroy.js.map +1 -1
  29. package/dist/cli/dispute.d.ts +3 -0
  30. package/dist/cli/dispute.d.ts.map +1 -0
  31. package/dist/cli/dispute.js +25 -0
  32. package/dist/cli/dispute.js.map +1 -0
  33. package/dist/cli/doctor.d.ts +1 -1
  34. package/dist/cli/doctor.d.ts.map +1 -1
  35. package/dist/cli/doctor.js +14 -1
  36. package/dist/cli/doctor.js.map +1 -1
  37. package/dist/cli/eject.d.ts.map +1 -1
  38. package/dist/cli/eject.js +14 -0
  39. package/dist/cli/eject.js.map +1 -1
  40. package/dist/cli/init.d.ts.map +1 -1
  41. package/dist/cli/init.js +14 -0
  42. package/dist/cli/init.js.map +1 -1
  43. package/dist/cli/log.d.ts +0 -11
  44. package/dist/cli/log.d.ts.map +1 -1
  45. package/dist/cli/log.js +2 -114
  46. package/dist/cli/log.js.map +1 -1
  47. package/dist/cli/pipeline.d.ts +3 -0
  48. package/dist/cli/pipeline.d.ts.map +1 -0
  49. package/dist/cli/pipeline.js +321 -0
  50. package/dist/cli/pipeline.js.map +1 -0
  51. package/dist/cli/plan.d.ts +37 -0
  52. package/dist/cli/plan.d.ts.map +1 -1
  53. package/dist/cli/plan.js +321 -161
  54. package/dist/cli/plan.js.map +1 -1
  55. package/dist/cli/run.js +2 -2
  56. package/dist/cli/run.js.map +1 -1
  57. package/dist/cli/update.d.ts.map +1 -1
  58. package/dist/cli/update.js +16 -0
  59. package/dist/cli/update.js.map +1 -1
  60. package/dist/cli/validate.d.ts +3 -0
  61. package/dist/cli/validate.d.ts.map +1 -0
  62. package/dist/cli/validate.js +60 -0
  63. package/dist/cli/validate.js.map +1 -0
  64. package/dist/cli/watch.d.ts.map +1 -1
  65. package/dist/cli/watch.js +1 -3
  66. package/dist/cli/watch.js.map +1 -1
  67. package/package.json +5 -4
  68. package/src/cli/convoy/engine.test.ts +2 -1
  69. package/src/cli/convoy/engine.ts +2 -5
  70. package/src/cli/convoy/export.test.ts +7 -224
  71. package/src/cli/convoy/export.ts +10 -106
  72. package/src/cli/convoy/issues.test.ts +3 -2
  73. package/src/cli/convoy/issues.ts +3 -3
  74. package/src/cli/convoy/pipeline.test.ts +0 -25
  75. package/src/cli/convoy/pipeline.ts +0 -19
  76. package/src/cli/dashboard.ts +33 -8
  77. package/src/cli/destroy.ts +15 -0
  78. package/src/cli/dispute.ts +28 -0
  79. package/src/cli/doctor.ts +16 -1
  80. package/src/cli/eject.ts +16 -0
  81. package/src/cli/init.ts +16 -0
  82. package/src/cli/log.ts +2 -120
  83. package/src/cli/pipeline.ts +362 -0
  84. package/src/cli/plan.ts +357 -153
  85. package/src/cli/run.ts +2 -2
  86. package/src/cli/update.ts +18 -0
  87. package/src/cli/validate.ts +65 -0
  88. package/src/cli/watch.ts +1 -3
  89. package/src/dashboard/dist/_astro/index.Je1YjU_y.css +1 -0
  90. package/src/dashboard/dist/data/convoy-list.json +54 -9
  91. package/src/dashboard/dist/data/convoys/demo-api-v2.json +177 -0
  92. package/src/dashboard/dist/data/convoys/demo-auth-revamp.json +239 -0
  93. package/src/dashboard/dist/data/convoys/demo-dashboard-ui.json +328 -0
  94. package/src/dashboard/dist/data/convoys/demo-data-pipeline.json +187 -0
  95. package/src/dashboard/dist/data/convoys/demo-deploy-ci.json +153 -0
  96. package/src/dashboard/dist/data/convoys/demo-docs-update.json +154 -0
  97. package/src/dashboard/dist/data/convoys/demo-perf-opt.json +227 -0
  98. package/src/dashboard/dist/data/events.ndjson +115 -0
  99. package/src/dashboard/dist/data/overall-stats.json +56 -13
  100. package/src/dashboard/dist/data/pipelines.ndjson +5285 -0
  101. package/src/dashboard/dist/index.html +165 -1392
  102. package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
  103. package/src/dashboard/public/data/convoy-list.json +54 -9
  104. package/src/dashboard/public/data/convoys/demo-api-v2.json +177 -0
  105. package/src/dashboard/public/data/convoys/demo-auth-revamp.json +239 -0
  106. package/src/dashboard/public/data/convoys/demo-dashboard-ui.json +328 -0
  107. package/src/dashboard/public/data/convoys/demo-data-pipeline.json +187 -0
  108. package/src/dashboard/public/data/convoys/demo-deploy-ci.json +153 -0
  109. package/src/dashboard/public/data/convoys/demo-docs-update.json +154 -0
  110. package/src/dashboard/public/data/convoys/demo-perf-opt.json +227 -0
  111. package/src/dashboard/public/data/events.ndjson +115 -0
  112. package/src/dashboard/public/data/overall-stats.json +56 -13
  113. package/src/dashboard/public/data/pipelines.ndjson +5285 -0
  114. package/src/dashboard/scripts/etl.test.ts +4 -62
  115. package/src/dashboard/scripts/etl.ts +11 -10
  116. package/src/dashboard/scripts/generate-demo-db.ts +482 -115
  117. package/src/dashboard/src/pages/index.astro +235 -1638
  118. package/src/dashboard/src/styles/dashboard.css +473 -7
  119. package/src/orchestrator/prompts/brainstorm.prompt.md +1 -0
  120. package/src/orchestrator/prompts/fix-convoy.prompt.md +79 -0
  121. package/src/orchestrator/prompts/generate-convoy.prompt.md +60 -58
  122. package/src/orchestrator/prompts/generate-prd.prompt.md +126 -0
  123. package/src/orchestrator/prompts/validate-convoy.prompt.md +89 -0
  124. package/src/orchestrator/prompts/validate-prd.prompt.md +83 -0
  125. package/dist/cli/convoy/log-merge.test.d.ts +0 -2
  126. package/dist/cli/convoy/log-merge.test.d.ts.map +0 -1
  127. package/dist/cli/convoy/log-merge.test.js +0 -147
  128. package/dist/cli/convoy/log-merge.test.js.map +0 -1
  129. package/src/cli/convoy/log-merge.test.ts +0 -179
  130. package/src/dashboard/dist/_astro/index.6L3_HsPT.css +0 -1
@@ -0,0 +1,154 @@
1
+ {
2
+ "convoy": {
3
+ "id": "demo-docs-update",
4
+ "name": "Documentation Refresh",
5
+ "status": "done",
6
+ "created_at": "2026-02-28T15:00:00.000Z",
7
+ "finished_at": "2026-02-28T15:22:00.000Z",
8
+ "branch": "docs/update-march",
9
+ "total_tokens": 14800,
10
+ "total_cost_usd": 1.48
11
+ },
12
+ "taskSummary": {
13
+ "total": 3,
14
+ "done": 3,
15
+ "running": 0,
16
+ "failed": 0,
17
+ "review_blocked": 0,
18
+ "disputed": 0,
19
+ "reviewed": 1,
20
+ "panel_reviewed": 0,
21
+ "tasks_with_drift": 0,
22
+ "max_drift_score": null,
23
+ "drift_retried": 0
24
+ },
25
+ "quality": {
26
+ "reviewed_tasks": 1,
27
+ "review_blocked_tasks": 0,
28
+ "disputed_tasks": 0,
29
+ "panel_reviews": 0
30
+ },
31
+ "drift": {
32
+ "tasks_with_drift": 0,
33
+ "max_drift_score": null,
34
+ "drift_retried_tasks": 0
35
+ },
36
+ "dlq_count": 0,
37
+ "dlq_entries": [],
38
+ "artifact_count": 3,
39
+ "artifacts": [
40
+ {
41
+ "id": "artifact-demo-docs-update-docs-ARCHITECTURE-md",
42
+ "name": "docs/ARCHITECTURE.md",
43
+ "type": "file",
44
+ "task_id": "docs-t1",
45
+ "created_at": "2026-03-12T22:26:01.388Z"
46
+ },
47
+ {
48
+ "id": "artifact-demo-docs-update-docs-README-md",
49
+ "name": "docs/README.md",
50
+ "type": "file",
51
+ "task_id": "docs-t1",
52
+ "created_at": "2026-03-12T22:26:01.388Z"
53
+ },
54
+ {
55
+ "id": "artifact-demo-docs-update-docs-api-reference-json",
56
+ "name": "docs/api-reference.json",
57
+ "type": "json",
58
+ "task_id": "docs-t2",
59
+ "created_at": "2026-03-12T22:26:01.389Z"
60
+ }
61
+ ],
62
+ "has_more_events": false,
63
+ "events": [
64
+ {
65
+ "type": "task_done",
66
+ "task_id": "docs-t2",
67
+ "data": null,
68
+ "created_at": "2026-02-28T15:21:00.000Z"
69
+ },
70
+ {
71
+ "type": "task_started",
72
+ "task_id": "docs-t2",
73
+ "data": null,
74
+ "created_at": "2026-02-28T15:15:00.000Z"
75
+ },
76
+ {
77
+ "type": "task_done",
78
+ "task_id": "docs-t1",
79
+ "data": null,
80
+ "created_at": "2026-02-28T15:14:00.000Z"
81
+ },
82
+ {
83
+ "type": "task_started",
84
+ "task_id": "docs-t1",
85
+ "data": null,
86
+ "created_at": "2026-02-28T15:00:05.000Z"
87
+ }
88
+ ],
89
+ "tasks": [
90
+ {
91
+ "id": "docs-t1",
92
+ "phase": 1,
93
+ "agent": "Documentation Writer",
94
+ "model": "claude-haiku-3-5",
95
+ "status": "done",
96
+ "retries": 0,
97
+ "started_at": "2026-02-28T15:00:05.000Z",
98
+ "finished_at": "2026-02-28T15:14:00.000Z",
99
+ "total_tokens": 8200,
100
+ "cost_usd": 0.82,
101
+ "review_level": null,
102
+ "review_verdict": null,
103
+ "review_tokens": null,
104
+ "review_model": null,
105
+ "panel_attempts": 0,
106
+ "dispute_id": null,
107
+ "drift_score": null,
108
+ "drift_retried": 0,
109
+ "files": null
110
+ },
111
+ {
112
+ "id": "docs-t2",
113
+ "phase": 2,
114
+ "agent": "Documentation Writer",
115
+ "model": "claude-haiku-3-5",
116
+ "status": "done",
117
+ "retries": 0,
118
+ "started_at": "2026-02-28T15:15:00.000Z",
119
+ "finished_at": "2026-02-28T15:21:00.000Z",
120
+ "total_tokens": 6600,
121
+ "cost_usd": 0.66,
122
+ "review_level": null,
123
+ "review_verdict": null,
124
+ "review_tokens": null,
125
+ "review_model": null,
126
+ "panel_attempts": 0,
127
+ "dispute_id": null,
128
+ "drift_score": null,
129
+ "drift_retried": 0,
130
+ "files": null
131
+ },
132
+ {
133
+ "id": "docs-t3",
134
+ "phase": 3,
135
+ "agent": "Reviewer",
136
+ "model": "claude-haiku-3-5",
137
+ "status": "done",
138
+ "retries": 0,
139
+ "started_at": "2026-02-28T15:17:00.000Z",
140
+ "finished_at": "2026-02-28T15:21:00.000Z",
141
+ "total_tokens": 800,
142
+ "cost_usd": 0.08,
143
+ "review_level": "fast",
144
+ "review_verdict": "pass",
145
+ "review_tokens": 800,
146
+ "review_model": "claude-haiku-3-5",
147
+ "panel_attempts": 0,
148
+ "dispute_id": null,
149
+ "drift_score": null,
150
+ "drift_retried": 0,
151
+ "files": null
152
+ }
153
+ ]
154
+ }
@@ -0,0 +1,227 @@
1
+ {
2
+ "convoy": {
3
+ "id": "demo-perf-opt",
4
+ "name": "Frontend Performance Boost",
5
+ "status": "done",
6
+ "created_at": "2026-02-17T10:00:00.000Z",
7
+ "finished_at": "2026-02-17T11:02:00.000Z",
8
+ "branch": "perf/core-web-vitals",
9
+ "total_tokens": 37200,
10
+ "total_cost_usd": 3.72
11
+ },
12
+ "taskSummary": {
13
+ "total": 5,
14
+ "done": 5,
15
+ "running": 0,
16
+ "failed": 0,
17
+ "review_blocked": 0,
18
+ "disputed": 0,
19
+ "reviewed": 1,
20
+ "panel_reviewed": 0,
21
+ "tasks_with_drift": 0,
22
+ "max_drift_score": null,
23
+ "drift_retried": 0
24
+ },
25
+ "quality": {
26
+ "reviewed_tasks": 1,
27
+ "review_blocked_tasks": 0,
28
+ "disputed_tasks": 0,
29
+ "panel_reviews": 0
30
+ },
31
+ "drift": {
32
+ "tasks_with_drift": 0,
33
+ "max_drift_score": null,
34
+ "drift_retried_tasks": 0
35
+ },
36
+ "dlq_count": 0,
37
+ "dlq_entries": [],
38
+ "artifact_count": 4,
39
+ "artifacts": [
40
+ {
41
+ "id": "artifact-demo-perf-opt-reports-bundle-analysis-json",
42
+ "name": "reports/bundle-analysis.json",
43
+ "type": "json",
44
+ "task_id": "perf-t1",
45
+ "created_at": "2026-03-12T22:26:01.388Z"
46
+ },
47
+ {
48
+ "id": "artifact-demo-perf-opt-reports-web-vitals-improvement-md",
49
+ "name": "reports/web-vitals-improvement.md",
50
+ "type": "summary",
51
+ "task_id": "perf-t4",
52
+ "created_at": "2026-03-12T22:26:01.388Z"
53
+ },
54
+ {
55
+ "id": "artifact-demo-perf-opt-src-charts-index-ts",
56
+ "name": "src/charts/index.ts",
57
+ "type": "file",
58
+ "task_id": "perf-t2",
59
+ "created_at": "2026-03-12T22:26:01.388Z"
60
+ },
61
+ {
62
+ "id": "artifact-demo-perf-opt-src-utils-image-loader-ts",
63
+ "name": "src/utils/image-loader.ts",
64
+ "type": "file",
65
+ "task_id": "perf-t3",
66
+ "created_at": "2026-03-12T22:26:01.388Z"
67
+ }
68
+ ],
69
+ "has_more_events": false,
70
+ "events": [
71
+ {
72
+ "type": "task_done",
73
+ "task_id": "perf-t4",
74
+ "data": null,
75
+ "created_at": "2026-02-17T10:44:00.000Z"
76
+ },
77
+ {
78
+ "type": "task_started",
79
+ "task_id": "perf-t4",
80
+ "data": null,
81
+ "created_at": "2026-02-17T10:31:00.000Z"
82
+ },
83
+ {
84
+ "type": "task_done",
85
+ "task_id": "perf-t3",
86
+ "data": null,
87
+ "created_at": "2026-02-17T10:27:00.000Z"
88
+ },
89
+ {
90
+ "type": "task_started",
91
+ "task_id": "perf-t3",
92
+ "data": null,
93
+ "created_at": "2026-02-17T10:14:00.000Z"
94
+ },
95
+ {
96
+ "type": "task_done",
97
+ "task_id": "perf-t2",
98
+ "data": null,
99
+ "created_at": "2026-02-17T10:30:00.000Z"
100
+ },
101
+ {
102
+ "type": "task_started",
103
+ "task_id": "perf-t2",
104
+ "data": null,
105
+ "created_at": "2026-02-17T10:14:00.000Z"
106
+ },
107
+ {
108
+ "type": "task_done",
109
+ "task_id": "perf-t1",
110
+ "data": null,
111
+ "created_at": "2026-02-17T10:13:00.000Z"
112
+ },
113
+ {
114
+ "type": "task_started",
115
+ "task_id": "perf-t1",
116
+ "data": null,
117
+ "created_at": "2026-02-17T10:00:05.000Z"
118
+ }
119
+ ],
120
+ "tasks": [
121
+ {
122
+ "id": "perf-t1",
123
+ "phase": 1,
124
+ "agent": "Performance Expert",
125
+ "model": "claude-sonnet-4-6",
126
+ "status": "done",
127
+ "retries": 0,
128
+ "started_at": "2026-02-17T10:00:05.000Z",
129
+ "finished_at": "2026-02-17T10:13:00.000Z",
130
+ "total_tokens": 8900,
131
+ "cost_usd": 0.89,
132
+ "review_level": null,
133
+ "review_verdict": null,
134
+ "review_tokens": null,
135
+ "review_model": null,
136
+ "panel_attempts": 0,
137
+ "dispute_id": null,
138
+ "drift_score": null,
139
+ "drift_retried": 0,
140
+ "files": null
141
+ },
142
+ {
143
+ "id": "perf-t2",
144
+ "phase": 2,
145
+ "agent": "Developer",
146
+ "model": "claude-sonnet-4-6",
147
+ "status": "done",
148
+ "retries": 0,
149
+ "started_at": "2026-02-17T10:14:00.000Z",
150
+ "finished_at": "2026-02-17T10:30:00.000Z",
151
+ "total_tokens": 11200,
152
+ "cost_usd": 1.12,
153
+ "review_level": null,
154
+ "review_verdict": null,
155
+ "review_tokens": null,
156
+ "review_model": null,
157
+ "panel_attempts": 0,
158
+ "dispute_id": null,
159
+ "drift_score": null,
160
+ "drift_retried": 0,
161
+ "files": null
162
+ },
163
+ {
164
+ "id": "perf-t3",
165
+ "phase": 2,
166
+ "agent": "Developer",
167
+ "model": "claude-sonnet-4-6",
168
+ "status": "done",
169
+ "retries": 0,
170
+ "started_at": "2026-02-17T10:14:00.000Z",
171
+ "finished_at": "2026-02-17T10:27:00.000Z",
172
+ "total_tokens": 9600,
173
+ "cost_usd": 0.96,
174
+ "review_level": null,
175
+ "review_verdict": null,
176
+ "review_tokens": null,
177
+ "review_model": null,
178
+ "panel_attempts": 0,
179
+ "dispute_id": null,
180
+ "drift_score": null,
181
+ "drift_retried": 0,
182
+ "files": null
183
+ },
184
+ {
185
+ "id": "perf-t4",
186
+ "phase": 3,
187
+ "agent": "Performance Expert",
188
+ "model": "claude-sonnet-4-6",
189
+ "status": "done",
190
+ "retries": 0,
191
+ "started_at": "2026-02-17T10:31:00.000Z",
192
+ "finished_at": "2026-02-17T10:44:00.000Z",
193
+ "total_tokens": 7500,
194
+ "cost_usd": 0.75,
195
+ "review_level": null,
196
+ "review_verdict": null,
197
+ "review_tokens": null,
198
+ "review_model": null,
199
+ "panel_attempts": 0,
200
+ "dispute_id": null,
201
+ "drift_score": null,
202
+ "drift_retried": 0,
203
+ "files": null
204
+ },
205
+ {
206
+ "id": "perf-t5",
207
+ "phase": 4,
208
+ "agent": "Reviewer",
209
+ "model": "claude-haiku-3-5",
210
+ "status": "done",
211
+ "retries": 0,
212
+ "started_at": "2026-02-17T10:45:00.000Z",
213
+ "finished_at": "2026-02-17T10:52:00.000Z",
214
+ "total_tokens": 1200,
215
+ "cost_usd": 0.12,
216
+ "review_level": "fast",
217
+ "review_verdict": "pass",
218
+ "review_tokens": 1200,
219
+ "review_model": "claude-haiku-3-5",
220
+ "panel_attempts": 0,
221
+ "dispute_id": null,
222
+ "drift_score": null,
223
+ "drift_retried": 0,
224
+ "files": null
225
+ }
226
+ ]
227
+ }
@@ -0,0 +1,115 @@
1
+ {"type":"session","timestamp":"2026-02-01T09:27:00.000Z","agent":"Team Lead (OpenCastle)","model":"claude-opus-4-6","task":"Plan auth system revamp","outcome":"success","duration_min":8,"files_changed":2,"retries":0,"convoy_id":"demo-auth-revamp","tracker_issue":"TASK-01"}
2
+ {"type":"session","timestamp":"2026-02-02T10:37:00.000Z","agent":"Architect","model":"claude-opus-4-6","task":"Design OAuth2 token refresh architecture","outcome":"success","duration_min":9,"files_changed":3,"retries":0,"convoy_id":"demo-auth-revamp","tracker_issue":"TASK-02"}
3
+ {"type":"session","timestamp":"2026-02-03T09:41:00.000Z","agent":"Team Lead (OpenCastle)","model":"claude-opus-4-6","task":"Orchestrate auth revamp convoy","outcome":"success","duration_min":47,"files_changed":0,"retries":0,"convoy_id":"demo-auth-revamp","tracker_issue":"TASK-03"}
4
+ {"type":"session","timestamp":"2026-02-03T09:41:00.000Z","agent":"Developer","model":"claude-sonnet-4-6","task":"Implement JWT middleware with refresh rotation","outcome":"success","duration_min":14,"files_changed":6,"retries":1,"convoy_id":"demo-auth-revamp","tracker_issue":"TASK-04","lessons_added":["Always invalidate old tokens before issuing new ones"]}
5
+ {"type":"session","timestamp":"2026-02-03T09:41:00.000Z","agent":"Security Expert","model":"claude-sonnet-4-6","task":"Add RLS policies for session tokens","outcome":"success","duration_min":10,"files_changed":4,"retries":0,"convoy_id":"demo-auth-revamp","tracker_issue":"TASK-05"}
6
+ {"type":"session","timestamp":"2026-02-03T10:44:00.000Z","agent":"Testing Expert","model":"claude-sonnet-4-6","task":"Write auth integration tests","outcome":"success","duration_min":12,"files_changed":5,"retries":0,"convoy_id":"demo-auth-revamp","tracker_issue":"TASK-06"}
7
+ {"type":"session","timestamp":"2026-02-03T11:47:00.000Z","agent":"Reviewer","model":"claude-sonnet-4-6","task":"QA review – auth middleware","outcome":"success","duration_min":8,"files_changed":0,"retries":0,"convoy_id":"demo-auth-revamp","tracker_issue":"TASK-07"}
8
+ {"type":"session","timestamp":"2026-02-04T14:13:00.000Z","agent":"Developer","model":"claude-sonnet-4-6","task":"Fix token expiry edge case","outcome":"success","duration_min":6,"files_changed":2,"retries":0,"tracker_issue":"TASK-08"}
9
+ {"type":"session","timestamp":"2026-02-05T11:11:00.000Z","agent":"Security Expert","model":"claude-sonnet-4-6","task":"Audit CSRF protection mechanisms","outcome":"partial","duration_min":15,"files_changed":3,"retries":1,"tracker_issue":"TASK-09","discoveries":["Rate limiting missing on /api/tokens"]}
10
+ {"type":"session","timestamp":"2026-02-06T10:15:00.000Z","agent":"Team Lead (OpenCastle)","model":"claude-opus-4-6","task":"Plan dashboard UI redesign","outcome":"success","duration_min":6,"files_changed":1,"retries":0,"convoy_id":"demo-dashboard-ui","tracker_issue":"TASK-10"}
11
+ {"type":"session","timestamp":"2026-02-07T14:34:00.000Z","agent":"Team Lead (OpenCastle)","model":"claude-opus-4-6","task":"Orchestrate dashboard UI convoy","outcome":"success","duration_min":98,"files_changed":0,"retries":0,"convoy_id":"demo-dashboard-ui","tracker_issue":"TASK-11"}
12
+ {"type":"session","timestamp":"2026-02-07T14:34:00.000Z","agent":"UI/UX Expert","model":"claude-opus-4-6","task":"Design dark-theme component system","outcome":"success","duration_min":19,"files_changed":8,"retries":0,"convoy_id":"demo-dashboard-ui","tracker_issue":"TASK-12"}
13
+ {"type":"session","timestamp":"2026-02-07T14:34:00.000Z","agent":"Developer","model":"claude-sonnet-4-6","task":"Implement KPI card components","outcome":"success","duration_min":16,"files_changed":7,"retries":0,"convoy_id":"demo-dashboard-ui","tracker_issue":"TASK-13"}
14
+ {"type":"session","timestamp":"2026-02-07T15:37:00.000Z","agent":"Developer","model":"claude-sonnet-4-6","task":"Build SVG donut charts and bar charts","outcome":"success","duration_min":24,"files_changed":5,"retries":1,"convoy_id":"demo-dashboard-ui","tracker_issue":"TASK-14","lessons_added":["SVG stroke-dashoffset must be negated for CCW donut segments"]}
15
+ {"type":"session","timestamp":"2026-02-07T15:37:00.000Z","agent":"UI/UX Expert","model":"claude-opus-4-6","task":"Write dashboard CSS animations","outcome":"success","duration_min":18,"files_changed":3,"retries":0,"convoy_id":"demo-dashboard-ui","tracker_issue":"TASK-15"}
16
+ {"type":"session","timestamp":"2026-02-08T09:26:00.000Z","agent":"UI/UX Expert","model":"claude-opus-4-6","task":"Accessibility audit and ARIA labels","outcome":"success","duration_min":13,"files_changed":6,"retries":0,"convoy_id":"demo-dashboard-ui","tracker_issue":"TASK-16"}
17
+ {"type":"session","timestamp":"2026-02-08T09:26:00.000Z","agent":"Testing Expert","model":"claude-sonnet-4-6","task":"Cross-browser visual regression tests","outcome":"success","duration_min":17,"files_changed":4,"retries":0,"convoy_id":"demo-dashboard-ui","tracker_issue":"TASK-17"}
18
+ {"type":"session","timestamp":"2026-02-08T11:32:00.000Z","agent":"Reviewer","model":"claude-sonnet-4-6","task":"Panel review – dashboard UI","outcome":"success","duration_min":34,"files_changed":0,"retries":0,"convoy_id":"demo-dashboard-ui","tracker_issue":"TASK-18"}
19
+ {"type":"session","timestamp":"2026-02-09T10:36:00.000Z","agent":"Copywriter","model":"claude-sonnet-4-6","task":"Write dashboard empty state copy","outcome":"success","duration_min":5,"files_changed":1,"retries":0,"tracker_issue":"TASK-19"}
20
+ {"type":"session","timestamp":"2026-02-10T10:43:00.000Z","agent":"Team Lead (OpenCastle)","model":"claude-opus-4-6","task":"Plan REST API v2 migration","outcome":"success","duration_min":7,"files_changed":1,"retries":0,"convoy_id":"demo-api-v2","tracker_issue":"TASK-20"}
21
+ {"type":"session","timestamp":"2026-02-11T11:03:00.000Z","agent":"API Designer","model":"claude-sonnet-4-6","task":"Design RESTful v2 route contracts","outcome":"success","duration_min":11,"files_changed":4,"retries":0,"convoy_id":"demo-api-v2","tracker_issue":"TASK-21"}
22
+ {"type":"session","timestamp":"2026-02-12T16:25:00.000Z","agent":"Team Lead (OpenCastle)","model":"claude-opus-4-6","task":"Orchestrate API v2 convoy","outcome":"failed","duration_min":28,"files_changed":0,"retries":0,"convoy_id":"demo-api-v2","tracker_issue":"TASK-22"}
23
+ {"type":"session","timestamp":"2026-02-12T16:25:00.000Z","agent":"Developer","model":"claude-sonnet-4-6","task":"Implement rate limiting middleware","outcome":"partial","duration_min":11,"files_changed":5,"retries":2,"convoy_id":"demo-api-v2","tracker_issue":"TASK-23"}
24
+ {"type":"session","timestamp":"2026-02-12T17:28:00.000Z","agent":"Security Expert","model":"claude-sonnet-4-6","task":"Security gate – injection vulnerability scan","outcome":"failed","duration_min":3,"files_changed":0,"retries":0,"convoy_id":"demo-api-v2","tracker_issue":"TASK-24","discoveries":["SQL injection risk in query builder","Missing input sanitization on user endpoint"]}
25
+ {"type":"session","timestamp":"2026-02-13T09:11:00.000Z","agent":"Developer","model":"claude-sonnet-4-6","task":"Patch SQL injection in query builder","outcome":"success","duration_min":8,"files_changed":3,"retries":0,"tracker_issue":"TASK-25"}
26
+ {"type":"session","timestamp":"2026-02-14T14:33:00.000Z","agent":"Security Expert","model":"claude-sonnet-4-6","task":"Re-audit query builder after patch","outcome":"success","duration_min":7,"files_changed":1,"retries":0,"tracker_issue":"TASK-26"}
27
+ {"type":"session","timestamp":"2026-02-15T10:28:00.000Z","agent":"Team Lead (OpenCastle)","model":"claude-opus-4-6","task":"Plan performance optimization sprint","outcome":"success","duration_min":5,"files_changed":1,"retries":0,"convoy_id":"demo-perf-opt","tracker_issue":"TASK-27"}
28
+ {"type":"session","timestamp":"2026-02-16T11:38:00.000Z","agent":"Performance Expert","model":"claude-sonnet-4-6","task":"Profile bundle and identify bottlenecks","outcome":"success","duration_min":13,"files_changed":2,"retries":0,"convoy_id":"demo-perf-opt","tracker_issue":"TASK-28"}
29
+ {"type":"session","timestamp":"2026-02-17T10:42:00.000Z","agent":"Team Lead (OpenCastle)","model":"claude-opus-4-6","task":"Orchestrate performance optimization convoy","outcome":"success","duration_min":62,"files_changed":0,"retries":0,"convoy_id":"demo-perf-opt","tracker_issue":"TASK-29"}
30
+ {"type":"session","timestamp":"2026-02-17T10:42:00.000Z","agent":"Developer","model":"claude-sonnet-4-6","task":"Code-split heavy chart library","outcome":"success","duration_min":16,"files_changed":8,"retries":0,"convoy_id":"demo-perf-opt","tracker_issue":"TASK-30"}
31
+ {"type":"session","timestamp":"2026-02-17T10:42:00.000Z","agent":"Developer","model":"claude-sonnet-4-6","task":"Implement image lazy-loading and AVIF conversion","outcome":"success","duration_min":13,"files_changed":5,"retries":0,"convoy_id":"demo-perf-opt","tracker_issue":"TASK-31"}
32
+ {"type":"session","timestamp":"2026-02-17T11:45:00.000Z","agent":"Performance Expert","model":"claude-sonnet-4-6","task":"Validate Core Web Vitals improvements","outcome":"success","duration_min":13,"files_changed":0,"retries":0,"convoy_id":"demo-perf-opt","tracker_issue":"TASK-32"}
33
+ {"type":"session","timestamp":"2026-02-18T14:11:00.000Z","agent":"Reviewer","model":"claude-haiku-3-5","task":"Fast review – performance PR","outcome":"success","duration_min":6,"files_changed":0,"retries":0,"tracker_issue":"TASK-33"}
34
+ {"type":"session","timestamp":"2026-02-19T09:03:00.000Z","agent":"Developer","model":"claude-sonnet-4-6","task":"Fix LCP regression on mobile","outcome":"success","duration_min":9,"files_changed":3,"retries":1,"tracker_issue":"TASK-34","lessons_added":["Always check mobile viewport when optimizing LCP"]}
35
+ {"type":"session","timestamp":"2026-02-20T13:22:00.000Z","agent":"Team Lead (OpenCastle)","model":"claude-opus-4-6","task":"Plan analytics ETL pipeline","outcome":"success","duration_min":6,"files_changed":1,"retries":0,"convoy_id":"demo-data-pipeline","tracker_issue":"TASK-35"}
36
+ {"type":"session","timestamp":"2026-02-21T11:23:00.000Z","agent":"Data Expert","model":"claude-sonnet-4-6","task":"Design ndjson processing schema","outcome":"success","duration_min":11,"files_changed":3,"retries":0,"convoy_id":"demo-data-pipeline","tracker_issue":"TASK-36"}
37
+ {"type":"session","timestamp":"2026-02-22T13:36:00.000Z","agent":"Team Lead (OpenCastle)","model":"claude-opus-4-6","task":"Orchestrate data pipeline convoy","outcome":"success","duration_min":38,"files_changed":0,"retries":0,"convoy_id":"demo-data-pipeline","tracker_issue":"TASK-37"}
38
+ {"type":"session","timestamp":"2026-02-22T13:36:00.000Z","agent":"Data Expert","model":"claude-sonnet-4-6","task":"Implement incremental ETL with deduplication","outcome":"success","duration_min":18,"files_changed":7,"retries":1,"convoy_id":"demo-data-pipeline","tracker_issue":"TASK-38"}
39
+ {"type":"session","timestamp":"2026-02-22T14:39:00.000Z","agent":"Testing Expert","model":"claude-haiku-3-5","task":"Write ETL test suite","outcome":"success","duration_min":6,"files_changed":4,"retries":0,"convoy_id":"demo-data-pipeline","tracker_issue":"TASK-39"}
40
+ {"type":"session","timestamp":"2026-02-23T15:49:00.000Z","agent":"Reviewer","model":"claude-haiku-3-5","task":"Fast review – data pipeline","outcome":"success","duration_min":5,"files_changed":0,"retries":0,"tracker_issue":"TASK-40"}
41
+ {"type":"session","timestamp":"2026-02-24T10:41:00.000Z","agent":"Documentation Writer","model":"claude-haiku-3-5","task":"Document ETL schema and configuration","outcome":"success","duration_min":8,"files_changed":2,"retries":0,"tracker_issue":"TASK-41"}
42
+ {"type":"session","timestamp":"2026-02-26T10:05:00.000Z","agent":"Team Lead (OpenCastle)","model":"claude-opus-4-6","task":"Plan documentation refresh","outcome":"success","duration_min":4,"files_changed":0,"retries":0,"convoy_id":"demo-docs-update","tracker_issue":"TASK-42"}
43
+ {"type":"session","timestamp":"2026-02-28T15:34:00.000Z","agent":"Team Lead (OpenCastle)","model":"claude-opus-4-6","task":"Orchestrate documentation update convoy","outcome":"success","duration_min":22,"files_changed":0,"retries":0,"convoy_id":"demo-docs-update","tracker_issue":"TASK-43"}
44
+ {"type":"session","timestamp":"2026-02-28T15:34:00.000Z","agent":"Documentation Writer","model":"claude-haiku-3-5","task":"Update README and ARCHITECTURE docs","outcome":"success","duration_min":14,"files_changed":5,"retries":0,"convoy_id":"demo-docs-update","tracker_issue":"TASK-44"}
45
+ {"type":"session","timestamp":"2026-02-28T16:37:00.000Z","agent":"Documentation Writer","model":"claude-haiku-3-5","task":"Generate API reference from source","outcome":"success","duration_min":6,"files_changed":3,"retries":0,"convoy_id":"demo-docs-update","tracker_issue":"TASK-45"}
46
+ {"type":"session","timestamp":"2026-03-01T11:29:00.000Z","agent":"Copywriter","model":"claude-haiku-3-5","task":"Update marketing copy for v2 features","outcome":"success","duration_min":7,"files_changed":2,"retries":0,"tracker_issue":"TASK-46"}
47
+ {"type":"session","timestamp":"2026-03-02T14:45:00.000Z","agent":"SEO Specialist","model":"claude-haiku-3-5","task":"Add structured data and meta tags","outcome":"success","duration_min":9,"files_changed":4,"retries":0,"tracker_issue":"TASK-47"}
48
+ {"type":"session","timestamp":"2026-03-03T09:37:00.000Z","agent":"Team Lead (OpenCastle)","model":"claude-opus-4-6","task":"Plan CI/CD pipeline setup","outcome":"success","duration_min":5,"files_changed":1,"retries":0,"convoy_id":"demo-deploy-ci","tracker_issue":"TASK-48"}
49
+ {"type":"session","timestamp":"2026-03-04T10:47:00.000Z","agent":"DevOps Expert","model":"claude-sonnet-4-6","task":"Design GitHub Actions workflow matrix","outcome":"success","duration_min":12,"files_changed":4,"retries":0,"convoy_id":"demo-deploy-ci","tracker_issue":"TASK-49"}
50
+ {"type":"session","timestamp":"2026-03-05T11:07:00.000Z","agent":"DevOps Expert","model":"claude-sonnet-4-6","task":"Configure secret rotation policy","outcome":"partial","duration_min":14,"files_changed":3,"retries":1,"tracker_issue":"TASK-50"}
51
+ {"type":"session","timestamp":"2026-03-06T15:26:00.000Z","agent":"Security Expert","model":"claude-sonnet-4-6","task":"Review deployment security headers","outcome":"success","duration_min":11,"files_changed":2,"retries":0,"tracker_issue":"TASK-51"}
52
+ {"type":"session","timestamp":"2026-03-07T11:21:00.000Z","agent":"Developer","model":"claude-sonnet-4-6","task":"Add smoke test after deployment","outcome":"success","duration_min":8,"files_changed":3,"retries":0,"tracker_issue":"TASK-52"}
53
+ {"type":"session","timestamp":"2026-03-08T10:25:00.000Z","agent":"Reviewer","model":"claude-haiku-3-5","task":"Review CI config for security issues","outcome":"success","duration_min":7,"files_changed":0,"retries":0,"tracker_issue":"TASK-53"}
54
+ {"type":"session","timestamp":"2026-03-09T09:29:00.000Z","agent":"Developer","model":"claude-sonnet-4-6","task":"Resolve TypeScript strict mode errors","outcome":"success","duration_min":11,"files_changed":9,"retries":0,"tracker_issue":"TASK-54"}
55
+ {"type":"session","timestamp":"2026-03-09T14:44:00.000Z","agent":"Testing Expert","model":"claude-sonnet-4-6","task":"Increase test coverage to 95%","outcome":"success","duration_min":19,"files_changed":12,"retries":1,"tracker_issue":"TASK-55","lessons_added":["Mock SQLite in unit tests to avoid file system issues"]}
56
+ {"type":"session","timestamp":"2026-03-10T10:39:00.000Z","agent":"Developer","model":"claude-sonnet-4-6","task":"Implement watch mode with cron triggers","outcome":"success","duration_min":28,"files_changed":6,"retries":0,"tracker_issue":"TASK-56"}
57
+ {"type":"session","timestamp":"2026-03-10T15:04:00.000Z","agent":"UI/UX Expert","model":"claude-opus-4-6","task":"Refine responsive breakpoints","outcome":"success","duration_min":14,"files_changed":4,"retries":0,"tracker_issue":"TASK-57"}
58
+ {"type":"session","timestamp":"2026-03-11T08:40:00.000Z","agent":"Team Lead (OpenCastle)","model":"claude-opus-4-6","task":"Orchestrate CI/CD deployment convoy","outcome":"partial","duration_min":20,"files_changed":0,"retries":0,"convoy_id":"demo-deploy-ci","tracker_issue":"TASK-58"}
59
+ {"type":"session","timestamp":"2026-03-11T08:40:00.000Z","agent":"DevOps Expert","model":"claude-sonnet-4-6","task":"Configure nx affected build caching","outcome":"partial","duration_min":18,"files_changed":5,"retries":0,"convoy_id":"demo-deploy-ci","tracker_issue":"TASK-59"}
60
+ {"type":"session","timestamp":"2026-03-12T09:00:00.000Z","agent":"Developer","model":"claude-sonnet-4-6","task":"Add agents CLI command for identity management","outcome":"success","duration_min":16,"files_changed":7,"retries":0,"tracker_issue":"TASK-60"}
61
+ {"type":"session","timestamp":"2026-03-12T11:06:00.000Z","agent":"Reviewer","model":"claude-haiku-3-5","task":"Fast review – agents CLI","outcome":"success","duration_min":5,"files_changed":0,"retries":0,"tracker_issue":"TASK-61"}
62
+ {"type":"delegation","timestamp":"2026-02-02T10:17:00.000Z","agent":"Architect","task":"OAuth2 architecture review","outcome":"success","tier":"premium","mechanism":"sub-agent","phase":1,"model":"claude-opus-4-6","convoy_id":"demo-auth-revamp"}
63
+ {"type":"delegation","timestamp":"2026-02-03T09:21:00.000Z","agent":"Developer","task":"Implement JWT middleware","outcome":"success","tier":"standard","mechanism":"background","phase":2,"model":"claude-sonnet-4-6","convoy_id":"demo-auth-revamp"}
64
+ {"type":"delegation","timestamp":"2026-02-03T09:21:00.000Z","agent":"Security Expert","task":"RLS policies for session tokens","outcome":"success","tier":"standard","mechanism":"background","phase":2,"model":"claude-sonnet-4-6","convoy_id":"demo-auth-revamp"}
65
+ {"type":"delegation","timestamp":"2026-02-03T10:22:00.000Z","agent":"Testing Expert","task":"Auth integration tests","outcome":"success","tier":"standard","mechanism":"background","phase":3,"model":"claude-sonnet-4-6","convoy_id":"demo-auth-revamp"}
66
+ {"type":"delegation","timestamp":"2026-02-03T11:23:00.000Z","agent":"Reviewer","task":"Auth QA gate","outcome":"success","tier":"economy","mechanism":"sub-agent","phase":4,"model":"claude-haiku-3-5","convoy_id":"demo-auth-revamp"}
67
+ {"type":"delegation","timestamp":"2026-02-05T11:33:00.000Z","agent":"Security Expert","task":"CSRF audit","outcome":"partial","tier":"standard","mechanism":"sub-agent","phase":2,"model":"claude-sonnet-4-6"}
68
+ {"type":"delegation","timestamp":"2026-02-07T14:46:00.000Z","agent":"UI/UX Expert","task":"Component system design","outcome":"success","tier":"premium","mechanism":"sub-agent","phase":1,"model":"claude-opus-4-6","convoy_id":"demo-dashboard-ui"}
69
+ {"type":"delegation","timestamp":"2026-02-07T14:46:00.000Z","agent":"Developer","task":"KPI card implementation","outcome":"success","tier":"standard","mechanism":"background","phase":1,"model":"claude-sonnet-4-6","convoy_id":"demo-dashboard-ui"}
70
+ {"type":"delegation","timestamp":"2026-02-07T15:47:00.000Z","agent":"Developer","task":"SVG chart components","outcome":"success","tier":"standard","mechanism":"background","phase":2,"model":"claude-sonnet-4-6","convoy_id":"demo-dashboard-ui"}
71
+ {"type":"delegation","timestamp":"2026-02-07T15:47:00.000Z","agent":"UI/UX Expert","task":"CSS animation system","outcome":"success","tier":"premium","mechanism":"background","phase":2,"model":"claude-opus-4-6","convoy_id":"demo-dashboard-ui"}
72
+ {"type":"delegation","timestamp":"2026-02-08T09:46:00.000Z","agent":"UI/UX Expert","task":"Accessibility audit","outcome":"success","tier":"premium","mechanism":"sub-agent","phase":3,"model":"claude-opus-4-6","convoy_id":"demo-dashboard-ui"}
73
+ {"type":"delegation","timestamp":"2026-02-08T09:46:00.000Z","agent":"Testing Expert","task":"Visual regression tests","outcome":"success","tier":"standard","mechanism":"background","phase":3,"model":"claude-sonnet-4-6","convoy_id":"demo-dashboard-ui"}
74
+ {"type":"delegation","timestamp":"2026-02-08T11:48:00.000Z","agent":"Reviewer","task":"Panel review – dashboard","outcome":"success","tier":"economy","mechanism":"sub-agent","phase":4,"model":"claude-haiku-3-5","convoy_id":"demo-dashboard-ui"}
75
+ {"type":"delegation","timestamp":"2026-02-11T11:08:00.000Z","agent":"API Designer","task":"REST v2 route design","outcome":"success","tier":"standard","mechanism":"sub-agent","phase":1,"model":"claude-sonnet-4-6","convoy_id":"demo-api-v2"}
76
+ {"type":"delegation","timestamp":"2026-02-12T16:18:00.000Z","agent":"Developer","task":"Rate limiting middleware","outcome":"partial","tier":"standard","mechanism":"background","phase":2,"model":"claude-sonnet-4-6","convoy_id":"demo-api-v2"}
77
+ {"type":"delegation","timestamp":"2026-02-12T17:19:00.000Z","agent":"Security Expert","task":"Injection vulnerability scan","outcome":"failed","tier":"standard","mechanism":"sub-agent","phase":3,"model":"claude-sonnet-4-6","convoy_id":"demo-api-v2"}
78
+ {"type":"delegation","timestamp":"2026-02-13T09:16:00.000Z","agent":"Developer","task":"Patch SQL injection","outcome":"success","tier":"standard","mechanism":"sub-agent","phase":2,"model":"claude-sonnet-4-6"}
79
+ {"type":"delegation","timestamp":"2026-02-16T11:33:00.000Z","agent":"Performance Expert","task":"Bundle profiling","outcome":"success","tier":"standard","mechanism":"sub-agent","phase":1,"model":"claude-sonnet-4-6","convoy_id":"demo-perf-opt"}
80
+ {"type":"delegation","timestamp":"2026-02-17T10:37:00.000Z","agent":"Developer","task":"Code-split chart library","outcome":"success","tier":"standard","mechanism":"background","phase":2,"model":"claude-sonnet-4-6","convoy_id":"demo-perf-opt"}
81
+ {"type":"delegation","timestamp":"2026-02-17T10:37:00.000Z","agent":"Developer","task":"Image lazy-loading","outcome":"success","tier":"standard","mechanism":"background","phase":2,"model":"claude-sonnet-4-6","convoy_id":"demo-perf-opt"}
82
+ {"type":"delegation","timestamp":"2026-02-17T11:38:00.000Z","agent":"Performance Expert","task":"Core Web Vitals validation","outcome":"success","tier":"standard","mechanism":"sub-agent","phase":3,"model":"claude-sonnet-4-6","convoy_id":"demo-perf-opt"}
83
+ {"type":"delegation","timestamp":"2026-02-18T14:46:00.000Z","agent":"Reviewer","task":"Performance PR review","outcome":"success","tier":"utility","mechanism":"sub-agent","phase":4,"model":"claude-haiku-3-5"}
84
+ {"type":"delegation","timestamp":"2026-02-21T11:03:00.000Z","agent":"Data Expert","task":"ndjson schema design","outcome":"success","tier":"standard","mechanism":"sub-agent","phase":1,"model":"claude-sonnet-4-6","convoy_id":"demo-data-pipeline"}
85
+ {"type":"delegation","timestamp":"2026-02-22T13:10:00.000Z","agent":"Data Expert","task":"ETL implementation","outcome":"success","tier":"standard","mechanism":"background","phase":2,"model":"claude-sonnet-4-6","convoy_id":"demo-data-pipeline"}
86
+ {"type":"delegation","timestamp":"2026-02-22T14:11:00.000Z","agent":"Testing Expert","task":"ETL test suite","outcome":"success","tier":"economy","mechanism":"background","phase":3,"model":"claude-haiku-3-5","convoy_id":"demo-data-pipeline"}
87
+ {"type":"delegation","timestamp":"2026-02-28T15:42:00.000Z","agent":"Documentation Writer","task":"README and ARCHITECTURE update","outcome":"success","tier":"economy","mechanism":"sub-agent","phase":1,"model":"claude-haiku-3-5","convoy_id":"demo-docs-update"}
88
+ {"type":"delegation","timestamp":"2026-02-28T16:43:00.000Z","agent":"Documentation Writer","task":"API reference generation","outcome":"success","tier":"economy","mechanism":"sub-agent","phase":2,"model":"claude-haiku-3-5","convoy_id":"demo-docs-update"}
89
+ {"type":"delegation","timestamp":"2026-03-04T10:02:00.000Z","agent":"DevOps Expert","task":"GitHub Actions workflow","outcome":"success","tier":"standard","mechanism":"sub-agent","phase":1,"model":"claude-sonnet-4-6","convoy_id":"demo-deploy-ci"}
90
+ {"type":"delegation","timestamp":"2026-03-06T15:17:00.000Z","agent":"Security Expert","task":"Deployment security headers review","outcome":"success","tier":"standard","mechanism":"sub-agent","phase":2,"model":"claude-sonnet-4-6"}
91
+ {"type":"delegation","timestamp":"2026-03-08T10:22:00.000Z","agent":"Reviewer","task":"CI config security review","outcome":"success","tier":"utility","mechanism":"sub-agent","phase":3,"model":"claude-haiku-3-5"}
92
+ {"type":"delegation","timestamp":"2026-03-09T09:26:00.000Z","agent":"Developer","task":"TypeScript strict mode fixes","outcome":"success","tier":"standard","mechanism":"sub-agent","phase":2,"model":"claude-sonnet-4-6"}
93
+ {"type":"delegation","timestamp":"2026-03-09T14:31:00.000Z","agent":"Testing Expert","task":"Increase test coverage","outcome":"success","tier":"standard","mechanism":"background","phase":3,"model":"claude-sonnet-4-6"}
94
+ {"type":"delegation","timestamp":"2026-03-10T10:32:00.000Z","agent":"Developer","task":"Watch mode implementation","outcome":"success","tier":"standard","mechanism":"background","phase":2,"model":"claude-sonnet-4-6"}
95
+ {"type":"delegation","timestamp":"2026-03-11T08:35:00.000Z","agent":"DevOps Expert","task":"nx build caching config","outcome":"partial","tier":"standard","mechanism":"background","phase":2,"model":"claude-sonnet-4-6","convoy_id":"demo-deploy-ci"}
96
+ {"type":"delegation","timestamp":"2026-03-12T09:41:00.000Z","agent":"Developer","task":"Agents CLI command","outcome":"success","tier":"standard","mechanism":"sub-agent","phase":2,"model":"claude-sonnet-4-6"}
97
+ {"type":"delegation","timestamp":"2026-03-12T11:43:00.000Z","agent":"Reviewer","task":"Agents CLI fast review","outcome":"success","tier":"utility","mechanism":"sub-agent","phase":4,"model":"claude-haiku-3-5"}
98
+ {"type":"panel","timestamp":"2026-02-03T11:15:00.000Z","panel_key":"auth-security-panel","verdict":"pass","pass_count":3,"block_count":0,"must_fix":0,"should_fix":1,"reviewer_model":"claude-opus-4-6","attempt":1,"artifacts_count":4,"convoy_id":"demo-auth-revamp"}
99
+ {"type":"panel","timestamp":"2026-02-08T10:15:00.000Z","panel_key":"dashboard-ui-panel","verdict":"block","pass_count":2,"block_count":1,"must_fix":0,"should_fix":3,"reviewer_model":"claude-opus-4-6","attempt":1,"artifacts_count":0,"convoy_id":"demo-dashboard-ui"}
100
+ {"type":"panel","timestamp":"2026-02-08T11:15:00.000Z","panel_key":"dashboard-ui-panel","verdict":"pass","pass_count":3,"block_count":0,"must_fix":0,"should_fix":2,"reviewer_model":"claude-opus-4-6","attempt":2,"artifacts_count":4,"convoy_id":"demo-dashboard-ui"}
101
+ {"type":"panel","timestamp":"2026-02-12T17:15:00.000Z","panel_key":"api-security-panel","verdict":"block","pass_count":1,"block_count":2,"must_fix":2,"should_fix":1,"reviewer_model":"claude-opus-4-6","attempt":1,"artifacts_count":0,"convoy_id":"demo-api-v2"}
102
+ {"type":"panel","timestamp":"2026-02-14T15:15:00.000Z","panel_key":"api-security-panel-retry","verdict":"pass","pass_count":3,"block_count":0,"must_fix":0,"should_fix":1,"reviewer_model":"claude-opus-4-6","attempt":2,"artifacts_count":4,"convoy_id":"demo-api-v2"}
103
+ {"type":"panel","timestamp":"2026-02-17T12:15:00.000Z","panel_key":"perf-quality-panel","verdict":"pass","pass_count":3,"block_count":0,"must_fix":0,"should_fix":0,"reviewer_model":"claude-opus-4-6","attempt":1,"artifacts_count":4,"convoy_id":"demo-perf-opt"}
104
+ {"type":"panel","timestamp":"2026-02-22T15:15:00.000Z","panel_key":"etl-review-panel","verdict":"pass","pass_count":2,"block_count":1,"must_fix":0,"should_fix":2,"reviewer_model":"claude-opus-4-6","attempt":1,"artifacts_count":3,"convoy_id":"demo-data-pipeline"}
105
+ {"type":"panel","timestamp":"2026-02-28T16:15:00.000Z","panel_key":"docs-panel","verdict":"pass","pass_count":3,"block_count":0,"must_fix":0,"should_fix":1,"reviewer_model":"claude-opus-4-6","attempt":1,"artifacts_count":4,"convoy_id":"demo-docs-update"}
106
+ {"type":"panel","timestamp":"2026-03-06T16:15:00.000Z","panel_key":"ci-security-panel","verdict":"pass","pass_count":2,"block_count":1,"must_fix":1,"should_fix":0,"reviewer_model":"claude-opus-4-6","attempt":1,"artifacts_count":3}
107
+ {"type":"panel","timestamp":"2026-03-11T13:15:00.000Z","panel_key":"deploy-final-panel","verdict":"block","pass_count":1,"block_count":2,"must_fix":1,"should_fix":2,"reviewer_model":"claude-opus-4-6","attempt":1,"artifacts_count":0,"convoy_id":"demo-deploy-ci"}
108
+ {"type":"review","timestamp":"2026-02-03T11:25:00.000Z","agent":"Reviewer","verdict":"pass","issues_critical":0,"issues_major":1,"issues_minor":2,"confidence":"high","attempt":1,"escalated":false,"tracker_issue":"TASK-07","convoy_id":"demo-auth-revamp"}
109
+ {"type":"review","timestamp":"2026-02-08T10:25:00.000Z","agent":"Reviewer","verdict":"block","issues_critical":0,"issues_major":2,"issues_minor":3,"confidence":"medium","attempt":1,"escalated":true,"tracker_issue":"TASK-18","convoy_id":"demo-dashboard-ui"}
110
+ {"type":"review","timestamp":"2026-02-08T11:25:00.000Z","agent":"Reviewer","verdict":"pass","issues_critical":0,"issues_major":0,"issues_minor":2,"confidence":"high","attempt":2,"escalated":false,"tracker_issue":"TASK-18","convoy_id":"demo-dashboard-ui"}
111
+ {"type":"review","timestamp":"2026-02-12T17:25:00.000Z","agent":"Reviewer","verdict":"block","issues_critical":2,"issues_major":1,"issues_minor":0,"confidence":"high","attempt":1,"escalated":true,"tracker_issue":"TASK-24","convoy_id":"demo-api-v2"}
112
+ {"type":"review","timestamp":"2026-02-18T14:25:00.000Z","agent":"Reviewer","verdict":"pass","issues_critical":0,"issues_major":0,"issues_minor":1,"confidence":"high","attempt":1,"escalated":false,"tracker_issue":"TASK-33"}
113
+ {"type":"review","timestamp":"2026-02-23T15:25:00.000Z","agent":"Reviewer","verdict":"pass","issues_critical":0,"issues_major":0,"issues_minor":0,"confidence":"high","attempt":1,"escalated":false,"tracker_issue":"TASK-40","convoy_id":"demo-data-pipeline"}
114
+ {"type":"review","timestamp":"2026-03-08T10:25:00.000Z","agent":"Reviewer","verdict":"pass","issues_critical":0,"issues_major":1,"issues_minor":1,"confidence":"medium","attempt":1,"escalated":false,"tracker_issue":"TASK-53"}
115
+ {"type":"review","timestamp":"2026-03-12T11:25:00.000Z","agent":"Reviewer","verdict":"pass","issues_critical":0,"issues_major":0,"issues_minor":1,"confidence":"high","attempt":1,"escalated":false,"tracker_issue":"TASK-61"}