opencastle 0.27.2 → 0.28.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 (71) hide show
  1. package/bin/cli.mjs +13 -5
  2. package/dist/cli/convoy/engine.js +2 -2
  3. package/dist/cli/convoy/engine.js.map +1 -1
  4. package/dist/cli/convoy/engine.test.js +1 -1
  5. package/dist/cli/convoy/engine.test.js.map +1 -1
  6. package/dist/cli/convoy/issues.js +3 -3
  7. package/dist/cli/convoy/issues.js.map +1 -1
  8. package/dist/cli/convoy/issues.test.js +4 -3
  9. package/dist/cli/convoy/issues.test.js.map +1 -1
  10. package/dist/cli/pipeline.d.ts +3 -0
  11. package/dist/cli/pipeline.d.ts.map +1 -0
  12. package/dist/cli/pipeline.js +305 -0
  13. package/dist/cli/pipeline.js.map +1 -0
  14. package/dist/cli/plan.d.ts +37 -0
  15. package/dist/cli/plan.d.ts.map +1 -1
  16. package/dist/cli/plan.js +321 -161
  17. package/dist/cli/plan.js.map +1 -1
  18. package/dist/cli/run.d.ts.map +1 -1
  19. package/dist/cli/run.js +37 -1
  20. package/dist/cli/run.js.map +1 -1
  21. package/dist/cli/validate.d.ts +3 -0
  22. package/dist/cli/validate.d.ts.map +1 -0
  23. package/dist/cli/validate.js +60 -0
  24. package/dist/cli/validate.js.map +1 -0
  25. package/package.json +5 -3
  26. package/src/cli/convoy/engine.test.ts +1 -1
  27. package/src/cli/convoy/engine.ts +2 -2
  28. package/src/cli/convoy/issues.test.ts +3 -2
  29. package/src/cli/convoy/issues.ts +3 -3
  30. package/src/cli/pipeline.ts +343 -0
  31. package/src/cli/plan.ts +357 -153
  32. package/src/cli/run.ts +37 -1
  33. package/src/cli/validate.ts +65 -0
  34. package/src/dashboard/dist/data/convoy-list.json +65 -1
  35. package/src/dashboard/dist/data/convoys/demo-api-v2.json +177 -0
  36. package/src/dashboard/dist/data/convoys/demo-auth-revamp.json +239 -0
  37. package/src/dashboard/dist/data/convoys/demo-convoy-1.json +111 -0
  38. package/src/dashboard/dist/data/convoys/demo-convoy-2.json +72 -0
  39. package/src/dashboard/dist/data/convoys/demo-dashboard-ui.json +328 -0
  40. package/src/dashboard/dist/data/convoys/demo-data-pipeline.json +187 -0
  41. package/src/dashboard/dist/data/convoys/demo-deploy-ci.json +153 -0
  42. package/src/dashboard/dist/data/convoys/demo-docs-update.json +154 -0
  43. package/src/dashboard/dist/data/convoys/demo-perf-opt.json +227 -0
  44. package/src/dashboard/dist/data/events.ndjson +115 -0
  45. package/src/dashboard/dist/data/overall-stats.json +67 -12
  46. package/src/dashboard/dist/data/pipelines.ndjson +5285 -0
  47. package/src/dashboard/dist/index.html +39 -16
  48. package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
  49. package/src/dashboard/public/data/convoy-list.json +65 -1
  50. package/src/dashboard/public/data/convoys/demo-api-v2.json +177 -0
  51. package/src/dashboard/public/data/convoys/demo-auth-revamp.json +239 -0
  52. package/src/dashboard/public/data/convoys/demo-convoy-1.json +111 -0
  53. package/src/dashboard/public/data/convoys/demo-convoy-2.json +72 -0
  54. package/src/dashboard/public/data/convoys/demo-dashboard-ui.json +328 -0
  55. package/src/dashboard/public/data/convoys/demo-data-pipeline.json +187 -0
  56. package/src/dashboard/public/data/convoys/demo-deploy-ci.json +153 -0
  57. package/src/dashboard/public/data/convoys/demo-docs-update.json +154 -0
  58. package/src/dashboard/public/data/convoys/demo-perf-opt.json +227 -0
  59. package/src/dashboard/public/data/events.ndjson +115 -0
  60. package/src/dashboard/public/data/overall-stats.json +67 -12
  61. package/src/dashboard/public/data/pipelines.ndjson +5285 -0
  62. package/src/dashboard/scripts/etl.ts +38 -4
  63. package/src/dashboard/scripts/generate-demo-db.test.ts +30 -0
  64. package/src/dashboard/scripts/generate-demo-db.ts +507 -0
  65. package/src/dashboard/scripts/verify-demo-data.sh +51 -0
  66. package/src/dashboard/src/pages/index.astro +46 -23
  67. package/src/orchestrator/prompts/fix-convoy.prompt.md +79 -0
  68. package/src/orchestrator/prompts/generate-convoy.prompt.md +53 -58
  69. package/src/orchestrator/prompts/generate-prd.prompt.md +120 -0
  70. package/src/orchestrator/prompts/validate-convoy.prompt.md +89 -0
  71. package/src/orchestrator/prompts/validate-prd.prompt.md +83 -0
