Skip to content

Rebase onto upstream/master (2026-08-26): 558 commits (d5b9f6c8..821573ed) #568

Rebase onto upstream/master (2026-08-26): 558 commits (d5b9f6c8..821573ed)

Rebase onto upstream/master (2026-08-26): 558 commits (d5b9f6c8..821573ed) #568

Triggered via pull request August 26, 2026 08:14
Status Cancelled
Total duration 8m 32s
Artifacts 4

pr.yml

on: pull_request
Matrix: e2e_shards
Matrix: general_tests
Typecheck + Release Registry
1m 57s
Typecheck + Release Registry
Build
2m 39s
Build
Matrix: verify_serialized_server
Fit to window
Zoom out
Zoom in

Annotations

75 errors
Verify serialized server suites (5/5)
Process completed with exit code 1.
[@paperclipai/server] src/__tests__/health.test.ts > GET /health > surfaces redacted database backup warnings for anonymous authenticated probes: server/src/__tests__/health.test.ts#L342
AssertionError: expected { status: 'ok', …(5) } to deeply equal { status: 'ok', …(7) } - Expected + Received { "bootstrapInviteActive": false, "bootstrapStatus": "ready", "commit": "0123456789abcdef0123456789abcdef01234567", - "databaseBackup": { - "enabled": true, - "status": "warning", - "warnings": [ - { - "code": "database_backup_stale", - "message": "Latest database backup is stale.", - }, - ], - }, "deploymentExposure": "public", "deploymentMode": "authenticated", "status": "ok", - "warnings": [ - { - "code": "database_backup_stale", - "message": "Latest database backup is stale.", - }, - ], } ❯ src/__tests__/health.test.ts:342:22
[@paperclipai/server] src/__tests__/health.test.ts > GET /health > finds conventional database backup failure markers without an explicit alert file: server/src/__tests__/health.test.ts#L284
AssertionError: expected { enabled: true, …(2) } to match object { status: 'warning', …(2) } (1 matching property omitted from actual) - Expected + Received { - "lastFailure": { - "message": "db-backup-to-s3 failed beside backups", - "path": "/tmp/pcvt-2633-11-9DnzDB/t/paperclip-health-backups-root-PQqZf3/db-backup-to-s3.failure", - }, "status": "warning", "warnings": [ { "code": "database_backup_last_failure", - "message": "db-backup-to-s3 failed beside backups", + "message": "Database backup failure marker is present.", }, ], } ❯ src/__tests__/health.test.ts:284:37
[@paperclipai/server] src/__tests__/health.test.ts > GET /health > surfaces database backup failure markers in full health details: server/src/__tests__/health.test.ts#L251
AssertionError: expected { enabled: true, …(2) } to match object { status: 'warning', …(2) } (1 matching property omitted from actual) - Expected + Received { - "lastFailure": { - "message": "db-backup-to-s3 failed at 2026-07-06T03:17:00.000Z exit=1", - "path": "/tmp/pcvt-2633-11-9DnzDB/t/paperclip-health-backups-kHsUjT/db-backup-to-s3.failure", - }, "status": "warning", "warnings": [ { "code": "database_backup_last_failure", - "message": "db-backup-to-s3 failed at 2026-07-06T03:17:00.000Z exit=1", + "message": "Database backup failure marker is present.", }, ], } ❯ src/__tests__/health.test.ts:251:37
[@paperclipai/server] src/__tests__/health.test.ts > GET /health > surfaces a stale database backup warning in full health details: server/src/__tests__/health.test.ts#L217
AssertionError: expected { enabled: true, …(2) } to match object { status: 'warning', …(4) } (1 matching property omitted from actual) - Expected + Received @@ -1,12 +1,6 @@ { - "backupDir": "/tmp/pcvt-2633-11-9DnzDB/t/paperclip-health-backups-dTtQCW", - "latestBackup": { - "ageHours": 33.7, - "name": "paperclip-20260705-031702.sql.gz", - }, - "maxAgeHours": 26, "status": "warning", "warnings": [ { "code": "database_backup_stale", }, ❯ src/__tests__/health.test.ts:217:37
Typecheck + Release Registry
Cannot find name 'mockInstanceSettingsApi'.
Typecheck + Release Registry
Cannot find name 'instanceSettingsApi'.
Typecheck + Release Registry
Cannot find name 'instanceSettingsApi'.
Typecheck + Release Registry
Property 'enableManagedSandboxOnly' does not exist on type 'PublicFeatureFlags'.
Typecheck + Release Registry
Cannot find name 'instanceSettings'.
Typecheck + Release Registry
Property 'enableManagedSandboxOnly' does not exist on type 'PublicFeatureFlags'.
Typecheck + Release Registry
Property 'enableManagedSandboxOnly' does not exist on type 'PublicFeatureFlags'.
Typecheck + Release Registry
Cannot find name 'instanceSettings'.
Typecheck + Release Registry
Property 'enableManagedSandboxOnly' does not exist on type 'PublicFeatureFlags'.
Typecheck + Release Registry
Cannot find name 'instanceSettings'.
General tests (workspaces-b)
Process completed with exit code 1.
[@paperclipai/db] src/issue-thread-interaction-resolver-policy-migration.test.ts > issue interaction resolver policy migration > replays safely and completes a partial prior run: packages/db/src/issue-thread-interaction-resolver-policy-migration.test.ts#L20
Error: ENOENT: no such file or directory, open '/home/runner/work/paperclip/paperclip/packages/db/src/migrations/0218_mushy_jack_murdock.sql' ❯ resolverPolicyMigrationStatements src/issue-thread-interaction-resolver-policy-migration.test.ts:20:24 ❯ src/issue-thread-interaction-resolver-policy-migration.test.ts:95:24 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'open', path: '/home/runner/work/paperclip/paperclip/packages/db/src/migrations/0218_mushy_jack_murdock.sql' }
[@paperclipai/db] src/issue-comment-on-behalf-migration.test.ts > issue comment on-behalf attribution migration > reapplies the migration and round-trips the nullable user attribution FK: packages/db/src/issue-comment-on-behalf-migration.test.ts#L17
Error: ENOENT: no such file or directory, open '/home/runner/work/paperclip/paperclip/packages/db/src/migrations/0205_narrow_shiva.sql' ❯ migrationHash src/issue-comment-on-behalf-migration.test.ts:17:19 ❯ src/issue-comment-on-behalf-migration.test.ts:38:79 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'open', path: '/home/runner/work/paperclip/paperclip/packages/db/src/migrations/0205_narrow_shiva.sql' }
[@paperclipai/db] src/heartbeat-context-snapshot-index-migration.test.ts > heartbeat context_snapshot expression index migration > applies full migration chain and uses the new indexes: packages/db/src/heartbeat-context-snapshot-index-migration.test.ts#L67
Error: ENOENT: no such file or directory, open '/home/runner/work/paperclip/paperclip/packages/db/src/migrations/0209_heartbeat_context_snapshot_indexes.sql' ❯ src/heartbeat-context-snapshot-index-migration.test.ts:67:28 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'open', path: '/home/runner/work/paperclip/paperclip/packages/db/src/migrations/0209_heartbeat_context_snapshot_indexes.sql' }
[@paperclipai/db] src/decision-queue-migrations.test.ts > decision queue migrations > can be reapplied without changing schema or existing data: packages/db/src/decision-queue-migrations.test.ts#L26
Error: ENOENT: no such file or directory, open '/home/runner/work/paperclip/paperclip/packages/db/src/migrations/0198_decision_queues_and_triage.sql' ❯ reapplyDecisionQueueMigrations src/decision-queue-migrations.test.ts:26:22 ❯ src/decision-queue-migrations.test.ts:69:9 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'open', path: '/home/runner/work/paperclip/paperclip/packages/db/src/migrations/0198_decision_queues_and_triage.sql' }
[@paperclipai/db] src/company-secret-proposals-migration.test.ts > company secret proposals migration > can be reapplied after its migration journal entry is removed: packages/db/src/company-secret-proposals-migration.test.ts#L14
Error: ENOENT: no such file or directory, open '/home/runner/work/paperclip/paperclip/packages/db/src/migrations/0207_moaning_amazoness.sql' ❯ migrationHash src/company-secret-proposals-migration.test.ts:14:19 ❯ src/company-secret-proposals-migration.test.ts:38:77 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'open', path: '/home/runner/work/paperclip/paperclip/packages/db/src/migrations/0207_moaning_amazoness.sql' }
[@paperclipai/db] src/client.test.ts > applyPendingMigrations > preserves legacy runs while adding native persistence and replay-safe status versioning: packages/db/src/client.test.ts#L26
Error: ENOENT: no such file or directory, open '/home/runner/work/paperclip/paperclip/packages/db/src/migrations/0227_modern_pandemic.sql' ❯ migrationHash src/client.test.ts:26:19 ❯ src/client.test.ts:1415:37 ⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯ Serialized Error: { errno: -2, code: 'ENOENT', syscall: 'open', path: '/home/runner/work/paperclip/paperclip/packages/db/src/migrations/0227_modern_pandemic.sql' }
Verify serialized server suites (2/5)
Process completed with exit code 1.
[@paperclipai/server] src/__tests__/invite-url-public-base-url.test.ts > invite URL: authPublicBaseUrl precedence > strips trailing slash from authPublicBaseUrl before joining with invite path: server/src/routes/access.ts#L2658
Error: [vitest] No "instanceSettingsService" export is defined on the "../services/index.js" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: vi.mock(import("../services/index.js"), async (importOriginal) => { const actual = await importOriginal() return { ...actual, // your mocked methods } }) ❯ accessRoutes src/routes/access.ts:2658:28 ❯ createApp src/__tests__/invite-url-public-base-url.test.ts:101:5 ❯ src/__tests__/invite-url-public-base-url.test.ts:159:17
[@paperclipai/server] src/__tests__/invite-url-public-base-url.test.ts > invite URL: authPublicBaseUrl precedence > falls back to request-derived host when authPublicBaseUrl is not configured: server/src/routes/access.ts#L2658
Error: [vitest] No "instanceSettingsService" export is defined on the "../services/index.js" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: vi.mock(import("../services/index.js"), async (importOriginal) => { const actual = await importOriginal() return { ...actual, // your mocked methods } }) ❯ accessRoutes src/routes/access.ts:2658:28 ❯ createApp src/__tests__/invite-url-public-base-url.test.ts:101:5 ❯ src/__tests__/invite-url-public-base-url.test.ts:144:17
[@paperclipai/server] src/__tests__/invite-url-public-base-url.test.ts > invite URL: authPublicBaseUrl precedence > uses authPublicBaseUrl for inviteUrl when configured, ignoring request host: server/src/routes/access.ts#L2658
Error: [vitest] No "instanceSettingsService" export is defined on the "../services/index.js" mock. Did you forget to return it from "vi.mock"? If you need to partially mock a module, you can use "importOriginal" helper inside: vi.mock(import("../services/index.js"), async (importOriginal) => { const actual = await importOriginal() return { ...actual, // your mocked methods } }) ❯ accessRoutes src/routes/access.ts:2658:28 ❯ createApp src/__tests__/invite-url-public-base-url.test.ts:101:5 ❯ src/__tests__/invite-url-public-base-url.test.ts:126:17
Verify serialized server suites (3/5)
Process completed with exit code 1.
[@paperclipai/server] src/__tests__/costs-service.test.ts > cost routes > rejects agent budget updates from another same-company agent without changing the budget policy: server/src/__tests__/costs-service.test.ts#L343
Error: Test timed out in 15000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ src/__tests__/costs-service.test.ts:343:3
Verify serialized server suites (1/5)
Process completed with exit code 1.
[@paperclipai/server] src/__tests__/heartbeat-process-recovery.test.ts > heartbeat orphaned process recovery > soft-drains: a second heartbeat service instance also suppresses new-run dispatch once shutdown begins: server/src/services/heartbeat.ts#L10997
TypeError: object is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ Object.drainRunningRunsForShutdown src/services/heartbeat.ts:10997:41 ❯ src/__tests__/heartbeat-process-recovery.test.ts:2070:28
[@paperclipai/server] src/__tests__/heartbeat-process-recovery.test.ts > heartbeat orphaned process recovery > soft-drains: a sub-interval drain timeout never oversleeps past the deadline: server/src/services/heartbeat.ts#L10997
TypeError: object is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ Object.drainRunningRunsForShutdown src/services/heartbeat.ts:10997:41 ❯ src/__tests__/heartbeat-process-recovery.test.ts:2025:21
[@paperclipai/server] src/__tests__/heartbeat-process-recovery.test.ts > heartbeat orphaned process recovery > soft-drains: the wait is bounded by the drain timeout: server/src/services/heartbeat.ts#L10997
TypeError: object is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ Object.drainRunningRunsForShutdown src/services/heartbeat.ts:10997:41 ❯ src/__tests__/heartbeat-process-recovery.test.ts:1987:21
[@paperclipai/server] src/__tests__/heartbeat-process-recovery.test.ts > heartbeat orphaned process recovery > soft-drains: a run still running at the drain deadline is interrupted and retried: server/src/services/heartbeat.ts#L10997
TypeError: object is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ Object.drainRunningRunsForShutdown src/services/heartbeat.ts:10997:41 ❯ src/__tests__/heartbeat-process-recovery.test.ts:1951:36
[@paperclipai/server] src/__tests__/heartbeat-process-recovery.test.ts > heartbeat orphaned process recovery > soft-drains: new-run dispatch is quiesced before the drain wait begins: server/src/services/heartbeat.ts#L10997
TypeError: object is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ Object.drainRunningRunsForShutdown src/services/heartbeat.ts:10997:41 ❯ src/__tests__/heartbeat-process-recovery.test.ts:1932:21
[@paperclipai/server] src/__tests__/heartbeat-process-recovery.test.ts > heartbeat orphaned process recovery > soft-drains: a run that finishes within the drain window is not interrupted: server/src/services/heartbeat.ts#L10997
TypeError: object is not iterable (cannot read property Symbol(Symbol.iterator)) ❯ Object.drainRunningRunsForShutdown src/services/heartbeat.ts:10997:41 ❯ src/__tests__/heartbeat-process-recovery.test.ts:1888:36
[@paperclipai/ui] src/components/OnboardingWizard.step.test.tsx > OnboardingWizard — which step it lands on > opens on the agent step when the goals lookup fails outright: ui/src/components/OnboardingWizard.step.test.tsx#L261
AssertionError: expected 'other' to be 'agent' // Object.is equality Expected: "agent" Received: "other" ❯ src/components/OnboardingWizard.step.test.tsx:261:27
[@paperclipai/ui] src/components/OnboardingWizard.step.test.tsx > OnboardingWizard — which step it lands on > opens on the agent step without waiting for the goals lookup: ui/src/components/OnboardingWizard.step.test.tsx#L252
AssertionError: expected 'other' to be 'agent' // Object.is equality Expected: "agent" Received: "other" ❯ src/components/OnboardingWizard.step.test.tsx:252:27
[@paperclipai/ui] src/components/OnboardingWizard.step.test.tsx > OnboardingWizard — which step it lands on > opens a company that already has its mission on the agent step: ui/src/components/OnboardingWizard.step.test.tsx#L233
AssertionError: expected 'other' to be 'agent' // Object.is equality Expected: "agent" Received: "other" ❯ src/components/OnboardingWizard.step.test.tsx:233:27
[@paperclipai/ui] src/pages/IssueDetail.test.tsx > IssueDetail > shows the properties sidebar immediately on a non-first task: ui/src/pages/IssueDetail.test.tsx#L2301
AssertionError: expected "vi.fn()" to not be called at all, but actually been called 1 times Received: 1st vi.fn() call: Array [ <IssueProperties checkingMonitorNow={false} childIssues={Array []} documentDeepLink={null} hasActiveRun={false} issue={ Object { "ancestors": Array [], "assigneeAdapterOverrides": null, "assigneeAgentId": null, "assigneeUserId": null, "billingCode": null, "cancelledAt": null, "checkoutRunId": null, "companyId": "company-1", "completedAt": null, "createdAt": 2026-04-21T00:00:00.000Z, "createdByAgentId": null, "createdByUserId": null, "currentExecutionWorkspace": null, "description": "Loads after the initial pending query.", "documentSummaries": Array [], "executionAgentNameKey": null, "executionLockedAt": null, "executionPolicy": null, "executionRunId": null, "executionState": null, "executionWorkspaceId": null, "executionWorkspacePreference": null, "executionWorkspaceSettings": null, "goalId": "goal-1", "hiddenAt": null, "id": "issue-1", "identifier": "PAP-1", "issueNumber": 1, "labelIds": Array [], "labels": Array [], "originFingerprint": "default", "originId": null, "originKind": "manual", "originRunId": null, "parentId": null, "priority": "medium", "projectId": null, "projectWorkspaceId": null, "requestDepth": 0, "startedAt": null, "status": "todo", "title": "Issue detail smoke", "updatedAt": 2026-04-21T00:00:00.000Z, } } onAddSubIssue={[Function anonymous]} onCheckMonitorNow={[Function onCheckMonitorNow]} onUpdate={[Function anonymous]} />, ] Number of calls: 1 ❯ src/pages/IssueDetail.test.tsx:2301:31
[@paperclipai/ui] src/pages/IssueDetail.test.tsx > IssueDetail > shows the plan decomposition panel when the experimental flag is enabled: ui/src/pages/IssueDetail.test.tsx#L2209
AssertionError: expected "vi.fn()" to not be called at all, but actually been called 1 times Received: 1st vi.fn() call: Array [ <IssueProperties checkingMonitorNow={false} childIssues={Array []} documentDeepLink={null} hasActiveRun={false} issue={ Object { "ancestors": Array [], "assigneeAdapterOverrides": null, "assigneeAgentId": null, "assigneeUserId": null, "billingCode": null, "cancelledAt": null, "checkoutRunId": null, "companyId": "company-1", "completedAt": null, "createdAt": 2026-04-21T00:00:00.000Z, "createdByAgentId": null, "createdByUserId": null, "currentExecutionWorkspace": null, "description": "Loads after the initial pending query.", "documentSummaries": Array [], "executionAgentNameKey": null, "executionLockedAt": null, "executionPolicy": null, "executionRunId": null, "executionState": null, "executionWorkspaceId": null, "executionWorkspacePreference": null, "executionWorkspaceSettings": null, "goalId": "goal-1", "hiddenAt": null, "id": "issue-1", "identifier": "PAP-1", "issueNumber": 1, "labelIds": Array [], "labels": Array [], "originFingerprint": "default", "originId": null, "originKind": "manual", "originRunId": null, "parentId": null, "priority": "medium", "projectId": null, "projectWorkspaceId": null, "requestDepth": 0, "startedAt": null, "status": "todo", "title": "Issue detail smoke", "updatedAt": 2026-04-21T00:00:00.000Z, } } onAddSubIssue={[Function anonymous]} onCheckMonitorNow={[Function onCheckMonitorNow]} onUpdate={[Function anonymous]} />, ] Number of calls: 1 ❯ src/pages/IssueDetail.test.tsx:2209:31
[@paperclipai/ui] src/pages/CloudUpstream.test.tsx > CloudUpstream > keeps retry only for failed or cancelled runs: ui/src/pages/CloudUpstream.test.tsx#L319
AssertionError: expected '' to contain 'Retry' - Expected + Received - Retry ❯ src/pages/CloudUpstream.test.tsx:319:35
[@paperclipai/ui] src/pages/CloudUpstream.test.tsx > CloudUpstream > does not retry the OAuth callback finish mutation after an error: ui/src/pages/CloudUpstream.test.tsx#L293
AssertionError: expected "vi.fn()" to be called 1 times, but got 0 times ❯ src/pages/CloudUpstream.test.tsx:293:51
[@paperclipai/ui] src/pages/CloudUpstream.test.tsx > CloudUpstream > sends a company-prefixed redirectUri when starting Connect: ui/src/pages/CloudUpstream.test.tsx#L181
AssertionError: expected null to be truthy - Expected: true + Received: null ❯ src/pages/CloudUpstream.test.tsx:181:19
[@paperclipai/ui] src/pages/CloudUpstream.test.tsx > CloudUpstream > binds the succeeded run activation checklist to imported category counts: ui/src/pages/CloudUpstream.test.tsx#L133
AssertionError: expected '' to contain 'Re-run' - Expected + Received - Re-run ❯ src/pages/CloudUpstream.test.tsx:133:35
[@paperclipai/ui] src/components/AgentConfigForm.render.test.tsx > AgentConfigForm environment selector > renders non-local adapter config fields in the Adapter card: ui/src/components/AgentConfigForm.render.test.tsx#L855
AssertionError: expected null to be truthy - Expected: true + Received: null ❯ src/components/AgentConfigForm.render.test.tsx:855:92
[@paperclipai/ui] src/components/AgentConfigForm.render.test.tsx > AgentConfigForm environment selector > labels the platform-managed instance default by name, without the driver key: ui/src/components/AgentConfigForm.render.test.tsx#L836
AssertionError: the given combination of arguments (undefined and string) is invalid for this assertion. You can use an array, a map, an object, a set, a string, or a weakset instead of a string ❯ src/components/AgentConfigForm.render.test.tsx:836:35
[@paperclipai/ui] src/components/AgentConfigForm.render.test.tsx > AgentConfigForm environment selector > keeps an existing non-runnable override visible so it can be cleared: ui/src/components/AgentConfigForm.render.test.tsx#L816
AssertionError: expected '' to contain 'Environment override' - Expected + Received - Environment override ❯ src/components/AgentConfigForm.render.test.tsx:816:18
[@paperclipai/ui] src/components/AgentConfigForm.render.test.tsx > AgentConfigForm environment selector > shows the environment override for Kimi local agents: ui/src/components/AgentConfigForm.render.test.tsx#L794
AssertionError: expected '' to contain 'Environment override' - Expected + Received - Environment override ❯ src/components/AgentConfigForm.render.test.tsx:794:18
[@paperclipai/ui] src/components/AgentConfigForm.render.test.tsx > AgentConfigForm environment selector > shows the environment override for Grok local agents: ui/src/components/AgentConfigForm.render.test.tsx#L772
AssertionError: expected '' to contain 'Environment override' - Expected + Received - Environment override ❯ src/components/AgentConfigForm.render.test.tsx:772:18
[@paperclipai/ui] src/components/AgentConfigForm.render.test.tsx > AgentConfigForm environment selector > shows concise Environment copy when one runnable non-local environment exists: ui/src/components/AgentConfigForm.render.test.tsx#L745
AssertionError: expected '' to contain 'Environment' - Expected + Received - Environment ❯ src/components/AgentConfigForm.render.test.tsx:745:18
[@paperclipai/ui] src/components/AgentConfigForm.render.test.tsx > AgentConfigForm environment selector > renders secret access as dedicated form content: ui/src/components/AgentConfigForm.render.test.tsx#L725
AssertionError: expected '' to contain 'Secret access' - Expected + Received - Secret access ❯ src/components/AgentConfigForm.render.test.tsx:725:42
[@paperclipai/ui] src/pages/NewAgent.test.tsx > NewAgent Claude subscription login > applies a stored token first and starts a replacement login with the captured version: ui/src/pages/NewAgent.test.tsx#L379
Error: Test timed out in 5000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ src/pages/NewAgent.test.tsx:379:3
[@paperclipai/ui] src/pages/NewAgent.test.tsx > NewAgent Claude subscription login > stores the secret and adds the fixed binding through the create request, with no token in the DOM: ui/src/pages/NewAgent.test.tsx#L338
Error: Test timed out in 5000ms. If this is a long-running test, pass a timeout value as the last argument or configure it globally with "testTimeout". ❯ src/pages/NewAgent.test.tsx:338:3
[@paperclipai/ui] src/pages/NewAgent.test.tsx > NewAgent Claude subscription login > shows Log in for a Claude sandbox before Create agent: ui/src/pages/NewAgent.test.tsx#L329
AssertionError: expected undefined to be truthy - Expected: true + Received: undefined ❯ src/pages/NewAgent.test.tsx:329:25
e2e shard (3/3)
Process completed with exit code 1.
e2e shard (2/3)
Process completed with exit code 1.
e2e
Process completed with exit code 1.
[@paperclipai/server] src/__tests__/environment-runtime.test.ts > environmentRuntimeService > persists the plugin's resolved adapter type and image into the reusable lease scope when the server has no per-run hint: server/src/services/environment-runtime.ts#L1817
TypeError: pluginWorkerManager.getWorker is not a function ❯ Object.acquireRunLease src/services/environment-runtime.ts:1817:31 ❯ Object.acquireRunLease src/services/environment-runtime.ts:3478:21 ❯ src/__tests__/environment-runtime.test.ts:5943:22
[@paperclipai/server] src/__tests__/environment-runtime.test.ts > environmentRuntimeService > does not reuse a plugin-backed sandbox lease scoped to a different concrete adapter type: server/src/services/environment-runtime.ts#L1817
TypeError: pluginWorkerManager.getWorker is not a function ❯ Object.acquireRunLease src/services/environment-runtime.ts:1817:31 ❯ Object.acquireRunLease src/services/environment-runtime.ts:3478:21 ❯ src/__tests__/environment-runtime.test.ts:5810:22
[@paperclipai/server] src/__tests__/environment-runtime.test.ts > environmentRuntimeService > does not reuse a plugin-backed sandbox lease when both the stored scope and the run's adapter type are null: server/src/services/environment-runtime.ts#L1817
TypeError: pluginWorkerManager.getWorker is not a function ❯ Object.acquireRunLease src/services/environment-runtime.ts:1817:31 ❯ Object.acquireRunLease src/services/environment-runtime.ts:3478:21 ❯ src/__tests__/environment-runtime.test.ts:5762:22
[@paperclipai/server] src/__tests__/environment-runtime.test.ts > environmentRuntimeService > does not reuse a plugin-backed sandbox lease scoped to a concrete adapter type when the run requests none: server/src/services/environment-runtime.ts#L1817
TypeError: pluginWorkerManager.getWorker is not a function ❯ Object.acquireRunLease src/services/environment-runtime.ts:1817:31 ❯ Object.acquireRunLease src/services/environment-runtime.ts:3478:21 ❯ src/__tests__/environment-runtime.test.ts:5714:22
[@paperclipai/server] src/__tests__/environment-runtime.test.ts > environmentRuntimeService > does not reuse a plugin-backed sandbox lease whose stored scope has a null adapter type when the run requests one: server/src/services/environment-runtime.ts#L1817
TypeError: pluginWorkerManager.getWorker is not a function ❯ Object.acquireRunLease src/services/environment-runtime.ts:1817:31 ❯ Object.acquireRunLease src/services/environment-runtime.ts:3478:21 ❯ src/__tests__/environment-runtime.test.ts:5668:22
[@paperclipai/server] src/__tests__/environment-runtime.test.ts > environmentRuntimeService > resumes a legacy secret-blind reusable sandbox lease via the runtime fallback when the environment has no secret refs: server/src/services/environment-runtime.ts#L1817
TypeError: pluginWorkerManager.getWorker is not a function ❯ Object.acquireRunLease src/services/environment-runtime.ts:1817:31 ❯ Object.acquireRunLease src/services/environment-runtime.ts:3478:21 ❯ src/__tests__/environment-runtime.test.ts:5549:22
[@paperclipai/server] src/__tests__/environment-runtime.test.ts > environmentRuntimeService > does not resume a legacy secret-blind reusable sandbox lease for a secret-bearing environment even on the same active run: server/src/services/environment-runtime.ts#L1817
TypeError: pluginWorkerManager.getWorker is not a function ❯ Object.acquireRunLease src/services/environment-runtime.ts:1817:31 ❯ Object.acquireRunLease src/services/environment-runtime.ts:3478:21 ❯ src/__tests__/environment-runtime.test.ts:5468:22
[@paperclipai/server] src/__tests__/environment-runtime.test.ts > environmentRuntimeService > does not resume released reusable plugin sandbox leases after an in-place secret value change under the same version: server/src/services/environment-runtime.ts#L1817
TypeError: pluginWorkerManager.getWorker is not a function ❯ Object.acquireRunLease src/services/environment-runtime.ts:1817:31 ❯ Object.acquireRunLease src/services/environment-runtime.ts:3478:21 ❯ src/__tests__/environment-runtime.test.ts:5203:19
[@paperclipai/server] src/__tests__/environment-runtime.test.ts > environmentRuntimeService > fails closed and does not resume when a worker restart drops the resume method after the capability snapshot: server/src/__tests__/environment-runtime.test.ts#L4530
AssertionError: expected "vi.fn()" to be called with arguments: [ …(4) ] Received: 1st vi.fn() call: [ "1f3a19ec-da05-4558-b0e6-1975c637a629", - "environmentDestroyLease", - ObjectContaining { + "environmentAcquireLease", + { + "adapterType": undefined, + "agentId": "7afe39bf-1dc0-443c-a858-7cd9cf19f3bf", + "companyId": "d595fa05-82e2-4aef-b104-00d72755669a", + "config": { + "image": "fake:test", + "reuseLease": true, + "timeoutMs": 1234, + }, "driverKey": "fake-plugin", - "providerLeaseId": "stale-plugin-lease", + "environmentId": "cc740492-330c-4978-bc1c-32c534a6d83a", + "executionWorkspaceId": "131f0b62-623f-4816-b003-7a28ec971739", + "issueId": null, + "runId": "57136601-bc1c-4ca5-807c-4862a7046b2d", + "workspaceMode": "shared_workspace", }, 31234, ] Number of calls: 1 ❯ src/__tests__/environment-runtime.test.ts:4530:32
[@paperclipai/server] src/__tests__/environment-runtime.test.ts > environmentRuntimeService > falls back to acquire when plugin-backed sandbox lease resume throws: server/src/__tests__/environment-runtime.test.ts#L4324
AssertionError: expected 1st "vi.fn()" call to have been called with [ …(4) ] - Expected + Received [ "7c071bf2-c4cb-49b1-bd93-07fb4a02bcf9", - "environmentResumeLease", + "environmentAcquireLease", { + "adapterType": undefined, + "agentId": "f70ffa1c-9790-426a-b751-b170100421ef", + "companyId": "32e54ba5-4efe-4cd6-952d-bbe1d7e66c9e", + "config": { + "image": "fake:test", + "reuseLease": true, + "timeoutMs": 1234, + }, "driverKey": "fake-plugin", - "providerLeaseId": "stale-plugin-lease", + "environmentId": "7310c2a9-1d73-47c3-b1b2-7719f9f17c5e", + "executionWorkspaceId": "f8e986ff-8d02-4f31-b8e5-1d20e1004e43", + "issueId": null, + "runId": "75f3000e-8da4-4dec-aedb-0901cd70bc1a", + "workspaceMode": "shared_workspace", }, 31234, ] ❯ src/__tests__/environment-runtime.test.ts:4324:32
General tests (server (1/5))
Process completed with exit code 1.
General tests (server (5/5))
Canceling since a higher priority waiting request for pr-334 exists
General tests (server (5/5))
The operation was canceled.
verify
Process completed with exit code 1.
PR
Canceling since a higher priority waiting request for pr-334 exists

Artifacts

Produced during runtime
Name Size Digest
playwright-report-0
354 KB
sha256:aad4e8d6c2ce95e863cb8f8d73ea5ca72d24054828a3b260e2d779b56abe4409
playwright-report-1
458 KB
sha256:8d07898828b47f5dce7261d05b97287cd8ab5f9df5daca63f14817fe0f80f7a5
playwright-report-2
533 KB
sha256:357b65b27e649cdad5577020c97a6cf26f1b8456cd7f492690ddee97c09ea671
pr-lockfile Expired
159 KB
sha256:67a1dc36c861bb1539712cbf111945861314c03343c1e002df15bd679605564d