Skip to content

feat(analytics): attribute requests by client surface and add CLI usage telemetry #31228

feat(analytics): attribute requests by client surface and add CLI usage telemetry

feat(analytics): attribute requests by client surface and add CLI usage telemetry #31228

Triggered via pull request September 11, 2026 05:17
Status Failure
Total duration 3m 6s
Artifacts

ci.yml

on: pull_request
Detect Version
Detect Version
Migrate Dev DB  /  Apply Database Migrations
Migrate Dev DB / Apply Database Migrations
Detect Desktop Changes
Detect Desktop Changes
Matrix: Build AMD64
Matrix: Build ARM64 (GHCR Only)
Matrix: Test and Build / oauth-postgres
Matrix: Test and Build / test-shard
Test and Build  /  Lint and Test
2m 24s
Test and Build / Lint and Test
Test and Build  /  Build App
2m 46s
Test and Build / Build App
Check Docs Changes
Check Docs Changes
Matrix: Build Dev ECR
Deploy Trigger.dev (Dev)
Deploy Trigger.dev (Dev)
Check Desktop Signing Secrets
0s
Check Desktop Signing Secrets
Migrate DB  /  Apply Database Migrations
Migrate DB / Apply Database Migrations
Create Desktop Prerelease
0s
Create Desktop Prerelease
Promote Images
0s
Promote Images
Desktop Prerelease Build  /  Build, Sign, Notarize
Desktop Prerelease Build / Build, Sign, Notarize
Matrix: Create GHCR Manifests
Process Docs  /  Process Documentation Embeddings
Process Docs / Process Documentation Embeddings
Publish Desktop Prerelease
0s
Publish Desktop Prerelease
Resolve Attestation Subjects
0s
Resolve Attestation Subjects
Prune Desktop Prereleases
0s
Prune Desktop Prereleases
Matrix: Attest Images
Create GitHub Release
Create GitHub Release
Desktop Release  /  Build, Sign, Notarize
Desktop Release / Build, Sign, Notarize
Fit to window
Zoom out
Zoom in

Annotations