@@ -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"}
@@ -1,24 +1,79 @@
1
1
  {
2
2
  "convoyCounts": {
3
- "total": 0,
4
- "running": 0,
5
- "done": 0,
3
+ "total": 7,
4
+ "running": 1,
5
+ "done": 5,
6
6
  "failed": 0,
7
7
  "gate_failed": 0
8
8
  },
9
9
  "durationStats": {
10
- "avg_sec": null,
11
- "p95_sec": null,
12
- "max_sec": null
10
+ "avg_sec": 2950.0000052154064,
11
+ "p95_sec": 3720.000019669533,
12
+ "max_sec": 5879.9999713897705
13
13
  },
14
14
  "tokenCostTotals": {
15
- "total_tokens": 0,
16
- "total_cost_usd": 0
15
+ "total_tokens": 226750,
16
+ "total_cost_usd": 22.67
17
17
  },
18
- "topAgents": [],
19
- "topModels": [],
18
+ "topAgents": [
19
+ {
20
+ "agent": "Developer",
21
+ "task_count": 6,
22
+ "total_tokens": 70100
23
+ },
24
+ {
25
+ "agent": "Reviewer",
26
+ "task_count": 5,
27
+ "total_tokens": 16250
28
+ },
29
+ {
30
+ "agent": "UI/UX Expert",
31
+ "task_count": 3,
32
+ "total_tokens": 32300
33
+ },
34
+ {
35
+ "agent": "Testing Expert",
36
+ "task_count": 3,
37
+ "total_tokens": 28800
38
+ },
39
+ {
40
+ "agent": "DevOps Expert",
41
+ "task_count": 3,
42
+ "total_tokens": 6400
43
+ }
44
+ ],
45
+ "topModels": [
46
+ {
47
+ "model": "claude-sonnet-4-6",
48
+ "task_count": 21,
49
+ "total_tokens": 177650
50
+ },
51
+ {
52
+ "model": "claude-haiku-3-5",
53
+ "task_count": 5,
54
+ "total_tokens": 17700
55
+ },
56
+ {
57
+ "model": "claude-opus-4-6",
58
+ "task_count": 4,
59
+ "total_tokens": 40700
60
+ }
61
+ ],
20
62
  "dlqSummary": {
21
- "count": 0,
22
- "top_failure_types": []
63
+ "count": 3,
64
+ "top_failure_types": [
65
+ {
66
+ "type": "timeout",
67
+ "count": 1
68
+ },
69
+ {
70
+ "type": "review_blocked",
71
+ "count": 1
72
+ },
73
+ {
74
+ "type": "gate_failed",
75
+ "count": 1
76
+ }
77
+ ]
23
78
  }
24
79
  }