Skip to content

feat(mothership): v1.0.0 #32752

feat(mothership): v1.0.0

feat(mothership): v1.0.0 #32752

Triggered via pull request September 23, 2026 19:03
Status Failure
Total duration 8m 31s
Artifacts –

ci.yml

on: pull_request
Detect Version
0s
Detect Version
Detect Desktop Changes
0s
Detect Desktop Changes
Prepare Trigger.dev
0s
Prepare Trigger.dev
Matrix: Build AMD64
Matrix: Build Dev ECR
Matrix: Build ARM64 (GHCR Only)
Matrix: Test and Build / oauth-postgres
Matrix: Test and Build / test-shard
Test and Build  /  Lint and Test
7m 4s
Test and Build / Lint and Test
Test and Build  /  Build App
5m 11s
Test and Build / Build App
Check Docs Changes
0s
Check Docs Changes
Migrate Dev DB  /  Apply Database Migrations
Migrate Dev DB / Apply Database Migrations
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
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
Promote Trigger.dev
Promote Trigger.dev
Publish Desktop Prerelease
0s
Publish Desktop Prerelease
Resolve Attestation Subjects
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

16 errors and 21 warnings
Test and Build / Test (shard 3)
Process completed with exit code 1.
lib/api/server/routes/copilot-route-inventory.test.ts > inventories private operation admission without executing route requests: apps/sim/lib/api/server/routes/copilot-route-inventory.test.ts#L43
AssertionError: expected [ { method: 'GET', …(3) }, …(48) ] to deeply equal [ { method: 'GET', …(3) }, …(7) ] - Expected + Received @@ -42,9 +42,255 @@ "path": "/api/v2/meta", }, { "audience": null, "method": "GET", + "operation": "organizations.list", + "path": "/api/v2/organizations", + }, + { + "audience": null, + "method": "GET", + "operation": "organizations.read", + "path": "/api/v2/organizations/[organizationId]", + }, + { + "audience": null, + "method": "POST", + "operation": "access_requests.create", + "path": "/api/v2/organizations/[organizationId]/access-requests", + }, + { + "audience": null, + "method": "GET", + "operation": "access_requests.list_organization", + "path": "/api/v2/organizations/[organizationId]/access-requests", + }, + { + "audience": null, + "method": "POST", + "operation": "access_requests.cancel", + "path": "/api/v2/organizations/[organizationId]/access-requests/[requestId]/cancel", + }, + { + "audience": null, + "method": "GET", + "operation": "access_requests.preview", + "path": "/api/v2/organizations/[organizationId]/access-requests/[requestId]/preview", + }, + { + "audience": null, + "method": "POST", + "operation": "access_requests.resolve", + "path": "/api/v2/organizations/[organizationId]/access-requests/[requestId]/resolve", + }, + { + "audience": null, + "method": "GET", + "operation": "access_requests.discover", + "path": "/api/v2/organizations/[organizationId]/access-requests/discovery", + }, + { + "audience": null, + "method": "GET", + "operation": "access_requests.list_mine", + "path": "/api/v2/organizations/[organizationId]/access-requests/mine", + }, + { + "audience": null, + "method": "GET", + "operation": "access_requests.get_settings", + "path": "/api/v2/organizations/[organizationId]/access-requests/settings", + }, + { + "audience": null, + "method": "PATCH", + "operation": "access_requests.update_settings", + "path": "/api/v2/organizations/[organizationId]/access-requests/settings", + }, + { + "audience": null, + "method": "GET", + "operation": "organizations.invitations.list", + "path": "/api/v2/organizations/[organizationId]/invitations", + }, + { + "audience": null, + "method": "POST", + "operation": "organizations.invitations.create", + "path": "/api/v2/organizations/[organizationId]/invitations", + }, + { + "audience": null, + "method": "GET", + "operation": "organizations.invitations.read", + "path": "/api/v2/organizations/[organizationId]/invitations/[invitationId]", + }, + { + "audience": null, + "method": "DELETE", + "operation": "invitations.revoke", + "path": "/api/v2/organizations/[organizationId]/invitations/[invitationId]", + }, + { + "audience": null, + "method": "POST", + "operation": "invitations.resend", + "path": "/api/v2/organizations/[organizationId]/invitations/[invitationId]/resend", + }, + { + "audience": null, + "method": "GET", + "operation": "organizations.invitations.workspaces.list", + "path": "/api/v2/organizations/[organizationId]/invitations/[invitationId]/workspaces", + }, + { + "audience": null, + "method": "GET", + "operation": "organizations.members.list", + "path": "/api/v2/organizations/[organizationId]/members", + }, + { + "audience": null, + "method": "PATCH", + "operation": "organizations.members.update", + "path": "/api/v2/organizations/[organizationId]/members/[userId]", + }, + { + "audience": null, + "method": "DELETE", + "operation": "organizations.members.remove", + "path": "/api/v2/organizations/[organizationId]/members/[userId]", + }, + { + "audience": null, + "method": "GET", + "operation": "organization_member_usage_limits.read", + "path": "/api/v2/organizations/[organizationId]/member
lib/mothership/resources/types.test.ts > client and server agree on what can be persisted > the API accepts a sources resource: apps/sim/lib/mothership/resources/types.test.ts#L96
AssertionError: expected false to be true // Object.is equality - Expected + Received - true + false ❯ lib/mothership/resources/types.test.ts:96:28
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)
Test and Build / Test (shard 2)
Process completed with exit code 1.
app/api/knowledge/sim-search/sources/route.test.ts > GET Search sources > passes the authenticated subject into the registered operation and projects only the contract fields: apps/sim/app/api/knowledge/sim-search/sources/route.test.ts#L144
AssertionError: expected { …(17) } to deeply equal { …(16) } - Expected + Received @@ -5,10 +5,11 @@ "connectorId": "source", "connectorType": "google_drive", "enabled": true, "hasSyncError": false, "hasViewerDocuments": false, + "isGitHubInstallation": false, "isSyncing": false, "knowledgeBaseId": "search-index", "lastSyncAt": null, "sourceDescription": "Handbook", "viewerAccounts": [], ❯ app/api/knowledge/sim-search/sources/route.test.ts:144:34
lib/knowledge/application/chat.test.ts > organization Search Assistant chat > uses Search consent and the real organization Assistant through the headless lifecycle: apps/sim/lib/knowledge/application/chat.test.ts#L128
AssertionError: expected { …(9) } to deeply equal { …(10) } - Expected + Received @@ -11,13 +11,10 @@ { "content": "{\"connections\":[],\"available\":[]}", "type": "search_integrations", }, ], - "integrationCatalog": { - "mcpServerIds": [], - }, "message": "Where is the field kit?", "messageId": "08b4e8cf-69ca-4f4b-804e-043bc8c35307", "mode": "assistant", "organizationId": "org-1", "userId": "member-1", ❯ lib/knowledge/application/chat.test.ts:128:21
connectors/google-calendar/company-crawl.test.ts > Google Calendar company crawl > declares independent read-only Directory and delegated Calendar scopes: apps/sim/connectors/google-calendar/company-crawl.test.ts#L73
AssertionError: expected { mode: 'oauth', …(7) } to match object { …(5) } (3 matching properties omitted from actual) - Expected + Received @@ -6,8 +6,9 @@ "requiredScopes": [ "https://www.googleapis.com/auth/calendar", ], "serviceAccountDelegationScopes": [ "https://www.googleapis.com/auth/calendar.events.readonly", + "https://www.googleapis.com/auth/calendar.readonly", ], "serviceAccountSubjectFieldId": "adminEmail", } ❯ connectors/google-calendar/company-crawl.test.ts:73:46
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 / Lint and Test
Process completed with exit code 1.
app/workspace/[workspaceId]/knowledge/[id]/components/edit-connector-modal/connector-settings-fields.test.tsx > connector settings service-account choices > keeps general knowledge-base and workspace settings on their original path: {"isSearchIndex":false}: apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/edit-connector-modal/connector-settings-fields.test.tsx#L340
AssertionError: expected "vi.fn()" to be called with arguments: [ ObjectContaining{…} ] Received: 1st vi.fn() call: @@ -1,7 +1,10 @@ [ - ObjectContaining { + { + "accessMode": "members", + "canonicalGroups": Map {}, + "canonicalModes": {}, "connectorConfig": { "auth": { "apiKey": { "label": "Personal Access Token", "placeholder": "github_pat_…", @@ -10,14 +13,15 @@ "provider": "github-repositories", }, "configFields": [ { "id": "repository", - "placeholder": "owner/repo", + "placeholder": "Select a repository", "required": true, + "selectorKey": "github.installationRepositories", "title": "Repository", - "type": "short-input", + "type": "selector", }, { "description": "Leave blank for the repository’s default branch in member connections, or main in workspace connections.", "id": "branch", "placeholder": "e.g. main", @@ -84,8 +88,22 @@ "fieldType": "number", "id": "size", }, ], "version": "1.0.0", + }, + "credentialId": null, + "credentialType": undefined, + "disabled": false, + "isFieldVisible": [Function isFieldVisible], + "onFieldChange": [Function Mock], + "onToggleCanonicalMode": [Function Mock], + "scope": { + "kind": "organization", + "organizationId": "org-1", + }, + "selectionLabels": {}, + "sourceConfig": { + "repository": "acme/platform", }, }, ] Number of calls: 1 ❯ app/workspace/[workspaceId]/knowledge/[id]/components/edit-connector-modal/connector-settings-fields.test.tsx:340:34
app/workspace/[workspaceId]/knowledge/[id]/components/edit-connector-modal/connector-settings-fields.test.tsx > connector settings service-account choices > shows the GitHub connection and preserves the repository rename field for installation sources: apps/sim/app/workspace/[workspaceId]/knowledge/[id]/components/edit-connector-modal/connector-settings-fields.test.tsx#L243
AssertionError: expected "vi.fn()" to be called with arguments: [ ObjectContaining{…} ] Received: 1st vi.fn() call: @@ -1,7 +1,10 @@ [ - ObjectContaining { + { + "accessMode": "members", + "canonicalGroups": Map {}, + "canonicalModes": {}, "connectorConfig": { "auth": { "apiKey": { "label": "Personal Access Token", "placeholder": "github_pat_…", @@ -10,14 +13,15 @@ "provider": "github-repositories", }, "configFields": [ { "id": "repository", - "placeholder": "owner/repo", + "placeholder": "Select a repository", "required": true, + "selectorKey": "github.installationRepositories", "title": "Repository", - "type": "short-input", + "type": "selector", }, { "description": "Leave blank for the repository’s default branch in member connections, or main in workspace connections.", "id": "branch", "placeholder": "e.g. main", @@ -85,10 +89,21 @@ "id": "size", }, ], "version": "1.0.0", }, + "credentialId": "installation-1", + "credentialType": "service_account", + "disabled": false, + "isFieldVisible": [Function isFieldVisible], + "onFieldChange": [Function Mock], + "onToggleCanonicalMode": [Function Mock], + "scope": { + "kind": "organization", + "organizationId": "org-1", + }, + "selectionLabels": {}, "sourceConfig": { "repository": "acme/platform", }, }, ] Number of calls: 1 ❯ app/workspace/[workspaceId]/knowledge/[id]/components/edit-connector-modal/connector-settings-fields.test.tsx:243:32
lib/knowledge/connectors/access-token.test.ts > 'Google Calendar' declared company authentication > propagates service-account revocation without using an OAuth or Directory token fallback: apps/sim/lib/knowledge/connectors/access-token.test.ts#L552
AssertionError: expected "vi.fn()" to be called once with arguments: [ 'google-service', …(2) ] Received: 1st vi.fn() call: [ "google-service", [ "https://www.googleapis.com/auth/calendar.events.readonly", + "https://www.googleapis.com/auth/calendar.readonly", ], "employee@example.com", ] Number of calls: 1 ❯ lib/knowledge/connectors/access-token.test.ts:552:40
lib/knowledge/connectors/access-token.test.ts > 'Google Calendar' declared company authentication > mints Directory and per-user tokens from actual connector metadata with separate fixed scope sets: apps/sim/lib/knowledge/connectors/access-token.test.ts#L504
AssertionError: expected "vi.fn()" to be called once with arguments: [ 'google-service', …(2) ] Received: 1st vi.fn() call: [ "google-service", [ "https://www.googleapis.com/auth/calendar.events.readonly", + "https://www.googleapis.com/auth/calendar.readonly", ], "employee@example.com", ] Number of calls: 1 ❯ lib/knowledge/connectors/access-token.test.ts:504:40
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 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 / Test (shard 2)
Skipping sticky disk commit due to previous step failures
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)
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)
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