opencastle 0.33.2 → 0.33.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cli/convoy/pipeline.d.ts.map +1 -1
- package/dist/cli/convoy/pipeline.js +6 -3
- package/dist/cli/convoy/pipeline.js.map +1 -1
- package/dist/cli/run/adapters/cursor.d.ts.map +1 -1
- package/dist/cli/run/adapters/cursor.js +1 -0
- package/dist/cli/run/adapters/cursor.js.map +1 -1
- package/dist/cli/run/adapters/cursor.test.js +15 -0
- package/dist/cli/run/adapters/cursor.test.js.map +1 -1
- package/dist/cli/run/adapters/opencode.d.ts.map +1 -1
- package/dist/cli/run/adapters/opencode.js +3 -0
- package/dist/cli/run/adapters/opencode.js.map +1 -1
- package/dist/cli/run/adapters/opencode.test.js +24 -0
- package/dist/cli/run/adapters/opencode.test.js.map +1 -1
- package/dist/cli/run.d.ts.map +1 -1
- package/dist/cli/run.js +87 -3
- package/dist/cli/run.js.map +1 -1
- package/package.json +1 -1
- package/src/cli/convoy/pipeline.ts +6 -3
- package/src/cli/run/adapters/cursor.test.ts +16 -0
- package/src/cli/run/adapters/cursor.ts +1 -0
- package/src/cli/run/adapters/opencode.test.ts +24 -0
- package/src/cli/run/adapters/opencode.ts +4 -0
- package/src/cli/run.ts +87 -3
- package/src/dashboard/dist/data/convoys/demo-api-v2.json +3 -3
- package/src/dashboard/dist/data/convoys/demo-auth-revamp.json +4 -4
- package/src/dashboard/dist/data/convoys/demo-dashboard-ui.json +18 -18
- package/src/dashboard/dist/data/convoys/demo-data-pipeline.json +9 -9
- package/src/dashboard/dist/data/convoys/demo-deploy-ci.json +1 -1
- package/src/dashboard/dist/data/convoys/demo-docs-update.json +3 -3
- package/src/dashboard/dist/data/convoys/demo-perf-opt.json +10 -10
- package/src/dashboard/dist/index.html +13 -10
- package/src/dashboard/node_modules/.vite/deps/_metadata.json +6 -6
- package/src/dashboard/public/data/convoys/demo-api-v2.json +3 -3
- package/src/dashboard/public/data/convoys/demo-auth-revamp.json +4 -4
- package/src/dashboard/public/data/convoys/demo-dashboard-ui.json +18 -18
- package/src/dashboard/public/data/convoys/demo-data-pipeline.json +9 -9
- package/src/dashboard/public/data/convoys/demo-deploy-ci.json +1 -1
- package/src/dashboard/public/data/convoys/demo-docs-update.json +3 -3
- package/src/dashboard/public/data/convoys/demo-perf-opt.json +10 -10
- package/src/dashboard/src/pages/index.astro +13 -10
|
@@ -42,28 +42,28 @@
|
|
|
42
42
|
"name": "reports/bundle-analysis.json",
|
|
43
43
|
"type": "json",
|
|
44
44
|
"task_id": "perf-t1",
|
|
45
|
-
"created_at": "2026-04-
|
|
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-04-06T06:18:06.220Z"
|
|
45
|
+
"created_at": "2026-04-06T08:25:17.588Z"
|
|
53
46
|
},
|
|
54
47
|
{
|
|
55
48
|
"id": "artifact-demo-perf-opt-src-charts-index-ts",
|
|
56
49
|
"name": "src/charts/index.ts",
|
|
57
50
|
"type": "file",
|
|
58
51
|
"task_id": "perf-t2",
|
|
59
|
-
"created_at": "2026-04-
|
|
52
|
+
"created_at": "2026-04-06T08:25:17.588Z"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"id": "artifact-demo-perf-opt-reports-web-vitals-improvement-md",
|
|
56
|
+
"name": "reports/web-vitals-improvement.md",
|
|
57
|
+
"type": "summary",
|
|
58
|
+
"task_id": "perf-t4",
|
|
59
|
+
"created_at": "2026-04-06T08:25:17.589Z"
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
"id": "artifact-demo-perf-opt-src-utils-image-loader-ts",
|
|
63
63
|
"name": "src/utils/image-loader.ts",
|
|
64
64
|
"type": "file",
|
|
65
65
|
"task_id": "perf-t3",
|
|
66
|
-
"created_at": "2026-04-
|
|
66
|
+
"created_at": "2026-04-06T08:25:17.589Z"
|
|
67
67
|
}
|
|
68
68
|
],
|
|
69
69
|
"has_more_events": false,
|
|
@@ -124,8 +124,8 @@ Export
|
|
|
124
124
|
const convoy = data.convoy;
|
|
125
125
|
const isRunningOrPending = convoy.status === 'running' || convoy.status === 'pending';
|
|
126
126
|
|
|
127
|
-
// If we haven't navigated to any convoy yet, navigate
|
|
128
|
-
if (!_activePollingConvoyId) {
|
|
127
|
+
// If we haven't navigated to any convoy yet, navigate to a running/pending one
|
|
128
|
+
if (!_activePollingConvoyId && isRunningOrPending) {
|
|
129
129
|
_activePollingConvoyId = convoy.id;
|
|
130
130
|
_lastPolledConvoyStatus = null;
|
|
131
131
|
// Refresh ETL data so convoy detail JSON exists
|
|
@@ -1811,18 +1811,21 @@ Export
|
|
|
1811
1811
|
|
|
1812
1812
|
if (convoyParam === 'active') {
|
|
1813
1813
|
const running = convoys.find((c) => c.status === 'running');
|
|
1814
|
-
const
|
|
1815
|
-
const
|
|
1816
|
-
if (
|
|
1817
|
-
|
|
1814
|
+
const pending = convoys.find((c) => c.status === 'pending');
|
|
1815
|
+
const active = running || pending;
|
|
1816
|
+
if (active) {
|
|
1817
|
+
// A convoy is actively running or pending — show it directly
|
|
1818
|
+
_activePollingConvoyId = active.id;
|
|
1818
1819
|
_lastPolledConvoyStatus = null;
|
|
1819
|
-
|
|
1820
|
-
|
|
1820
|
+
// Ensure ETL data exists for this convoy before rendering
|
|
1821
|
+
fetch(base + 'data/refresh').catch(() => {});
|
|
1822
|
+
showConvoyDetailView(active.id, active.name || active.id);
|
|
1821
1823
|
} else {
|
|
1822
|
-
// No convoy
|
|
1824
|
+
// No active convoy yet — show waiting banner until one starts
|
|
1823
1825
|
showWaitingBanner();
|
|
1824
|
-
startActiveConvoyPolling();
|
|
1825
1826
|
}
|
|
1827
|
+
// Always poll in active mode — detects new convoys automatically
|
|
1828
|
+
startActiveConvoyPolling();
|
|
1826
1829
|
} else if (convoyParam) {
|
|
1827
1830
|
showConvoyDetailView(convoyParam, convoyParam);
|
|
1828
1831
|
}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
1
|
{
|
|
2
|
-
"hash": "
|
|
2
|
+
"hash": "a802bd3b",
|
|
3
3
|
"configHash": "30f8ea04",
|
|
4
|
-
"lockfileHash": "
|
|
5
|
-
"browserHash": "
|
|
4
|
+
"lockfileHash": "7cbb1ed5",
|
|
5
|
+
"browserHash": "cc27db89",
|
|
6
6
|
"optimized": {
|
|
7
7
|
"astro > cssesc": {
|
|
8
8
|
"src": "../../../../../node_modules/cssesc/cssesc.js",
|
|
9
9
|
"file": "astro___cssesc.js",
|
|
10
|
-
"fileHash": "
|
|
10
|
+
"fileHash": "972e3ba9",
|
|
11
11
|
"needsInterop": true
|
|
12
12
|
},
|
|
13
13
|
"astro > aria-query": {
|
|
14
14
|
"src": "../../../../../node_modules/aria-query/lib/index.js",
|
|
15
15
|
"file": "astro___aria-query.js",
|
|
16
|
-
"fileHash": "
|
|
16
|
+
"fileHash": "08d92971",
|
|
17
17
|
"needsInterop": true
|
|
18
18
|
},
|
|
19
19
|
"astro > axobject-query": {
|
|
20
20
|
"src": "../../../../../node_modules/axobject-query/lib/index.js",
|
|
21
21
|
"file": "astro___axobject-query.js",
|
|
22
|
-
"fileHash": "
|
|
22
|
+
"fileHash": "427291d7",
|
|
23
23
|
"needsInterop": true
|
|
24
24
|
}
|
|
25
25
|
},
|
|
@@ -51,21 +51,21 @@
|
|
|
51
51
|
"name": "docs/api-v2-contract.json",
|
|
52
52
|
"type": "json",
|
|
53
53
|
"task_id": "api-t1",
|
|
54
|
-
"created_at": "2026-04-
|
|
54
|
+
"created_at": "2026-04-06T08:25:17.588Z"
|
|
55
55
|
},
|
|
56
56
|
{
|
|
57
57
|
"id": "artifact-demo-api-v2-reports-security-gate-failure-md",
|
|
58
58
|
"name": "reports/security-gate-failure.md",
|
|
59
59
|
"type": "summary",
|
|
60
60
|
"task_id": "api-t3",
|
|
61
|
-
"created_at": "2026-04-
|
|
61
|
+
"created_at": "2026-04-06T08:25:17.588Z"
|
|
62
62
|
},
|
|
63
63
|
{
|
|
64
64
|
"id": "artifact-demo-api-v2-src-api-rate-limiter-ts",
|
|
65
65
|
"name": "src/api/rate-limiter.ts",
|
|
66
66
|
"type": "file",
|
|
67
67
|
"task_id": "api-t2",
|
|
68
|
-
"created_at": "2026-04-
|
|
68
|
+
"created_at": "2026-04-06T08:25:17.588Z"
|
|
69
69
|
}
|
|
70
70
|
],
|
|
71
71
|
"has_more_events": false,
|
|
@@ -42,28 +42,28 @@
|
|
|
42
42
|
"name": "libs/auth/src/jwt-middleware.ts",
|
|
43
43
|
"type": "file",
|
|
44
44
|
"task_id": "auth-t2",
|
|
45
|
-
"created_at": "2026-04-
|
|
45
|
+
"created_at": "2026-04-06T08:25:17.587Z"
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
48
|
"id": "artifact-demo-auth-revamp-libs-auth-src-rls-policies-sql",
|
|
49
49
|
"name": "libs/auth/src/rls-policies.sql",
|
|
50
50
|
"type": "file",
|
|
51
51
|
"task_id": "auth-t3",
|
|
52
|
-
"created_at": "2026-04-
|
|
52
|
+
"created_at": "2026-04-06T08:25:17.587Z"
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
"id": "artifact-demo-auth-revamp-reports-auth-review-summary-md",
|
|
56
56
|
"name": "reports/auth-review-summary.md",
|
|
57
57
|
"type": "summary",
|
|
58
58
|
"task_id": "auth-t5",
|
|
59
|
-
"created_at": "2026-04-
|
|
59
|
+
"created_at": "2026-04-06T08:25:17.587Z"
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
"id": "artifact-demo-auth-revamp-tests-auth-integration-test-ts",
|
|
63
63
|
"name": "tests/auth/integration.test.ts",
|
|
64
64
|
"type": "file",
|
|
65
65
|
"task_id": "auth-t4",
|
|
66
|
-
"created_at": "2026-04-
|
|
66
|
+
"created_at": "2026-04-06T08:25:17.587Z"
|
|
67
67
|
}
|
|
68
68
|
],
|
|
69
69
|
"has_more_events": false,
|
|
@@ -46,47 +46,47 @@
|
|
|
46
46
|
],
|
|
47
47
|
"artifact_count": 6,
|
|
48
48
|
"artifacts": [
|
|
49
|
+
{
|
|
50
|
+
"id": "artifact-demo-dashboard-ui-reports-panel-review-dashboard-md",
|
|
51
|
+
"name": "reports/panel-review-dashboard.md",
|
|
52
|
+
"type": "summary",
|
|
53
|
+
"task_id": "ui-t7",
|
|
54
|
+
"created_at": "2026-04-06T08:25:17.588Z"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"id": "artifact-demo-dashboard-ui-reports-visual-regression-json",
|
|
58
|
+
"name": "reports/visual-regression.json",
|
|
59
|
+
"type": "json",
|
|
60
|
+
"task_id": "ui-t6",
|
|
61
|
+
"created_at": "2026-04-06T08:25:17.588Z"
|
|
62
|
+
},
|
|
49
63
|
{
|
|
50
64
|
"id": "artifact-demo-dashboard-ui-src-components-DonutChart-tsx",
|
|
51
65
|
"name": "src/components/DonutChart.tsx",
|
|
52
66
|
"type": "file",
|
|
53
67
|
"task_id": "ui-t3",
|
|
54
|
-
"created_at": "2026-04-
|
|
68
|
+
"created_at": "2026-04-06T08:25:17.588Z"
|
|
55
69
|
},
|
|
56
70
|
{
|
|
57
71
|
"id": "artifact-demo-dashboard-ui-src-components-KpiCard-tsx",
|
|
58
72
|
"name": "src/components/KpiCard.tsx",
|
|
59
73
|
"type": "file",
|
|
60
74
|
"task_id": "ui-t2",
|
|
61
|
-
"created_at": "2026-04-
|
|
75
|
+
"created_at": "2026-04-06T08:25:17.588Z"
|
|
62
76
|
},
|
|
63
77
|
{
|
|
64
78
|
"id": "artifact-demo-dashboard-ui-src-components-design-tokens-ts",
|
|
65
79
|
"name": "src/components/design-tokens.ts",
|
|
66
80
|
"type": "file",
|
|
67
81
|
"task_id": "ui-t1",
|
|
68
|
-
"created_at": "2026-04-
|
|
82
|
+
"created_at": "2026-04-06T08:25:17.588Z"
|
|
69
83
|
},
|
|
70
84
|
{
|
|
71
85
|
"id": "artifact-demo-dashboard-ui-src-styles-animations-css",
|
|
72
86
|
"name": "src/styles/animations.css",
|
|
73
87
|
"type": "file",
|
|
74
88
|
"task_id": "ui-t4",
|
|
75
|
-
"created_at": "2026-04-
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
"id": "artifact-demo-dashboard-ui-reports-panel-review-dashboard-md",
|
|
79
|
-
"name": "reports/panel-review-dashboard.md",
|
|
80
|
-
"type": "summary",
|
|
81
|
-
"task_id": "ui-t7",
|
|
82
|
-
"created_at": "2026-04-06T06:18:06.220Z"
|
|
83
|
-
},
|
|
84
|
-
{
|
|
85
|
-
"id": "artifact-demo-dashboard-ui-reports-visual-regression-json",
|
|
86
|
-
"name": "reports/visual-regression.json",
|
|
87
|
-
"type": "json",
|
|
88
|
-
"task_id": "ui-t6",
|
|
89
|
-
"created_at": "2026-04-06T06:18:06.220Z"
|
|
89
|
+
"created_at": "2026-04-06T08:25:17.588Z"
|
|
90
90
|
}
|
|
91
91
|
],
|
|
92
92
|
"has_more_events": false,
|
|
@@ -37,26 +37,26 @@
|
|
|
37
37
|
"dlq_entries": [],
|
|
38
38
|
"artifact_count": 3,
|
|
39
39
|
"artifacts": [
|
|
40
|
-
{
|
|
41
|
-
"id": "artifact-demo-data-pipeline-src-etl-schema-ts",
|
|
42
|
-
"name": "src/etl/schema.ts",
|
|
43
|
-
"type": "file",
|
|
44
|
-
"task_id": "etl-t1",
|
|
45
|
-
"created_at": "2026-04-06T06:18:06.220Z"
|
|
46
|
-
},
|
|
47
40
|
{
|
|
48
41
|
"id": "artifact-demo-data-pipeline-src-etl-pipeline-ts",
|
|
49
42
|
"name": "src/etl/pipeline.ts",
|
|
50
43
|
"type": "file",
|
|
51
44
|
"task_id": "etl-t2",
|
|
52
|
-
"created_at": "2026-04-
|
|
45
|
+
"created_at": "2026-04-06T08:25:17.589Z"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "artifact-demo-data-pipeline-src-etl-schema-ts",
|
|
49
|
+
"name": "src/etl/schema.ts",
|
|
50
|
+
"type": "file",
|
|
51
|
+
"task_id": "etl-t1",
|
|
52
|
+
"created_at": "2026-04-06T08:25:17.589Z"
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
"id": "artifact-demo-data-pipeline-tests-etl-pipeline-test-ts",
|
|
56
56
|
"name": "tests/etl/pipeline.test.ts",
|
|
57
57
|
"type": "file",
|
|
58
58
|
"task_id": "etl-t3",
|
|
59
|
-
"created_at": "2026-04-
|
|
59
|
+
"created_at": "2026-04-06T08:25:17.589Z"
|
|
60
60
|
}
|
|
61
61
|
],
|
|
62
62
|
"has_more_events": false,
|
|
@@ -42,21 +42,21 @@
|
|
|
42
42
|
"name": "docs/ARCHITECTURE.md",
|
|
43
43
|
"type": "file",
|
|
44
44
|
"task_id": "docs-t1",
|
|
45
|
-
"created_at": "2026-04-
|
|
45
|
+
"created_at": "2026-04-06T08:25:17.589Z"
|
|
46
46
|
},
|
|
47
47
|
{
|
|
48
48
|
"id": "artifact-demo-docs-update-docs-README-md",
|
|
49
49
|
"name": "docs/README.md",
|
|
50
50
|
"type": "file",
|
|
51
51
|
"task_id": "docs-t1",
|
|
52
|
-
"created_at": "2026-04-
|
|
52
|
+
"created_at": "2026-04-06T08:25:17.589Z"
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
55
|
"id": "artifact-demo-docs-update-docs-api-reference-json",
|
|
56
56
|
"name": "docs/api-reference.json",
|
|
57
57
|
"type": "json",
|
|
58
58
|
"task_id": "docs-t2",
|
|
59
|
-
"created_at": "2026-04-
|
|
59
|
+
"created_at": "2026-04-06T08:25:17.589Z"
|
|
60
60
|
}
|
|
61
61
|
],
|
|
62
62
|
"has_more_events": false,
|
|
@@ -42,28 +42,28 @@
|
|
|
42
42
|
"name": "reports/bundle-analysis.json",
|
|
43
43
|
"type": "json",
|
|
44
44
|
"task_id": "perf-t1",
|
|
45
|
-
"created_at": "2026-04-
|
|
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-04-06T06:18:06.220Z"
|
|
45
|
+
"created_at": "2026-04-06T08:25:17.588Z"
|
|
53
46
|
},
|
|
54
47
|
{
|
|
55
48
|
"id": "artifact-demo-perf-opt-src-charts-index-ts",
|
|
56
49
|
"name": "src/charts/index.ts",
|
|
57
50
|
"type": "file",
|
|
58
51
|
"task_id": "perf-t2",
|
|
59
|
-
"created_at": "2026-04-
|
|
52
|
+
"created_at": "2026-04-06T08:25:17.588Z"
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"id": "artifact-demo-perf-opt-reports-web-vitals-improvement-md",
|
|
56
|
+
"name": "reports/web-vitals-improvement.md",
|
|
57
|
+
"type": "summary",
|
|
58
|
+
"task_id": "perf-t4",
|
|
59
|
+
"created_at": "2026-04-06T08:25:17.589Z"
|
|
60
60
|
},
|
|
61
61
|
{
|
|
62
62
|
"id": "artifact-demo-perf-opt-src-utils-image-loader-ts",
|
|
63
63
|
"name": "src/utils/image-loader.ts",
|
|
64
64
|
"type": "file",
|
|
65
65
|
"task_id": "perf-t3",
|
|
66
|
-
"created_at": "2026-04-
|
|
66
|
+
"created_at": "2026-04-06T08:25:17.589Z"
|
|
67
67
|
}
|
|
68
68
|
],
|
|
69
69
|
"has_more_events": false,
|
|
@@ -474,8 +474,8 @@ try {
|
|
|
474
474
|
const convoy = data.convoy;
|
|
475
475
|
const isRunningOrPending = convoy.status === 'running' || convoy.status === 'pending';
|
|
476
476
|
|
|
477
|
-
// If we haven't navigated to any convoy yet, navigate
|
|
478
|
-
if (!_activePollingConvoyId) {
|
|
477
|
+
// If we haven't navigated to any convoy yet, navigate to a running/pending one
|
|
478
|
+
if (!_activePollingConvoyId && isRunningOrPending) {
|
|
479
479
|
_activePollingConvoyId = convoy.id;
|
|
480
480
|
_lastPolledConvoyStatus = null;
|
|
481
481
|
// Refresh ETL data so convoy detail JSON exists
|
|
@@ -2161,18 +2161,21 @@ try {
|
|
|
2161
2161
|
|
|
2162
2162
|
if (convoyParam === 'active') {
|
|
2163
2163
|
const running = convoys.find((c) => c.status === 'running');
|
|
2164
|
-
const
|
|
2165
|
-
const
|
|
2166
|
-
if (
|
|
2167
|
-
|
|
2164
|
+
const pending = convoys.find((c) => c.status === 'pending');
|
|
2165
|
+
const active = running || pending;
|
|
2166
|
+
if (active) {
|
|
2167
|
+
// A convoy is actively running or pending — show it directly
|
|
2168
|
+
_activePollingConvoyId = active.id;
|
|
2168
2169
|
_lastPolledConvoyStatus = null;
|
|
2169
|
-
|
|
2170
|
-
|
|
2170
|
+
// Ensure ETL data exists for this convoy before rendering
|
|
2171
|
+
fetch(base + 'data/refresh').catch(() => {});
|
|
2172
|
+
showConvoyDetailView(active.id, active.name || active.id);
|
|
2171
2173
|
} else {
|
|
2172
|
-
// No convoy
|
|
2174
|
+
// No active convoy yet — show waiting banner until one starts
|
|
2173
2175
|
showWaitingBanner();
|
|
2174
|
-
startActiveConvoyPolling();
|
|
2175
2176
|
}
|
|
2177
|
+
// Always poll in active mode — detects new convoys automatically
|
|
2178
|
+
startActiveConvoyPolling();
|
|
2176
2179
|
} else if (convoyParam) {
|
|
2177
2180
|
showConvoyDetailView(convoyParam, convoyParam);
|
|
2178
2181
|
}
|