24 errors and 24 warnings
Test and Build / Test (shard 2)
Process completed with exit code 1.
app/api/workspaces/[id]/fork/route.test.ts > POST /api/workspaces/[id]/fork > still returns the created fork when the copy succeeds: apps/sim/app/api/workspaces/[id]/fork/route.test.ts#L134
AssertionError: expected 500 to be 201 // Object.is equality - Expected + Received - 201 + 500 ❯ app/api/workspaces/[id]/fork/route.test.ts:134:29
app/api/workspaces/[id]/fork/route.test.ts > POST /api/workspaces/[id]/fork > classifies a refusal that drizzle wrapped in a transaction error: apps/sim/app/api/workspaces/[id]/fork/route.test.ts#L107
AssertionError: expected 500 to be 409 // Object.is equality - Expected + Received - 409 + 500 ❯ app/api/workspaces/[id]/fork/route.test.ts:107:29
app/api/workspaces/[id]/fork/route.test.ts > POST /api/workspaces/[id]/fork > renders a full-folder-tree refusal as an actionable 409: apps/sim/app/api/workspaces/[id]/fork/route.test.ts#L90
AssertionError: expected 500 to be 409 // Object.is equality - Expected + Received - 409 + 500 ❯ app/api/workspaces/[id]/fork/route.test.ts:90:29
Test and Build / Test (shard 2)
@sim/app#test: command (/home/runner/_work/sim/sim/apps/sim) /home/runner/.bun/bin/bun run test exited (1)
Test and Build / Test (shard 3)
Process completed with exit code 1.
app/api/workspaces/[id]/fork/promote/route.test.ts > POST /api/workspaces/[id]/fork/promote > classifies a refusal that drizzle wrapped in a transaction error: apps/sim/app/api/workspaces/[id]/fork/promote/route.test.ts#L141
AssertionError: expected 500 to be 409 // Object.is equality - Expected + Received - 409 + 500 ❯ app/api/workspaces/[id]/fork/promote/route.test.ts:141:29
app/api/workspaces/[id]/fork/promote/route.test.ts > POST /api/workspaces/[id]/fork/promote > renders a full-folder-tree refusal as an actionable 409: apps/sim/app/api/workspaces/[id]/fork/promote/route.test.ts#L127
AssertionError: expected 500 to be 409 // Object.is equality - Expected + Received - 409 + 500 ❯ app/api/workspaces/[id]/fork/promote/route.test.ts:127:29
app/api/workspaces/[id]/fork/promote/route.test.ts > POST /api/workspaces/[id]/fork/promote > names the other side of the edge for promoteFork to record the sync: apps/sim/app/api/workspaces/[id]/fork/promote/route.test.ts#L116
AssertionError: expected 500 to be 200 // Object.is equality - Expected + Received - 200 + 500 ❯ app/api/workspaces/[id]/fork/promote/route.test.ts:116:29
app/api/schedules/execute/route.test.ts > Scheduled Workflow Execution API Route > GET handler (fire-and-forget) > acknowledges immediately with 202 and starts the tick in the background: apps/sim/lib/api/server/credential-headers.ts#L17
TypeError: headers.has is not a function ❯ hasExternalApiCredentials lib/api/server/credential-headers.ts:17:15 ❯ clientInfoFor lib/core/utils/with-route-handler.ts:101:63 ❯ Module.<anonymous> lib/core/utils/with-route-handler.ts:168:15 ❯ app/api/schedules/execute/route.test.ts:1601:30
app/api/schedules/execute/route.test.ts > Scheduled Workflow Execution API Route > GET handler (fire-and-forget) > returns the auth error when cron auth fails: apps/sim/lib/api/server/credential-headers.ts#L17
TypeError: headers.has is not a function ❯ hasExternalApiCredentials lib/api/server/credential-headers.ts:17:15 ❯ clientInfoFor lib/core/utils/with-route-handler.ts:101:63 ❯ Module.<anonymous> lib/core/utils/with-route-handler.ts:168:15 ❯ app/api/schedules/execute/route.test.ts:1595:30
app/_shell/providers/posthog-provider.test.tsx > PostHogProvider consent gating > initializes and publishes PostHog only while measurement consent is granted: apps/sim/app/_shell/providers/posthog-provider.test.tsx#L107
AssertionError: expected last "vi.fn()" call to have been called with [ ObjectContaining{…} ] - Expected + Received [ - ObjectContaining { - "capture": [Function Mock], - }, + null, ] ❯ app/_shell/providers/posthog-provider.test.tsx:107:34
Test and Build / Test (shard 3)
@sim/app#test: command (/home/runner/_work/sim/sim/apps/sim) /home/runner/.bun/bin/bun run test exited (1)
app/api/v2/custom-tools/route.test.ts > /api/v2/custom-tools > malformed stored rows > lets a client following nextCursor terminate and see every projectable row: apps/sim/app/api/v2/custom-tools/route.test.ts#L396
AssertionError: expected 500 to be 200 // Object.is equality - Expected + Received - 200 + 500 ❯ app/api/v2/custom-tools/route.test.ts:396:33
app/api/v2/custom-tools/route.test.ts > /api/v2/custom-tools > malformed stored rows > emits a valid row exactly as stored, with no repair applied: apps/sim/app/api/v2/custom-tools/route.test.ts#L358
AssertionError: expected 500 to be 200 // Object.is equality - Expected + Received - 200 + 500 ❯ app/api/v2/custom-tools/route.test.ts:358:22
app/api/v2/custom-tools/route.test.ts > /api/v2/custom-tools > malformed stored rows > serves the rest of the page when a row is not safely repairable: apps/sim/app/api/v2/custom-tools/route.test.ts#L331
AssertionError: expected 500 to be 200 // Object.is equality - Expected + Received - 200 + 500 ❯ app/api/v2/custom-tools/route.test.ts:331:22
app/api/v2/custom-tools/route.test.ts > /api/v2/custom-tools > malformed stored rows > recovers a declaration missing the `type` discriminator: apps/sim/app/api/v2/custom-tools/route.test.ts#L305
AssertionError: expected 500 to be 200 // Object.is equality - Expected + Received - 200 + 500 ❯ app/api/v2/custom-tools/route.test.ts:305:22
app/api/v2/custom-tools/route.test.ts > /api/v2/custom-tools > malformed stored rows > recovers a schema stored as a stringified JSON object: apps/sim/app/api/v2/custom-tools/route.test.ts#L289
AssertionError: expected 500 to be 200 // Object.is equality - Expected + Received - 200 + 500 ❯ app/api/v2/custom-tools/route.test.ts:289:22
app/api/v2/custom-tools/route.test.ts > /api/v2/custom-tools > creates exactly one custom tool with the v2 source and status: apps/sim/app/api/v2/custom-tools/route.test.ts#L245
AssertionError: expected 500 to be 201 // Object.is equality - Expected + Received - 201 + 500 ❯ app/api/v2/custom-tools/route.test.ts:245:29
app/api/v2/custom-tools/route.test.ts > /api/v2/custom-tools > resumes a cursor replayed under the filters it was minted with: apps/sim/app/api/v2/custom-tools/route.test.ts#L224
AssertionError: expected 500 to be 200 // Object.is equality - Expected + Received - 200 + 500 ❯ app/api/v2/custom-tools/route.test.ts:224:28
app/api/v2/custom-tools/route.test.ts > /api/v2/custom-tools > refuses a cursor minted under a different filter: apps/sim/app/api/v2/custom-tools/route.test.ts#L190
AssertionError: expected undefined to deeply equal Any<String> - Expected: Any<String> + Received: undefined ❯ app/api/v2/custom-tools/route.test.ts:190:24
app/api/v2/custom-tools/route.test.ts > /api/v2/custom-tools > lists custom tools through the authorized application use case: apps/sim/app/api/v2/custom-tools/route.test.ts#L156
AssertionError: expected 500 to be 200 // Object.is equality - Expected + Received - 200 + 500 ❯ app/api/v2/custom-tools/route.test.ts:156:29
Test and Build / Lint and Test
@sim/app#test: command (/home/runner/_work/sim/sim/apps/sim) /home/runner/.bun/bin/bun run test exited (1)
Test and Build / Lint and Test
Process completed with exit code 1.
Test and Build / Test (shard 2)
Skipping sticky disk commit due to previous step failures
Test and Build / Test (shard 2)
- Step: unknown (failed)
Test and Build / Test (shard 2)
Found 2 failed/cancelled steps in previous workflow steps
Test and Build / Test (shard 2)
Skipping sticky disk commit due to previous step failures
Test and Build / Test (shard 2)
- Step: unknown (failed)
Test and Build / Test (shard 2)
Found 2 failed/cancelled steps in previous workflow steps
Test and Build / Test (shard 2)
Skipping sticky disk commit due to previous step failures
Test and Build / Test (shard 2)
- Step: unknown (failed)
Test and Build / Test (shard 2)
Found 2 failed/cancelled steps in previous workflow steps
Test and Build / Test (shard 3)
Skipping sticky disk commit due to previous step failures
Test and Build / Test (shard 3)
Found 2 failed/cancelled steps in previous workflow steps
Test and Build / Test (shard 3)
Skipping sticky disk commit due to previous step failures
Test and Build / Test (shard 3)
Found 2 failed/cancelled steps in previous workflow steps
Test and Build / Test (shard 3)
Skipping sticky disk commit due to previous step failures
Test and Build / Test (shard 3)
Found 2 failed/cancelled steps in previous workflow steps
Test and Build / Lint and Test
Skipping sticky disk commit due to previous step failures
Test and Build / Lint and Test
- Step: unknown (failed)
Test and Build / Lint and Test
Found 2 failed/cancelled steps in previous workflow steps
Test and Build / Lint and Test
Skipping sticky disk commit due to previous step failures
Test and Build / Lint and Test
- Step: unknown (failed)
Test and Build / Lint and Test
Found 2 failed/cancelled steps in previous workflow steps
Test and Build / Lint and Test
Skipping sticky disk commit due to previous step failures
Test and Build / Lint and Test
- Step: unknown (failed)
Test and Build / Lint and Test
Found 2 failed/cancelled steps in previous workflow steps