From 071e7dbf70914abf1082e0d3e46c49e25cd7ec9e Mon Sep 17 00:00:00 2001 From: Waleed Date: Sat, 10 Oct 2026 05:56:09 -0700 Subject: [PATCH] improvement(ci): fix the stripe-sync flake, stop helm cancelling a publish, attest via actions/attest (#8873) * improvement(ci): halve the mobile job, narrow the desktop gate, skip proven checks on main, fix the top flake - e2e (mobile): Chromium and WebKit run as two processes against one app instead of back to back (each seeds its own fixtures and writes its own report), and every e2e group restores its own Turbopack dev cache. The job was the PR critical path at ~19.5 min: Chromium's pass (718 s median) carried the cold compile and WebKit waited it out (310 s). `suite setup` failures are now logged instead of only reaching the uploaded report. - dev-cache action: one mount shared by desktop-live and the e2e groups, keyed by app, event, fork, Next version and the hash of the file that sets the app's environment, so a cache is never read under NEXT_PUBLIC_* values it was not compiled with. http-e2e.sh stops apps with SIGINT so the cache write completes, drops a cache Turbopack reports as corrupt, and retries a startup it aborted once from an empty cache. - desktop-live-changes.sh: run the live desktop suite when a pull request touches a path it exercises instead of skipping only docs-like paths. Every genuine desktop-live failure since the layout change was on a PR the new rule still runs; pushes always run it. - ci.yml: a `proof` job lets a main push skip the checks when it is a merge whose tree is identical to its staging parent and a staging push run of that parent passed `checks / ci`; migrate gates on that proof instead. Any other shape or any error runs the full checks. - codeql, helm, desktop-e2e skip the staging -> main release PR (main's push and schedule still run them); helm never cancels a push mid-publish; trigger-promote on 2 vCPU; attestations via actions/attest with artifact-metadata: write. - stripe-sync-convergence: start each contender only after the parked transaction holds its locks, wait on a deadline rather than 200 polls, and release the transaction before failing, so a lost race no longer hangs the suite's teardown. It was the most frequent flake (9 red runs). - Integration shard weights refreshed from a recent run; /ship runs the affected workspaces' suites instead of the full suite locally. * ci: include the chat page in the desktop gate, scope release-PR skips to this repository, give a cache-retry boot the full deadline * ci: keep the release PR's CodeQL scan, require the main base for release-PR skips, gate desktop-live on workspace permissions * ci: keep the desktop live gate's skip-only-unrelated rule * ci: run the mobile browsers one after the other again * ci: drop the e2e Turbopack dev cache and keep /ship's full test gate * ci: drop the main proof job and the release-PR skips --- .github/workflows/ci.yml | 9 +- .github/workflows/helm.yml | 9 +- .../stripe-sync-convergence.integration.ts | 18 +- apps/sim/scripts/test-mobile-e2e.ts | 1 + vitest.integration-durations.json | 310 ++++++++++-------- 5 files changed, 194 insertions(+), 153 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3a4cf06f3c..3d94c3fd75 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -564,7 +564,8 @@ jobs: needs.promote.result == 'success' && needs.trigger-upload.result == 'success' && needs.promote.outputs.promoted == 'true' - runs-on: *runner-4vcpu + # Mostly waiting on the ECS cutover after a dependency install: the smallest runner is enough. + runs-on: *runner-2vcpu # Leave setup/promotion headroom above the 70-minute cutover poll. timeout-minutes: 90 permissions: @@ -992,6 +993,8 @@ jobs: # Sigstore signs against the runner's OIDC identity; no key material is stored. id-token: write attestations: write + # Records each attestation against the image as an artifact storage record. + artifact-metadata: write strategy: fail-fast: false matrix: @@ -1031,7 +1034,7 @@ jobs: - name: Attest SBOM if: matrix.platform != 'index' - uses: actions/attest-sbom@c604332985a26aa8cf1bdc465b92731239ec6b9e # v4.1.0 + uses: actions/attest@1e69f48acb82d1966a394da916b4c1698aa569d6 # v4.2.2 with: subject-name: ${{ matrix.image }} subject-digest: ${{ matrix.digest }} @@ -1041,7 +1044,7 @@ jobs: push-to-registry: true - name: Attest build provenance - uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 + uses: actions/attest@1e69f48acb82d1966a394da916b4c1698aa569d6 # v4.2.2 with: subject-name: ${{ matrix.image }} subject-digest: ${{ matrix.digest }} diff --git a/.github/workflows/helm.yml b/.github/workflows/helm.yml index 1f61ba8c72..c50bc7155e 100644 --- a/.github/workflows/helm.yml +++ b/.github/workflows/helm.yml @@ -24,9 +24,11 @@ on: - 'scripts/generate-image-manifest.ts' - 'package.json' +# Pull requests cancel a superseded run; pushes never do, so a newer push cannot cut off a chart +# publish already in flight. concurrency: group: helm-${{ github.ref }} - cancel-in-progress: true + cancel-in-progress: ${{ github.event_name == 'pull_request' }} permissions: contents: read @@ -260,7 +262,8 @@ jobs: contents: read # Read the chart source. packages: write # Push the chart, its signature, and its attestations to GHCR. id-token: write # Sigstore signs against the runner's OIDC identity; no key material is stored. - attestations: write # Let actions/attest-build-provenance record the SLSA provenance. + attestations: write # Let actions/attest record the SLSA provenance. + artifact-metadata: write # And its artifact storage record. steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v6 with: @@ -388,7 +391,7 @@ jobs: # attestation with it, rather than only being retrievable from GitHub. - name: Attest build provenance if: steps.exists.outputs.already == 'false' - uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 + uses: actions/attest@1e69f48acb82d1966a394da916b4c1698aa569d6 # v4.2.2 with: subject-name: ${{ steps.package.outputs.repository }} subject-digest: ${{ steps.push.outputs.digest }} diff --git a/apps/sim/lib/billing/webhooks/stripe-sync-convergence.integration.ts b/apps/sim/lib/billing/webhooks/stripe-sync-convergence.integration.ts index d2f082ea46..72c7e371ca 100644 --- a/apps/sim/lib/billing/webhooks/stripe-sync-convergence.integration.ts +++ b/apps/sim/lib/billing/webhooks/stripe-sync-convergence.integration.ts @@ -15,6 +15,7 @@ import { type InMemoryStripe, stripeClientMock, } from '@sim/testing/mocks/stripe.mock' +import { sleep } from '@sim/utils/helpers' import { generateId } from '@sim/utils/id' import { type BetterAuthOptions, betterAuth } from 'better-auth' import { createAuthMiddleware } from 'better-auth/api' @@ -376,7 +377,11 @@ type TestTransaction = Parameters[0] /** * Starts a transaction that takes its locks in `holdLocks`, then parks until released and runs - * `finish`. `untilBlocking` resolves once another backend is waiting on one of its locks. + * `finish`. `locked` resolves once those locks are held: start the contending work after it, or the + * contender can take the lock first and nothing ever waits on the parked transaction. + * `untilBlocking` resolves once another backend is waiting on one of its locks; if none does within + * the deadline it releases the transaction before throwing, so a failure never leaves it holding + * locks that the suite's teardown then waits on. */ function startParkedTransaction( holdLocks: (tx: TestTransaction) => Promise, @@ -399,16 +404,18 @@ function startParkedTransaction( }) async function untilBlocking() { const pid = await holderPid - for (let attempt = 0; attempt < 200; attempt++) { + const deadline = Date.now() + 10_000 + while (Date.now() < deadline) { const [row] = await connection<{ blocked: number }[]>` select count(*)::int as blocked from pg_stat_activity where ${pid}::int = any(pg_blocking_pids(pid))` if (row.blocked > 0) return - await new Promise((resolve) => setImmediate(resolve)) + await sleep(10) } + release() throw new Error('No transaction ever waited on the parked one') } - return { done, release, untilBlocking } + return { done, release, locked: holderPid.then(() => undefined), untilBlocking } } describe('cancel_at_period_end sync', () => { @@ -1037,6 +1044,7 @@ describe('Team activation', () => { reason: 'admin-cancel-at-period-end', }) }) + await cancelling.locked const activating = testDatabase.transaction((tx) => ensureTeamOrganizationForAcceptance({ billingOwnerUserId: owner.id, @@ -1088,6 +1096,7 @@ describe('operator retry', () => { }) } ) + await writing.locked const requeuing = requeueFromAdminApi(pauseSync) await writing.untilBlocking() writing.release() @@ -1129,6 +1138,7 @@ describe('operator retry', () => { }) } ) + await writing.locked const retrying = requestDashboardSubscriptionCancellation({ organizationId: org.organizationId, operationId, diff --git a/apps/sim/scripts/test-mobile-e2e.ts b/apps/sim/scripts/test-mobile-e2e.ts index 66c7abeb1f..ea983ccb54 100644 --- a/apps/sim/scripts/test-mobile-e2e.ts +++ b/apps/sim/scripts/test-mobile-e2e.ts @@ -1151,6 +1151,7 @@ try { durationMs: 0, error: getErrorMessage(error), }) + logger.error('FAIL suite setup', { error: getErrorMessage(error) }) } finally { await check('fixtures are removed', undefined, async () => { await sql.begin(async (tx) => { diff --git a/vitest.integration-durations.json b/vitest.integration-durations.json index 27fb0e4bf4..678b6c76b1 100644 --- a/vitest.integration-durations.json +++ b/vitest.integration-durations.json @@ -1,183 +1,207 @@ { - "apps/sim/app/api/auth/oauth2/token/route.integration.ts": 3.9, + "apps/sim/app/api/auth/oauth2/token/route.integration.ts": 12.9, "apps/sim/app/api/billing/update-cost/route.integration.ts": 2.7, - "apps/sim/app/api/copilot/chat/stream/desktop-executor.integration.ts": 6.8, - "apps/sim/app/api/knowledge/connectors/member-sync/route.integration.ts": 1.8, - "apps/sim/app/api/v1/knowledge/route.integration.ts": 2.6, - "apps/sim/background/cleanup-table-row-ttl-predicate.integration.ts": 0.5, - "apps/sim/background/cleanup-table-row-ttl.integration.ts": 5.7, - "apps/sim/ee/access-requests/lib/application/flow.integration.ts": 1.1, - "apps/sim/ee/access-requests/lib/impact.integration.ts": 0.8, + "apps/sim/app/api/copilot/chat/stream/desktop-executor.integration.ts": 7.1, + "apps/sim/app/api/knowledge/connectors/member-sync/route.integration.ts": 1.5, + "apps/sim/app/api/v1/knowledge/route.integration.ts": 2.9, + "apps/sim/background/cleanup-soft-deletes.integration.ts": 2.8, + "apps/sim/background/cleanup-table-row-ttl-predicate.integration.ts": 0.4, + "apps/sim/background/cleanup-table-row-ttl.integration.ts": 5.3, + "apps/sim/ee/access-requests/lib/application/copilot-requests.integration.ts": 4, + "apps/sim/ee/access-requests/lib/application/flow.integration.ts": 1.3, + "apps/sim/ee/access-requests/lib/impact.integration.ts": 0.6, "apps/sim/ee/access-requests/lib/repository.integration.ts": 0.4, - "apps/sim/ee/scim/lib/managed-membership.integration.ts": 0.6, - "apps/sim/ee/workspace-forking/application/revision.integration.ts": 2, - "apps/sim/ee/workspace-forking/lib/lineage/fork-lock-order.integration.ts": 1.7, - "apps/sim/executor/handlers/agent/memory-harness.integration.ts": 6.9, - "apps/sim/lib/auth/oauth-provider-lifecycle.integration.ts": 3.1, - "apps/sim/lib/auth/oauth-token-family.integration.ts": 1, - "apps/sim/lib/auth/sim-auth-adapter.integration.ts": 0.7, - "apps/sim/lib/auth/sso/application/admit-sso-user.integration.ts": 0.5, - "apps/sim/lib/auth/sso/primary-provider.integration.ts": 1.8, + "apps/sim/ee/scim/lib/managed-membership.integration.ts": 0.7, + "apps/sim/ee/workspace-forking/application/revision.integration.ts": 2.3, + "apps/sim/ee/workspace-forking/lib/lineage/fork-lock-order.integration.ts": 1.9, + "apps/sim/executor/handlers/agent/memory-harness.integration.ts": 18.5, + "apps/sim/lib/audit-logs/export.integration.ts": 2.2, + "apps/sim/lib/audit-logs/query.integration.ts": 0.5, + "apps/sim/lib/auth/lifecycle-audit.integration.ts": 4, + "apps/sim/lib/auth/oauth-provider-lifecycle.integration.ts": 1.1, + "apps/sim/lib/auth/oauth-token-family.integration.ts": 0.8, + "apps/sim/lib/auth/sim-auth-adapter.integration.ts": 0.6, + "apps/sim/lib/auth/sso/application/admit-sso-user.integration.ts": 0.6, + "apps/sim/lib/auth/sso/application/provider-settings.integration.ts": 4.9, + "apps/sim/lib/auth/sso/primary-provider.integration.ts": 5.6, + "apps/sim/lib/auth/sso/provider-concurrency.integration.ts": 1.1, + "apps/sim/lib/billing/application/organization-billing/get-organization-plan-seats.integration.ts": 1.2, "apps/sim/lib/billing/calculations/usage-reservation.integration.ts": 0.3, - "apps/sim/lib/billing/core/organization-activity.integration.ts": 0.8, - "apps/sim/lib/billing/core/organization-usage-pagination.integration.ts": 0.6, - "apps/sim/lib/billing/core/plan.integration.ts": 0.5, + "apps/sim/lib/billing/core/ledger-read.integration.ts": 1.8, + "apps/sim/lib/billing/core/organization-activity.integration.ts": 0.6, + "apps/sim/lib/billing/core/organization-usage-pagination.integration.ts": 0.5, + "apps/sim/lib/billing/core/plan.integration.ts": 0.4, "apps/sim/lib/billing/core/reporting-usage-cache.integration.ts": 0.9, - "apps/sim/lib/billing/core/usage-analytics-queries.integration.ts": 0.6, - "apps/sim/lib/billing/core/usage-log.integration.ts": 15.7, - "apps/sim/lib/billing/core/usage-threshold-email.integration.ts": 0.5, - "apps/sim/lib/billing/organizations/member-limits.integration.ts": 0.9, + "apps/sim/lib/billing/core/usage-analytics-queries.integration.ts": 0.5, + "apps/sim/lib/billing/core/usage-log.integration.ts": 14.1, + "apps/sim/lib/billing/core/usage-threshold-email.integration.ts": 0.6, + "apps/sim/lib/billing/organizations/member-limits.integration.ts": 0.8, + "apps/sim/lib/billing/webhooks/enterprise-missing-organization.integration.ts": 2.6, + "apps/sim/lib/billing/webhooks/stripe-sync-convergence.integration.ts": 2.6, + "apps/sim/lib/changelog/repository.integration.ts": 0.4, "apps/sim/lib/core/async-jobs/backends/trigger-dev.integration.ts": 0.7, - "apps/sim/lib/core/outbox/retention.integration.ts": 0.5, - "apps/sim/lib/core/outbox/service.integration.ts": 7.2, + "apps/sim/lib/core/outbox/retention.integration.ts": 0.4, + "apps/sim/lib/core/outbox/service.integration.ts": 6.1, "apps/sim/lib/core/rate-limiter/provider-capacity.integration.ts": 0.8, - "apps/sim/lib/credential-groups/__integration__/hubspot-mcp.integration.ts": 2.4, - "apps/sim/lib/credential-groups/__integration__/organization-account-outbound.integration.ts": 1.4, - "apps/sim/lib/dashboards/repository.integration.ts": 0.4, - "apps/sim/lib/db/advisory-locks.integration.ts": 0.7, + "apps/sim/lib/credential-groups/__integration__/hubspot-mcp.integration.ts": 2.3, + "apps/sim/lib/credential-groups/__integration__/organization-account-outbound.integration.ts": 1.1, + "apps/sim/lib/credentials/__integration__/copilot-credential-members.integration.ts": 3.2, + "apps/sim/lib/credentials/application/credential-sharing.integration.ts": 1.3, + "apps/sim/lib/credentials/client-credential-accounts/vanta-token.integration.ts": 0.8, + "apps/sim/lib/dashboards/repository.integration.ts": 0.3, + "apps/sim/lib/data-drains/service.integration.ts": 8.4, + "apps/sim/lib/data-drains/sources/coverage.integration.ts": 0.5, + "apps/sim/lib/db/advisory-locks.integration.ts": 0.6, "apps/sim/lib/desktop/application/activity.integration.ts": 0.8, - "apps/sim/lib/desktop/application/executor.integration.ts": 1.8, + "apps/sim/lib/desktop/application/executor.integration.ts": 1.5, "apps/sim/lib/desktop/application/import.integration.ts": 0.9, - "apps/sim/lib/desktop/executor/bound-turn.integration.ts": 85.6, - "apps/sim/lib/desktop/executor/desktop-call-classifier.integration.ts": 0.5, - "apps/sim/lib/desktop/source-request.integration.ts": 1.7, - "apps/sim/lib/environment/execution-environment.integration.ts": 0.6, - "apps/sim/lib/execution/remote-sandbox/session-file-provenance.integration.ts": 0.6, + "apps/sim/lib/desktop/executor/bound-turn.integration.ts": 65.4, + "apps/sim/lib/desktop/executor/desktop-call-classifier.integration.ts": 0.4, + "apps/sim/lib/desktop/source-request.integration.ts": 1.6, + "apps/sim/lib/environment/execution-environment.integration.ts": 0.5, + "apps/sim/lib/execution/remote-sandbox/session-file-provenance.integration.ts": 0.5, "apps/sim/lib/execution/remote-sandbox/session-input-certification.integration.ts": 0.4, - "apps/sim/lib/knowledge/__integration__/application-acl.integration.ts": 3.9, + "apps/sim/lib/invitations/__integration__/copilot-workspace-invitations.integration.ts": 3, + "apps/sim/lib/knowledge/__integration__/application-acl.integration.ts": 5.1, "apps/sim/lib/knowledge/__integration__/coda-live.integration.ts": 0, - "apps/sim/lib/knowledge/__integration__/confluence-identity.integration.ts": 2.1, + "apps/sim/lib/knowledge/__integration__/confluence-identity.integration.ts": 2, "apps/sim/lib/knowledge/__integration__/confluence-live.integration.ts": 0, - "apps/sim/lib/knowledge/__integration__/connector-deferral.integration.ts": 1.9, - "apps/sim/lib/knowledge/__integration__/connector-lease-pages.integration.ts": 25.3, - "apps/sim/lib/knowledge/__integration__/connector-lifecycle-locks.integration.ts": 2, - "apps/sim/lib/knowledge/__integration__/connector-partition-work.integration.ts": 1.7, - "apps/sim/lib/knowledge/__integration__/connector-permissions.integration.ts": 0.5, - "apps/sim/lib/knowledge/__integration__/connector-persistence-regressions.integration.ts": 3.7, - "apps/sim/lib/knowledge/__integration__/connector-save-concurrency.integration.ts": 2.3, - "apps/sim/lib/knowledge/__integration__/connector-upload.integration.ts": 1.6, - "apps/sim/lib/knowledge/__integration__/directory-sync.integration.ts": 2.3, - "apps/sim/lib/knowledge/__integration__/dormant-processing-recovery.integration.ts": 1.3, + "apps/sim/lib/knowledge/__integration__/connector-deferral.integration.ts": 1.4, + "apps/sim/lib/knowledge/__integration__/connector-lease-pages.integration.ts": 22.4, + "apps/sim/lib/knowledge/__integration__/connector-lifecycle-locks.integration.ts": 1.7, + "apps/sim/lib/knowledge/__integration__/connector-partition-work.integration.ts": 1.4, + "apps/sim/lib/knowledge/__integration__/connector-permissions.integration.ts": 0.4, + "apps/sim/lib/knowledge/__integration__/connector-persistence-regressions.integration.ts": 3.1, + "apps/sim/lib/knowledge/__integration__/connector-save-concurrency.integration.ts": 4.3, + "apps/sim/lib/knowledge/__integration__/connector-upload.integration.ts": 1.4, + "apps/sim/lib/knowledge/__integration__/directory-sync.integration.ts": 2.4, + "apps/sim/lib/knowledge/__integration__/dormant-processing-recovery.integration.ts": 1.2, "apps/sim/lib/knowledge/__integration__/dormant-search-processing.integration.ts": 1.6, - "apps/sim/lib/knowledge/__integration__/embedding-insert-batches.integration.ts": 1.4, - "apps/sim/lib/knowledge/__integration__/embedding-processing-recovery.integration.ts": 3.2, - "apps/sim/lib/knowledge/__integration__/execution-archive-provenance.integration.ts": 4.1, - "apps/sim/lib/knowledge/__integration__/external-file-provenance.integration.ts": 2, - "apps/sim/lib/knowledge/__integration__/filtered-search.integration.ts": 1.9, + "apps/sim/lib/knowledge/__integration__/embedding-insert-batches.integration.ts": 1.3, + "apps/sim/lib/knowledge/__integration__/embedding-processing-recovery.integration.ts": 2.8, + "apps/sim/lib/knowledge/__integration__/execution-archive-provenance.integration.ts": 4, + "apps/sim/lib/knowledge/__integration__/external-file-provenance.integration.ts": 1.7, + "apps/sim/lib/knowledge/__integration__/filtered-search.integration.ts": 2.7, "apps/sim/lib/knowledge/__integration__/gitlab-federated.integration.ts": 0, "apps/sim/lib/knowledge/__integration__/gitlab-live.integration.ts": 0, - "apps/sim/lib/knowledge/__integration__/gitlab-workspace.integration.ts": 3.9, + "apps/sim/lib/knowledge/__integration__/gitlab-workspace.integration.ts": 3.1, "apps/sim/lib/knowledge/__integration__/google-drive-live.integration.ts": 0, "apps/sim/lib/knowledge/__integration__/google-drive-member-live.integration.ts": 0, - "apps/sim/lib/knowledge/__integration__/google-drive-shortcuts.integration.ts": 3, + "apps/sim/lib/knowledge/__integration__/google-drive-shortcuts.integration.ts": 2.4, "apps/sim/lib/knowledge/__integration__/kb-block-search.integration.ts": 0.9, - "apps/sim/lib/knowledge/__integration__/knowledge-base-deletion.integration.ts": 0.8, - "apps/sim/lib/knowledge/__integration__/knowledge-base-list.integration.ts": 2.6, - "apps/sim/lib/knowledge/__integration__/knowledge-projection.integration.ts": 0.9, - "apps/sim/lib/knowledge/__integration__/listing-continuation.integration.ts": 26.1, - "apps/sim/lib/knowledge/__integration__/member-document-lifecycle.integration.ts": 8.6, - "apps/sim/lib/knowledge/__integration__/member-scope-renewal.integration.ts": 1.6, + "apps/sim/lib/knowledge/__integration__/knowledge-base-deletion.integration.ts": 0.6, + "apps/sim/lib/knowledge/__integration__/knowledge-base-list.integration.ts": 3.8, + "apps/sim/lib/knowledge/__integration__/knowledge-projection.integration.ts": 0.8, + "apps/sim/lib/knowledge/__integration__/listing-continuation.integration.ts": 24.6, + "apps/sim/lib/knowledge/__integration__/member-document-lifecycle.integration.ts": 4.2, + "apps/sim/lib/knowledge/__integration__/member-scope-renewal.integration.ts": 1.4, "apps/sim/lib/knowledge/__integration__/ocr-input-failures.integration.ts": 1.7, - "apps/sim/lib/knowledge/__integration__/processing-lock-scope.integration.ts": 1.5, - "apps/sim/lib/knowledge/__integration__/provider-admission.integration.ts": 0.8, - "apps/sim/lib/knowledge/__integration__/provider-processing-recovery.integration.ts": 2.2, + "apps/sim/lib/knowledge/__integration__/processing-lock-scope.integration.ts": 1.7, + "apps/sim/lib/knowledge/__integration__/provider-admission.integration.ts": 0.6, + "apps/sim/lib/knowledge/__integration__/provider-processing-recovery.integration.ts": 1.7, "apps/sim/lib/knowledge/__integration__/providers-live.integration.ts": 0, - "apps/sim/lib/knowledge/__integration__/purged-detach-reservation.integration.ts": 5, - "apps/sim/lib/knowledge/__integration__/reranker-admission.integration.ts": 0.7, + "apps/sim/lib/knowledge/__integration__/purged-detach-reservation.integration.ts": 4.1, + "apps/sim/lib/knowledge/__integration__/reranker-admission.integration.ts": 0.6, "apps/sim/lib/knowledge/__integration__/scale.integration.ts": 0, - "apps/sim/lib/knowledge/__integration__/search-index-policy.integration.ts": 1.6, + "apps/sim/lib/knowledge/__integration__/search-index-policy.integration.ts": 1.7, "apps/sim/lib/knowledge/__integration__/search-latency.integration.ts": 0, - "apps/sim/lib/knowledge/__integration__/search-mcp-setup.integration.ts": 5.4, + "apps/sim/lib/knowledge/__integration__/search-mcp-setup.integration.ts": 10.8, "apps/sim/lib/knowledge/__integration__/search-reference-batching.integration.ts": 0.6, - "apps/sim/lib/knowledge/__integration__/search-source-pagination.integration.ts": 1.4, - "apps/sim/lib/knowledge/__integration__/search-source-progress.integration.ts": 3, - "apps/sim/lib/knowledge/__integration__/search-source-setup.integration.ts": 3, - "apps/sim/lib/knowledge/__integration__/slack-empty-threads.integration.ts": 2.1, + "apps/sim/lib/knowledge/__integration__/search-source-pagination.integration.ts": 1.2, + "apps/sim/lib/knowledge/__integration__/search-source-progress.integration.ts": 2.8, + "apps/sim/lib/knowledge/__integration__/search-source-setup.integration.ts": 2.9, + "apps/sim/lib/knowledge/__integration__/slack-empty-threads.integration.ts": 2.5, "apps/sim/lib/knowledge/__integration__/slack-live.integration.ts": 0, - "apps/sim/lib/knowledge/__integration__/slack-search-turns.integration.ts": 2.1, - "apps/sim/lib/knowledge/__integration__/storage-accounting.integration.ts": 3.1, - "apps/sim/lib/knowledge/__integration__/storage-cleanup.integration.ts": 1.6, - "apps/sim/lib/knowledge/__integration__/stored-document-recovery.integration.ts": 5.1, + "apps/sim/lib/knowledge/__integration__/slack-search-turns.integration.ts": 1, + "apps/sim/lib/knowledge/__integration__/storage-accounting.integration.ts": 2.4, + "apps/sim/lib/knowledge/__integration__/storage-cleanup.integration.ts": 1.2, + "apps/sim/lib/knowledge/__integration__/stored-document-recovery.integration.ts": 16.6, "apps/sim/lib/knowledge/__integration__/upload-read-provenance.integration.ts": 1.3, "apps/sim/lib/knowledge/__integration__/user-document-visibility.integration.ts": 0.5, - "apps/sim/lib/knowledge/__integration__/workspace-import.integration.ts": 1.8, - "apps/sim/lib/knowledge/__integration__/workspace-kb-document-access.integration.ts": 1.2, - "apps/sim/lib/knowledge/__integration__/workspace-lifecycle.integration.ts": 2.9, + "apps/sim/lib/knowledge/__integration__/workspace-import.integration.ts": 1.4, + "apps/sim/lib/knowledge/__integration__/workspace-kb-document-access.integration.ts": 0.9, + "apps/sim/lib/knowledge/__integration__/workspace-lifecycle.integration.ts": 3, "apps/sim/lib/knowledge/access/group-membership.integration.ts": 0.5, - "apps/sim/lib/knowledge/access/predicate.integration.ts": 16.5, - "apps/sim/lib/knowledge/application/github-installations.integration.ts": 0.8, - "apps/sim/lib/knowledge/application/search-index.integration.ts": 0.5, + "apps/sim/lib/knowledge/access/predicate.integration.ts": 1.1, + "apps/sim/lib/knowledge/application/github-installations.integration.ts": 0.7, + "apps/sim/lib/knowledge/application/search-index.integration.ts": 0.4, "apps/sim/lib/knowledge/application/slack-search/assistant.integration.ts": 0.8, "apps/sim/lib/knowledge/connectors/external-directory.integration.ts": 0.2, - "apps/sim/lib/knowledge/connectors/sync-content-pass.integration.ts": 1, - "apps/sim/lib/knowledge/connectors/sync-persistence.integration.ts": 0.6, - "apps/sim/lib/knowledge/search/history/history.integration.ts": 0.6, - "apps/sim/lib/knowledge/tags/date-tag-condition.integration.ts": 0.9, - "apps/sim/lib/logs/execution/completion-ledger-order.integration.ts": 2.6, - "apps/sim/lib/logs/execution/start-execution.integration.ts": 1.8, - "apps/sim/lib/memory/conversation-store.integration.ts": 2.8, - "apps/sim/lib/memory/message-provenance.integration.ts": 2.1, - "apps/sim/lib/memory/summary-store.integration.ts": 0.8, - "apps/sim/lib/mothership/agent-cli/workbench-file-provenance.integration.ts": 1.3, - "apps/sim/lib/mothership/async-runs/browser-download-claim.integration.ts": 0.6, - "apps/sim/lib/mothership/async-runs/orphaned-runs.integration.ts": 29.1, - "apps/sim/lib/mothership/async-runs/tool-identity.integration.ts": 3.2, - "apps/sim/lib/mothership/billing/service-store.integration.ts": 0.7, - "apps/sim/lib/mothership/chat/application/set-effort.integration.ts": 0.8, - "apps/sim/lib/mothership/chat/chat-mcp-servers.integration.ts": 0.6, + "apps/sim/lib/knowledge/connectors/sync-content-pass.integration.ts": 0.9, + "apps/sim/lib/knowledge/connectors/sync-persistence.integration.ts": 0.5, + "apps/sim/lib/knowledge/search/history/history.integration.ts": 0.7, + "apps/sim/lib/knowledge/tags/date-tag-condition.integration.ts": 0.8, + "apps/sim/lib/logs/execution/completion-ledger-order.integration.ts": 2.2, + "apps/sim/lib/logs/execution/start-execution.integration.ts": 1.6, + "apps/sim/lib/memory/conversation-store.integration.ts": 3.1, + "apps/sim/lib/memory/message-provenance.integration.ts": 1.7, + "apps/sim/lib/memory/summary-store.integration.ts": 0.7, + "apps/sim/lib/mothership/agent-cli/workbench-file-provenance.integration.ts": 2.2, + "apps/sim/lib/mothership/async-runs/browser-download-claim.integration.ts": 0.4, + "apps/sim/lib/mothership/async-runs/orphaned-runs.integration.ts": 14.8, + "apps/sim/lib/mothership/async-runs/tool-identity.integration.ts": 0.5, + "apps/sim/lib/mothership/billing/service-store.integration.ts": 0.6, + "apps/sim/lib/mothership/chat/application/set-effort.integration.ts": 0.7, + "apps/sim/lib/mothership/chat/chat-mcp-servers.integration.ts": 0.8, "apps/sim/lib/mothership/request/session/buffer-ttl.integration.ts": 12.3, - "apps/sim/lib/mothership/request/session/recovery-storm.integration.ts": 217.3, - "apps/sim/lib/mothership/request/session/replay-budget.integration.ts": 39, - "apps/sim/lib/mothership/request/session/replay-gap.integration.ts": 62.2, - "apps/sim/lib/mothership/request/session/stream-recovery.integration.ts": 6.9, - "apps/sim/lib/mothership/request/tools/workflow-client-settlement.integration.ts": 1, - "apps/sim/lib/mothership/tasks/application/prepare-wake.integration.ts": 12.3, - "apps/sim/lib/mothership/tools/client/desktop-tool-authorization.integration.ts": 6.8, - "apps/sim/lib/mothership/tools/client/desktop-tool-chat-view-lease.integration.ts": 6.9, - "apps/sim/lib/mothership/tools/client/desktop-tool-executor.integration.ts": 4.8, - "apps/sim/lib/mothership/tools/client/desktop-tool-pickup.integration.ts": 87.1, - "apps/sim/lib/projects/__integration__/foundation.integration.ts": 14.3, - "apps/sim/lib/selectors/__integration__/copilot-nested-selectors.integration.ts": 4.3, - "apps/sim/lib/sim-search/live/managed-mcp.integration.ts": 8.3, - "apps/sim/lib/sim-search/live/provider-discovery.integration.ts": 1.3, - "apps/sim/lib/table/analytics/postgres.integration.ts": 0.7, - "apps/sim/lib/table/row-changes.integration.ts": 0.8, - "apps/sim/lib/table/rows/row-writes.integration.ts": 12.5, - "apps/sim/lib/table/rows/secret-provenance.integration.ts": 1.9, - "apps/sim/lib/uploads/contexts/organization-logo/application.integration.ts": 0.8, + "apps/sim/lib/mothership/request/session/recovery-storm.integration.ts": 215.6, + "apps/sim/lib/mothership/request/session/replay-budget.integration.ts": 34, + "apps/sim/lib/mothership/request/session/replay-gap.integration.ts": 30.1, + "apps/sim/lib/mothership/request/session/stream-recovery.integration.ts": 6.7, + "apps/sim/lib/mothership/request/tools/workflow-client-settlement.integration.ts": 0.8, + "apps/sim/lib/mothership/tasks/application/prepare-wake.integration.ts": 10.6, + "apps/sim/lib/mothership/tools/client/desktop-tool-authorization.integration.ts": 11.9, + "apps/sim/lib/mothership/tools/client/desktop-tool-chat-view-lease.integration.ts": 7.8, + "apps/sim/lib/mothership/tools/client/desktop-tool-executor.integration.ts": 5.5, + "apps/sim/lib/mothership/tools/client/desktop-tool-pickup.integration.ts": 88.8, + "apps/sim/lib/oauth/shopify.integration.ts": 2, + "apps/sim/lib/organizations/application/domain-settings.integration.ts": 0.7, + "apps/sim/lib/permission-groups/__integration__/copilot-permission-config.integration.ts": 3.1, + "apps/sim/lib/projects/__integration__/foundation.integration.ts": 3.9, + "apps/sim/lib/selectors/__integration__/copilot-nested-selectors.integration.ts": 3.6, + "apps/sim/lib/sim-search/live/managed-mcp.integration.ts": 4.9, + "apps/sim/lib/sim-search/live/provider-discovery.integration.ts": 1.1, + "apps/sim/lib/table/analytics/postgres.integration.ts": 0.5, + "apps/sim/lib/table/application/row-audit.integration.ts": 1.2, + "apps/sim/lib/table/dispatcher.integration.ts": 0.6, + "apps/sim/lib/table/row-changes.integration.ts": 0.7, + "apps/sim/lib/table/rows/row-writes.integration.ts": 10.7, + "apps/sim/lib/table/rows/secret-provenance.integration.ts": 2.2, + "apps/sim/lib/uploads/contexts/organization-logo/application.integration.ts": 0.6, "apps/sim/lib/uploads/contexts/workspace/__integration__/file-names.integration.ts": 2.1, - "apps/sim/lib/uploads/contexts/workspace/__integration__/file-versions.integration.ts": 9.1, - "apps/sim/lib/uploads/upload-session/workspace-file-provenance.integration.ts": 0.6, - "apps/sim/lib/webhooks/registration-store.integration.ts": 0.9, - "apps/sim/lib/webhooks/trigger-block-deployment.integration.ts": 7.4, - "apps/sim/lib/workflows/application/compare-workflow-versions.integration.ts": 2.5, - "apps/sim/lib/workflows/application/read-workflow-version.integration.ts": 2.4, - "apps/sim/lib/workflows/custom-blocks/workspace-rows.integration.ts": 1.1, + "apps/sim/lib/uploads/contexts/workspace/__integration__/file-versions.integration.ts": 6.5, + "apps/sim/lib/uploads/upload-session/workspace-file-provenance.integration.ts": 0.4, + "apps/sim/lib/webhooks/registration-store.integration.ts": 0.7, + "apps/sim/lib/webhooks/trigger-block-deployment.integration.ts": 5.4, + "apps/sim/lib/workflows/application/compare-workflow-versions.integration.ts": 1.6, + "apps/sim/lib/workflows/application/read-workflow-version.integration.ts": 1.5, + "apps/sim/lib/workflows/custom-blocks/workspace-rows.integration.ts": 1.3, "apps/sim/lib/workflows/executor/pause-persistence.integration.ts": 5.9, - "apps/sim/lib/workflows/orchestration/create-workflow-with-state.integration.ts": 3.1, - "apps/sim/lib/workspace-files/search/chunks.integration.ts": 13.9, - "apps/sim/lib/workspace-files/search/dispatcher.integration.ts": 14.5, - "apps/sim/lib/workspace-files/search/index-plan.integration.ts": 0.2, - "apps/sim/lib/workspaces/__integration__/fork-sync.integration.ts": 25, - "apps/sim/lib/workspaces/__integration__/http-cli.integration.ts": 8.6, - "apps/sim/lib/workspaces/__integration__/mapped-import.integration.ts": 6, - "apps/sim/lib/workspaces/__integration__/pagination.integration.ts": 0.8, - "apps/sim/lib/workspaces/__integration__/receipts.integration.ts": 0.6, - "apps/sim/lib/workspaces/organization-workspaces.integration.ts": 0.8, - "apps/sim/tools/powerbi/powerbi.integration.ts": 8.4, + "apps/sim/lib/workflows/orchestration/create-workflow-with-state.integration.ts": 3, + "apps/sim/lib/workspace-files/__integration__/copilot-file-versions.integration.ts": 3.2, + "apps/sim/lib/workspace-files/search/chunks.integration.ts": 18, + "apps/sim/lib/workspace-files/search/dispatcher.integration.ts": 14.8, + "apps/sim/lib/workspace-files/search/index-plan.integration.ts": 0.1, + "apps/sim/lib/workspaces/__integration__/fork-sync.integration.ts": 17.7, + "apps/sim/lib/workspaces/__integration__/http-cli.integration.ts": 6.7, + "apps/sim/lib/workspaces/__integration__/mapped-import.integration.ts": 4.6, + "apps/sim/lib/workspaces/__integration__/pagination.integration.ts": 0.7, + "apps/sim/lib/workspaces/__integration__/receipts.integration.ts": 0.4, + "apps/sim/lib/workspaces/organization-workspaces.integration.ts": 1, + "apps/sim/tools/powerbi/powerbi.integration.ts": 7.4, "packages/db/embedding-width-migration.integration.ts": 0.4, - "packages/db/maintenance/search-retirement.integration.ts": 12, + "packages/db/maintenance/search-retirement.integration.ts": 9.9, "packages/db/member-sync-status-migration.integration.ts": 0, - "packages/db/organization-search-migration.integration.ts": 1.2, + "packages/db/organization-search-migration.integration.ts": 1, "packages/db/permission-access-requests-migration.integration.ts": 0.1, - "packages/db/script-migrations/0013_backfill_legacy_knowledge_base_workspaces.integration.ts": 6, - "packages/db/script-migrations/0014_require_knowledge_base_owner.integration.ts": 0.2, - "packages/db/script-migrations/0016_backfill_search_vectors.integration.ts": 8, + "packages/db/script-migrations/0013_backfill_legacy_knowledge_base_workspaces.integration.ts": 5.5, + "packages/db/script-migrations/0014_require_knowledge_base_owner.integration.ts": 0.1, + "packages/db/script-migrations/0016_backfill_search_vectors.integration.ts": 2.2, "packages/db/script-migrations/0018_repair_workspace_file_content_revision.integration.ts": 0.1, "packages/db/script-migrations/0021_embedding_search_connector.integration.ts": 0.2, - "packages/db/script-migrations/0030_retire_keyword_writers.integration.ts": 2.6, + "packages/db/script-migrations/0030_retire_keyword_writers.integration.ts": 2.3, "packages/db/scripts/connector-sync-schedule-precision.integration.ts": 0, "packages/db/scripts/database-failure-classification.integration.ts": 1.1, - "packages/db/scripts/push.integration.ts": 7, - "packages/db/scripts/retired-columns.integration.ts": 0.3 + "packages/db/scripts/push.integration.ts": 5.4, + "packages/db/scripts/retired-columns.integration.ts": 0.1 }