diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index de0a70a6f7..097692cdec 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -149,26 +149,31 @@ jobs: include: # The server suite is pinned to maxWorkers=1 (server/vitest.config.ts), # so it can only be parallelized across runners. Shard it to keep this - # lane off the PR critical path. Four shards because the suite has - # grown to ~880s of serial vitest wall time (run 30723165356, - # 2026-08-01): at three shards the worst shard ran 313s and was the - # slowest check in the whole PR run; four brings each shard to ~220s. + # lane off the PR critical path. Five shards because the suite has + # grown to ~946s of serial vitest wall time (run 30930345729, + # 2026-08-04): at four shards the worst shard ran 311s and was the + # slowest check in the whole PR run; five brings each shard to ~196s + # of suite time (~240s job), level with the other ~250-300s lanes. - group: general-server - group_label: server (1/4) + group_label: server (1/5) shard_index: 0 - shard_count: 4 + shard_count: 5 - group: general-server - group_label: server (2/4) + group_label: server (2/5) shard_index: 1 - shard_count: 4 + shard_count: 5 - group: general-server - group_label: server (3/4) + group_label: server (3/5) shard_index: 2 - shard_count: 4 + shard_count: 5 - group: general-server - group_label: server (4/4) + group_label: server (4/5) shard_index: 3 - shard_count: 4 + shard_count: 5 + - group: general-server + group_label: server (5/5) + shard_index: 4 + shard_count: 5 - group: general-workspaces-a group_label: workspaces-a - group: general-workspaces-b diff --git a/scripts/__tests__/run-vitest-stable-shard.test.mjs b/scripts/__tests__/run-vitest-stable-shard.test.mjs index 252629bc06..f3ef491e8f 100644 --- a/scripts/__tests__/run-vitest-stable-shard.test.mjs +++ b/scripts/__tests__/run-vitest-stable-shard.test.mjs @@ -28,9 +28,10 @@ function dryRunJson(args) { return JSON.parse(result.stdout); } -const SHARD_COUNT = 4; +const SHARD_COUNT = 5; const SERIALIZED_SHARD_COUNT = 5; + test("the serialized shards form a complete, non-overlapping partition", () => { const shards = Array.from({ length: SERIALIZED_SHARD_COUNT }, (_, index) => dryRunJson(["--mode", "serialized", "--shard-index", String(index), "--shard-count", String(SERIALIZED_SHARD_COUNT)]), diff --git a/scripts/general-server-shard-durations.json b/scripts/general-server-shard-durations.json index 91f8729883..165b692a71 100644 --- a/scripts/general-server-shard-durations.json +++ b/scripts/general-server-shard-durations.json @@ -1,306 +1,285 @@ { - "$comment": "Per-suite wall-clock durations (ms) for the general-server vitest lane, used by scripts/general-server-shard.mjs to balance suites across the PR shard matrix. Sampled from a real PR run of .github/workflows/pr.yml (actions run 30723165356, 2026-08-01) by diffing consecutive per-suite completion timestamps in the 'Run grouped general test suites' logs \u2014 that captures each suite's true serial cost (import + collect + tests), not just the vitest-reported test time. Suites missing here get the median weight, so the manifest only needs occasional refreshes.", + "$comment": "Per-suite wall-clock durations (ms) for the general-server vitest lane, used by scripts/general-server-shard.mjs to balance suites across the PR shard matrix. Sampled from a real PR run of .github/workflows/pr.yml (actions run 30930345729, 2026-08-04) by diffing consecutive per-suite completion timestamps in the 'Run grouped general test suites' logs \u2014 that captures each suite's true serial cost (import + collect + tests), not just the vitest-reported test time. Suites missing here get the median weight, so the manifest only needs occasional refreshes.", "unit": "ms", "durations": { - "server/src/__tests__/access-service.test.ts": 5304, - "server/src/__tests__/access-validators.test.ts": 376, - "server/src/__tests__/activity-log-responsible-user.test.ts": 4009, - "server/src/__tests__/activity-service.test.ts": 4368, - "server/src/__tests__/adapter-models.test.ts": 900, - "server/src/__tests__/adapter-registry.test.ts": 869, - "server/src/__tests__/adapter-session-codecs.test.ts": 368, - "server/src/__tests__/agent-auth-jwt.test.ts": 343, - "server/src/__tests__/agent-auth-middleware.test.ts": 946, - "server/src/__tests__/agent-instructions-service.test.ts": 228, - "server/src/__tests__/agent-invokability.test.ts": 888, - "server/src/__tests__/agent-permissions-service.test.ts": 318, - "server/src/__tests__/agent-shortname-collision.test.ts": 1394, - "server/src/__tests__/agent-skill-contract.test.ts": 222, - "server/src/__tests__/agents-adapter-config-user-secret.test.ts": 5334, - "server/src/__tests__/agents-pending-approval-config.test.ts": 5994, - "server/src/__tests__/agents-service-clear-error.test.ts": 5886, - "server/src/__tests__/agents-service-secret-bindings.test.ts": 4856, - "server/src/__tests__/api-compression.test.ts": 277, - "server/src/__tests__/app-hmr-port.test.ts": 2005, - "server/src/__tests__/app-private-hostname-gate.test.ts": 3503, - "server/src/__tests__/app-vite-dev-routing.test.ts": 2039, - "server/src/__tests__/approvals-service.test.ts": 782, - "server/src/__tests__/attachment-types.test.ts": 404, - "server/src/__tests__/attention-service.test.ts": 5183, - "server/src/__tests__/authorization-service.test.ts": 5278, - "server/src/__tests__/aws-secrets-manager-provider.test.ts": 320, - "server/src/__tests__/better-auth.test.ts": 873, - "server/src/__tests__/board-claim.test.ts": 4834, - "server/src/__tests__/board-mutation-guard.test.ts": 240, - "server/src/__tests__/body-limits.test.ts": 165, - "server/src/__tests__/budgets-service.test.ts": 4297, - "server/src/__tests__/build-commit.test.ts": 216, - "server/src/__tests__/build-version.test.ts": 203, - "server/src/__tests__/built-in-agents.test.ts": 11393, - "server/src/__tests__/bundled-plugins.test.ts": 191, - "server/src/__tests__/change-consent-gate.test.ts": 4146, - "server/src/__tests__/claude-local-adapter-environment.test.ts": 647, - "server/src/__tests__/claude-local-adapter.test.ts": 262, - "server/src/__tests__/claude-local-execute.test.ts": 2644, - "server/src/__tests__/claude-local-skill-sync.test.ts": 294, - "server/src/__tests__/cleanup-removal-service.test.ts": 5233, - "server/src/__tests__/cloud-image-bundled-plugins.test.ts": 229, - "server/src/__tests__/codex-auth-reconciliation.test.ts": 1054, - "server/src/__tests__/codex-local-adapter-environment.test.ts": 296, - "server/src/__tests__/codex-local-adapter.test.ts": 329, - "server/src/__tests__/codex-local-execute.test.ts": 1440, - "server/src/__tests__/codex-local-skill-injection.test.ts": 318, - "server/src/__tests__/codex-local-skill-sync.test.ts": 293, - "server/src/__tests__/companies-service.test.ts": 6576, - "server/src/__tests__/company-artifacts-service.test.ts": 5890, - "server/src/__tests__/company-portability-import-batching.test.ts": 7925, - "server/src/__tests__/company-search-extract-service.test.ts": 4340, - "server/src/__tests__/company-search-service.test.ts": 5187, - "server/src/__tests__/company-skill-import-boundary.test.ts": 4859, - "server/src/__tests__/company-skill-policy-service.test.ts": 4482, - "server/src/__tests__/company-skill-test-runs-service.test.ts": 7446, - "server/src/__tests__/company-skills-catalog-service.test.ts": 7480, - "server/src/__tests__/company-skills-detail.test.ts": 4740, - "server/src/__tests__/company-skills-service.test.ts": 16803, - "server/src/__tests__/company-skills.test.ts": 1298, - "server/src/__tests__/config-file.test.ts": 399, - "server/src/__tests__/cursor-local-adapter-environment.test.ts": 487, - "server/src/__tests__/cursor-local-adapter.test.ts": 309, - "server/src/__tests__/cursor-local-execute.test.ts": 1233, - "server/src/__tests__/cursor-local-skill-injection.test.ts": 228, - "server/src/__tests__/cursor-local-skill-sync.test.ts": 275, - "server/src/__tests__/dashboard-service.test.ts": 4166, - "server/src/__tests__/decision-training.test.ts": 5790, - "server/src/__tests__/decision-wakeup.test.ts": 173, - "server/src/__tests__/decisions-service.test.ts": 6732, - "server/src/__tests__/dev-runner-output.test.ts": 223, - "server/src/__tests__/dev-runner-paths.test.ts": 213, - "server/src/__tests__/dev-runner-snapshot.test.ts": 208, - "server/src/__tests__/dev-runner-worktree.test.ts": 210, - "server/src/__tests__/dev-server-status.test.ts": 180, - "server/src/__tests__/dev-watch-ignore.test.ts": 216, - "server/src/__tests__/docker-entrypoint.test.ts": 280, - "server/src/__tests__/document-annotations-service.test.ts": 5245, - "server/src/__tests__/documents-service.test.ts": 4609, - "server/src/__tests__/documents.test.ts": 889, - "server/src/__tests__/effective-run-config-fingerprints.test.ts": 176, - "server/src/__tests__/environment-config.test.ts": 1200, - "server/src/__tests__/environment-custom-image-terminal-ws.test.ts": 2962, - "server/src/__tests__/environment-custom-images-service.test.ts": 6969, - "server/src/__tests__/environment-execution-target.test.ts": 527, - "server/src/__tests__/environment-live-ssh.test.ts": 1323, - "server/src/__tests__/environment-probe.test.ts": 1427, - "server/src/__tests__/environment-run-orchestrator.test.ts": 1223, - "server/src/__tests__/environment-runtime-driver-contract.test.ts": 5082, - "server/src/__tests__/environment-runtime.test.ts": 10230, - "server/src/__tests__/environment-service.test.ts": 4331, - "server/src/__tests__/environment-test-harness.test.ts": 388, - "server/src/__tests__/error-handler.test.ts": 439, - "server/src/__tests__/execution-lock-orphan-cleanup.test.ts": 5717, - "server/src/__tests__/execution-workspace-policy.test.ts": 479, - "server/src/__tests__/execution-workspaces-service.test.ts": 10891, - "server/src/__tests__/export-fidelity.test.ts": 4019, - "server/src/__tests__/external-objects-service.test.ts": 5043, - "server/src/__tests__/feedback-flush-controller.test.ts": 2076, - "server/src/__tests__/feedback-service.test.ts": 4890, - "server/src/__tests__/feedback-share-client.test.ts": 177, - "server/src/__tests__/file-resources.test.ts": 8357, - "server/src/__tests__/first-admin-claim.test.ts": 3777, - "server/src/__tests__/folders-service.test.ts": 5698, - "server/src/__tests__/forbidden-tokens.test.ts": 181, - "server/src/__tests__/gemini-local-adapter-environment.test.ts": 354, - "server/src/__tests__/gemini-local-adapter.test.ts": 288, - "server/src/__tests__/gemini-local-execute.test.ts": 512, - "server/src/__tests__/gemini-local-skill-sync.test.ts": 225, - "server/src/__tests__/google-sheets-gallery.test.ts": 1467, - "server/src/__tests__/grok-local-skill-sync.test.ts": 264, - "server/src/__tests__/heartbeat-accepted-plan-workspace-refresh.test.ts": 7971, - "server/src/__tests__/heartbeat-active-run-output-watchdog.test.ts": 54470, - "server/src/__tests__/heartbeat-agent-session-message.test.ts": 2430, - "server/src/__tests__/heartbeat-archived-company-guard.test.ts": 4909, - "server/src/__tests__/heartbeat-auto-checkout.test.ts": 1346, - "server/src/__tests__/heartbeat-comment-wake-batching.test.ts": 9868, - "server/src/__tests__/heartbeat-context-summary.test.ts": 1415, - "server/src/__tests__/heartbeat-cost-accounting.test.ts": 1336, - "server/src/__tests__/heartbeat-issue-rewake-throttle.test.ts": 8207, - "server/src/__tests__/heartbeat-ledger-billing-code.test.ts": 1694, - "server/src/__tests__/heartbeat-list.test.ts": 5178, - "server/src/__tests__/heartbeat-local-environment.test.ts": 9551, - "server/src/__tests__/heartbeat-lock-release-on-reassignment.test.ts": 5037, - "server/src/__tests__/heartbeat-model-profile.test.ts": 1718, - "server/src/__tests__/heartbeat-plugin-environment.test.ts": 5394, - "server/src/__tests__/heartbeat-project-env.test.ts": 1468, - "server/src/__tests__/heartbeat-referenced-projects.test.ts": 4918, - "server/src/__tests__/heartbeat-remote-referenced-projects.test.ts": 1434, - "server/src/__tests__/heartbeat-responsible-user-invariant.test.ts": 6896, - "server/src/__tests__/heartbeat-retry-scheduling.test.ts": 9571, - "server/src/__tests__/heartbeat-run-log.test.ts": 1667, - "server/src/__tests__/heartbeat-run-status-payload.test.ts": 1655, - "server/src/__tests__/heartbeat-run-summary.test.ts": 208, - "server/src/__tests__/heartbeat-runtime-mcp-servers.test.ts": 4906, - "server/src/__tests__/heartbeat-runtime-skills.test.ts": 6987, - "server/src/__tests__/heartbeat-runtime-state.test.ts": 5073, - "server/src/__tests__/heartbeat-scheduling-suppression.test.ts": 1607, - "server/src/__tests__/heartbeat-stale-queue-invalidation.test.ts": 18374, - "server/src/__tests__/heartbeat-start-lock.test.ts": 419, - "server/src/__tests__/heartbeat-timer-wake-session-reset-pf4.test.ts": 1422, - "server/src/__tests__/heartbeat-workspace-branch-containment.test.ts": 8505, - "server/src/__tests__/heartbeat-workspace-finalize-branch.test.ts": 6790, - "server/src/__tests__/heartbeat-workspace-ready-comment.test.ts": 1335, - "server/src/__tests__/heartbeat-workspace-session.test.ts": 2022, - "server/src/__tests__/heartbeat-worktree-suppression.test.ts": 8319, - "server/src/__tests__/heartbeat-zombie-guard.test.ts": 1408, - "server/src/__tests__/hire-hook.test.ts": 968, - "server/src/__tests__/http-log-policy.test.ts": 216, - "server/src/__tests__/http-log-redaction.test.ts": 258, - "server/src/__tests__/inbox-dismissals.test.ts": 5254, - "server/src/__tests__/instance-settings-managed-overlay.test.ts": 912, - "server/src/__tests__/instance-settings-service.test.ts": 944, - "server/src/__tests__/instrumentation.test.ts": 196, - "server/src/__tests__/invite-join-grants.test.ts": 398, - "server/src/__tests__/invite-rate-limit.test.ts": 167, - "server/src/__tests__/invite-token-entropy.test.ts": 1850, - "server/src/__tests__/issue-blocker-attention.test.ts": 6110, - "server/src/__tests__/issue-comment-redaction.test.ts": 5411, - "server/src/__tests__/issue-continuation-summary.test.ts": 926, - "server/src/__tests__/issue-execution-policy.test.ts": 463, - "server/src/__tests__/issue-goal-fallback.test.ts": 209, - "server/src/__tests__/issue-liveness.test.ts": 408, - "server/src/__tests__/issue-monitor-scheduler.test.ts": 11200, - "server/src/__tests__/issue-recovery-actions.test.ts": 7969, - "server/src/__tests__/issue-references-service.test.ts": 4270, - "server/src/__tests__/issue-rewake-throttle.test.ts": 179, - "server/src/__tests__/issue-thread-interactions-service.test.ts": 7260, - "server/src/__tests__/issue-thread-interactions-telemetry.test.ts": 4518, - "server/src/__tests__/issue-tree-control-service-unit.test.ts": 725, - "server/src/__tests__/issue-tree-control-service.test.ts": 4666, - "server/src/__tests__/issues-list-query-parsing.test.ts": 941, - "server/src/__tests__/issues-user-context.test.ts": 889, - "server/src/__tests__/join-request-dedupe.test.ts": 225, - "server/src/__tests__/json-schema-secret-refs.test.ts": 202, - "server/src/__tests__/live-events-ws.test.ts": 788, - "server/src/__tests__/log-redaction.test.ts": 216, - "server/src/__tests__/logger-tz.test.ts": 241, - "server/src/__tests__/managed-config.test.ts": 411, - "server/src/__tests__/mcp-http.test.ts": 165, - "server/src/__tests__/monthly-spend-service.test.ts": 1692, - "server/src/__tests__/openclaw-gateway-adapter.test.ts": 328, - "server/src/__tests__/opencode-local-adapter.test.ts": 287, - "server/src/__tests__/opencode-local-skill-sync.test.ts": 224, - "server/src/__tests__/paperclip-env.test.ts": 465, - "server/src/__tests__/paperclip-skill-utils.test.ts": 250, - "server/src/__tests__/parse-status-filter.test.ts": 1075, - "server/src/__tests__/pi-local-adapter-environment.test.ts": 309, - "server/src/__tests__/pi-local-execute.test.ts": 424, - "server/src/__tests__/pi-local-skill-sync.test.ts": 268, - "server/src/__tests__/pipelines-service.test.ts": 6851, - "server/src/__tests__/plugin-access-authorization-host-services.test.ts": 5294, - "server/src/__tests__/plugin-agent-sessions.test.ts": 1630, - "server/src/__tests__/plugin-config-startup-delivery.test.ts": 3893, - "server/src/__tests__/plugin-database.test.ts": 4724, - "server/src/__tests__/plugin-dev-watcher.test.ts": 502, - "server/src/__tests__/plugin-environment-driver-ready-recovery.test.ts": 3502, - "server/src/__tests__/plugin-environment-driver-seam.test.ts": 525, - "server/src/__tests__/plugin-execution-workspace-bridge.test.ts": 221, - "server/src/__tests__/plugin-install-autobuild.test.ts": 6870, - "server/src/__tests__/plugin-install-guard.test.ts": 1046, - "server/src/__tests__/plugin-lifecycle-restart.test.ts": 1017, - "server/src/__tests__/plugin-local-folders.test.ts": 285, - "server/src/__tests__/plugin-managed-agents.test.ts": 5460, - "server/src/__tests__/plugin-managed-routines.test.ts": 5584, - "server/src/__tests__/plugin-managed-skills.test.ts": 6803, - "server/src/__tests__/plugin-orchestration-apis.test.ts": 8315, - "server/src/__tests__/plugin-sandbox-provider-config-validation.test.ts": 209, - "server/src/__tests__/plugin-sdk-orchestration-contract.test.ts": 481, - "server/src/__tests__/plugin-sdk-testing.test.ts": 398, - "server/src/__tests__/plugin-secrets-handler.test.ts": 4589, - "server/src/__tests__/plugin-telemetry-bridge.test.ts": 1825, - "server/src/__tests__/plugin-tenant-isolation.test.ts": 5019, - "server/src/__tests__/plugin-tool-dispatcher-pluginDbId.test.ts": 830, - "server/src/__tests__/plugin-ui-static.test.ts": 920, - "server/src/__tests__/plugin-worker-manager.test.ts": 1149, - "server/src/__tests__/private-hostname-guard.test.ts": 278, - "server/src/__tests__/productivity-review-service.test.ts": 9394, - "server/src/__tests__/project-icon-persistence.test.ts": 5775, - "server/src/__tests__/project-list-metrics.test.ts": 784, - "server/src/__tests__/project-shortname-resolution.test.ts": 991, - "server/src/__tests__/qa-routine-secrets-e2e.test.ts": 5272, - "server/src/__tests__/quota-windows-service.test.ts": 170, - "server/src/__tests__/quota-windows.test.ts": 360, - "server/src/__tests__/recovery-classifiers.test.ts": 1490, - "server/src/__tests__/recovery-observability.test.ts": 4447, - "server/src/__tests__/recovery-stale-issue-lock-sweep.test.ts": 4853, - "server/src/__tests__/redact-sensitive.test.ts": 219, - "server/src/__tests__/remote-http-endpoint-guard.test.ts": 211, - "server/src/__tests__/routable-blocked.test.ts": 168, - "server/src/__tests__/routine-run-telemetry.test.ts": 4859, - "server/src/__tests__/routines-service.test.ts": 9383, - "server/src/__tests__/run-continuations.test.ts": 767, - "server/src/__tests__/run-liveness.test.ts": 226, - "server/src/__tests__/runtime-api.test.ts": 173, - "server/src/__tests__/sandbox-provider-runtime.test.ts": 174, - "server/src/__tests__/secret-provider-registry.test.ts": 289, - "server/src/__tests__/secrets-service-user-secret-owner-scoped.test.ts": 4889, - "server/src/__tests__/secrets-service.test.ts": 7056, - "server/src/__tests__/server-info.test.ts": 597, - "server/src/__tests__/server-package-build-script.test.ts": 210, - "server/src/__tests__/server-startup-feedback-export.test.ts": 1325, - "server/src/__tests__/shared-telemetry-events.test.ts": 186, - "server/src/__tests__/skills-catalog-service.test.ts": 210, - "server/src/__tests__/smoke-lab.test.ts": 5240, - "server/src/__tests__/source-trust.test.ts": 4173, - "server/src/__tests__/static-index-html.test.ts": 300, - "server/src/__tests__/status-card-update-engine.test.ts": 327, - "server/src/__tests__/status-cards.test.ts": 7663, - "server/src/__tests__/storage-local-provider.test.ts": 185, - "server/src/__tests__/summary-slots.test.ts": 6169, - "server/src/__tests__/task-watchdogs-classifier.test.ts": 1103, - "server/src/__tests__/task-watchdogs-scheduler.test.ts": 5996, - "server/src/__tests__/teams-catalog-install-no-overrides.test.ts": 7509, - "server/src/__tests__/teams-catalog-service.test.ts": 492, - "server/src/__tests__/telemetry-client-flush.test.ts": 214, - "server/src/__tests__/tool-access-policy-service.test.ts": 5303, - "server/src/__tests__/tool-access-service.test.ts": 16497, - "server/src/__tests__/tool-content-guards.test.ts": 220, - "server/src/__tests__/tool-gateway-service.test.ts": 7360, - "server/src/__tests__/tool-gateway.test.ts": 11686, - "server/src/__tests__/tool-oauth-legacy-backfill.test.ts": 4623, - "server/src/__tests__/trust-preset-resolver.test.ts": 396, - "server/src/__tests__/trust-proxy.test.ts": 275, - "server/src/__tests__/ui-branding.test.ts": 210, - "server/src/__tests__/version.test.ts": 190, - "server/src/__tests__/vite-html-renderer.test.ts": 164, - "server/src/__tests__/work-products.test.ts": 789, - "server/src/__tests__/work-timeline-service.test.ts": 5529, - "server/src/__tests__/workspace-runtime.test.ts": 35281, - "server/src/__tests__/worktree-config.test.ts": 230, - "server/src/__tests__/write-path-membership.test.ts": 914, - "server/src/adapters/claude-agent-id-header.test.ts": 207, - "server/src/adapters/http/execute.test.ts": 354, - "server/src/instrumentation.test.ts": 229, - "server/src/middleware/cloud-tenant-actor.test.ts": 814, - "server/src/services/adapter-models-env.test.ts": 199, - "server/src/services/adapter-registry-bootstrap.reconcile.test.ts": 852, - "server/src/services/adapter-registry-bootstrap.test.ts": 823, - "server/src/services/environment-custom-image-terminal-sessions.test.ts": 218, - "server/src/services/execution-allowlist.test.ts": 175, - "server/src/services/execution-policy-bootstrap.test.ts": 696, - "server/src/services/heartbeat-run-runtime-status.test.ts": 227, - "server/src/services/heartbeat-stop-metadata.test.ts": 213, - "server/src/services/hot-restart.test.ts": 301, - "server/src/services/issue-thread-interactions.test.ts": 1104, - "server/src/services/managed-environments.test.ts": 1190, - "server/src/services/recovery/model-profile-hint.test.ts": 163, - "server/src/services/recovery/provider-failure-classification.test.ts": 1548, - "server/src/services/recovery/service.pause-durability.test.ts": 1497, - "server/src/services/recovery/successful-run-handoff.test.ts": 809, - "server/src/services/responsible-user-denial-run-outcomes.test.ts": 958, - "server/src/services/routines-formatter-cache.test.ts": 2665, - "server/src/services/run-log-store.test.ts": 645, - "server/src/services/run-scratch.test.ts": 232, - "server/src/services/session-workspace-cwd.test.ts": 197, - "server/src/services/workspace-runtime-read-model.test.ts": 749, - "server/src/services/workspace-runtime-ready-comment.test.ts": 1012, - "server/src/shutdown.test.ts": 261 + "server/src/__tests__/access-service.test.ts": 4415, + "server/src/__tests__/access-validators.test.ts": 385, + "server/src/__tests__/activity-log-responsible-user.test.ts": 8591, + "server/src/__tests__/activity-service.test.ts": 4704, + "server/src/__tests__/adapter-models.test.ts": 875, + "server/src/__tests__/adapter-registry.test.ts": 880, + "server/src/__tests__/adapter-session-codecs.test.ts": 343, + "server/src/__tests__/agent-auth-jwt.test.ts": 408, + "server/src/__tests__/agent-auth-middleware.test.ts": 1102, + "server/src/__tests__/agent-instructions-service.test.ts": 1648, + "server/src/__tests__/agent-invokability.test.ts": 2416, + "server/src/__tests__/agent-permissions-service.test.ts": 439, + "server/src/__tests__/agent-shortname-collision.test.ts": 1432, + "server/src/__tests__/agent-skill-contract.test.ts": 218, + "server/src/__tests__/agents-adapter-config-user-secret.test.ts": 4910, + "server/src/__tests__/agents-pending-approval-config.test.ts": 4632, + "server/src/__tests__/agents-service-clear-error.test.ts": 7537, + "server/src/__tests__/agents-service-secret-bindings.test.ts": 4929, + "server/src/__tests__/api-compression.test.ts": 337, + "server/src/__tests__/app-hmr-port.test.ts": 4092, + "server/src/__tests__/app-private-hostname-gate.test.ts": 2486, + "server/src/__tests__/app-vite-dev-routing.test.ts": 2494, + "server/src/__tests__/approvals-service.test.ts": 962, + "server/src/__tests__/attachment-types.test.ts": 397, + "server/src/__tests__/attention-service.test.ts": 6385, + "server/src/__tests__/authorization-service.test.ts": 5178, + "server/src/__tests__/aws-secrets-manager-provider.test.ts": 234, + "server/src/__tests__/better-auth.test.ts": 707, + "server/src/__tests__/board-claim.test.ts": 4169, + "server/src/__tests__/board-mutation-guard.test.ts": 325, + "server/src/__tests__/body-limits.test.ts": 139, + "server/src/__tests__/budgets-service.test.ts": 4078, + "server/src/__tests__/build-commit.test.ts": 204, + "server/src/__tests__/build-version.test.ts": 2984, + "server/src/__tests__/built-in-agents.test.ts": 12350, + "server/src/__tests__/bundled-plugins.test.ts": 243, + "server/src/__tests__/change-consent-gate.test.ts": 4031, + "server/src/__tests__/claude-local-adapter-environment.test.ts": 656, + "server/src/__tests__/claude-local-adapter.test.ts": 350, + "server/src/__tests__/claude-local-execute.test.ts": 3017, + "server/src/__tests__/claude-local-skill-sync.test.ts": 292, + "server/src/__tests__/cleanup-removal-service.test.ts": 5080, + "server/src/__tests__/cloud-image-bundled-plugins.test.ts": 227, + "server/src/__tests__/codex-auth-reconciliation.test.ts": 1018, + "server/src/__tests__/codex-local-adapter-environment.test.ts": 295, + "server/src/__tests__/codex-local-adapter.test.ts": 343, + "server/src/__tests__/codex-local-execute.test.ts": 1427, + "server/src/__tests__/codex-local-skill-injection.test.ts": 301, + "server/src/__tests__/codex-local-skill-sync.test.ts": 287, + "server/src/__tests__/companies-service.test.ts": 6464, + "server/src/__tests__/company-artifacts-service.test.ts": 5752, + "server/src/__tests__/company-portability-import-batching.test.ts": 8001, + "server/src/__tests__/company-search-extract-service.test.ts": 4856, + "server/src/__tests__/company-search-service.test.ts": 6275, + "server/src/__tests__/company-skill-import-boundary.test.ts": 5181, + "server/src/__tests__/company-skill-policy-service.test.ts": 4598, + "server/src/__tests__/company-skill-test-runs-service.test.ts": 8229, + "server/src/__tests__/company-skills-catalog-service.test.ts": 7482, + "server/src/__tests__/company-skills-detail.test.ts": 4940, + "server/src/__tests__/company-skills-service.test.ts": 17289, + "server/src/__tests__/company-skills.test.ts": 1551, + "server/src/__tests__/config-file.test.ts": 270, + "server/src/__tests__/cursor-local-adapter-environment.test.ts": 343, + "server/src/__tests__/cursor-local-adapter.test.ts": 315, + "server/src/__tests__/cursor-local-execute.test.ts": 1075, + "server/src/__tests__/cursor-local-skill-injection.test.ts": 492, + "server/src/__tests__/cursor-local-skill-sync.test.ts": 498, + "server/src/__tests__/dashboard-service.test.ts": 4449, + "server/src/__tests__/decision-retention-service.test.ts": 5741, + "server/src/__tests__/decision-training.test.ts": 6474, + "server/src/__tests__/decision-wakeup.test.ts": 233, + "server/src/__tests__/decisions-service.test.ts": 6434, + "server/src/__tests__/dev-runner-output.test.ts": 232, + "server/src/__tests__/dev-runner-paths.test.ts": 141, + "server/src/__tests__/dev-runner-snapshot.test.ts": 1148, + "server/src/__tests__/dev-runner-worktree.test.ts": 213, + "server/src/__tests__/dev-server-status.test.ts": 140, + "server/src/__tests__/dev-watch-ignore.test.ts": 145, + "server/src/__tests__/docker-entrypoint.test.ts": 276, + "server/src/__tests__/document-annotations-service.test.ts": 5650, + "server/src/__tests__/documents-service.test.ts": 4497, + "server/src/__tests__/documents.test.ts": 611, + "server/src/__tests__/effective-run-config-fingerprints.test.ts": 253, + "server/src/__tests__/environment-config.test.ts": 1745, + "server/src/__tests__/environment-custom-image-terminal-ws.test.ts": 3025, + "server/src/__tests__/environment-custom-images-service.test.ts": 7289, + "server/src/__tests__/environment-execution-target.test.ts": 513, + "server/src/__tests__/environment-live-ssh.test.ts": 943, + "server/src/__tests__/environment-probe.test.ts": 1489, + "server/src/__tests__/environment-run-orchestrator.test.ts": 1013, + "server/src/__tests__/environment-runtime-driver-contract.test.ts": 5388, + "server/src/__tests__/environment-runtime.test.ts": 5862, + "server/src/__tests__/environment-service.test.ts": 4714, + "server/src/__tests__/environment-test-harness.test.ts": 460, + "server/src/__tests__/error-handler.test.ts": 442, + "server/src/__tests__/execution-lock-orphan-cleanup.test.ts": 5168, + "server/src/__tests__/execution-workspace-policy.test.ts": 484, + "server/src/__tests__/execution-workspaces-service.test.ts": 11057, + "server/src/__tests__/export-fidelity.test.ts": 4157, + "server/src/__tests__/external-objects-service.test.ts": 5386, + "server/src/__tests__/feedback-flush-controller.test.ts": 3756, + "server/src/__tests__/feedback-service.test.ts": 4651, + "server/src/__tests__/feedback-share-client.test.ts": 146, + "server/src/__tests__/file-resources.test.ts": 14085, + "server/src/__tests__/first-admin-claim.test.ts": 4124, + "server/src/__tests__/folders-service.test.ts": 6404, + "server/src/__tests__/forbidden-tokens.test.ts": 209, + "server/src/__tests__/gemini-local-adapter-environment.test.ts": 379, + "server/src/__tests__/gemini-local-adapter.test.ts": 330, + "server/src/__tests__/gemini-local-execute.test.ts": 472, + "server/src/__tests__/gemini-local-skill-sync.test.ts": 285, + "server/src/__tests__/git-credentials.test.ts": 1528, + "server/src/__tests__/google-sheets-gallery.test.ts": 994, + "server/src/__tests__/grok-local-skill-sync.test.ts": 273, + "server/src/__tests__/heartbeat-accepted-plan-workspace-refresh.test.ts": 8428, + "server/src/__tests__/heartbeat-active-run-output-watchdog.test.ts": 53902, + "server/src/__tests__/heartbeat-agent-session-message.test.ts": 2466, + "server/src/__tests__/heartbeat-archived-company-guard.test.ts": 5273, + "server/src/__tests__/heartbeat-auto-checkout.test.ts": 1122, + "server/src/__tests__/heartbeat-comment-wake-batching.test.ts": 8686, + "server/src/__tests__/heartbeat-context-summary.test.ts": 1645, + "server/src/__tests__/heartbeat-cost-accounting.test.ts": 1621, + "server/src/__tests__/heartbeat-issue-rewake-throttle.test.ts": 6959, + "server/src/__tests__/heartbeat-ledger-billing-code.test.ts": 1758, + "server/src/__tests__/heartbeat-list.test.ts": 4922, + "server/src/__tests__/heartbeat-local-environment.test.ts": 10973, + "server/src/__tests__/heartbeat-lock-release-on-reassignment.test.ts": 5081, + "server/src/__tests__/heartbeat-managed-clone-credentials.test.ts": 1255, + "server/src/__tests__/heartbeat-model-profile.test.ts": 1678, + "server/src/__tests__/heartbeat-plugin-environment.test.ts": 5596, + "server/src/__tests__/heartbeat-project-env.test.ts": 1685, + "server/src/__tests__/heartbeat-referenced-projects.test.ts": 6589, + "server/src/__tests__/heartbeat-remote-referenced-projects.test.ts": 1714, + "server/src/__tests__/heartbeat-responsible-user-invariant.test.ts": 7223, + "server/src/__tests__/heartbeat-retry-scheduling.test.ts": 10283, + "server/src/__tests__/heartbeat-run-log.test.ts": 1604, + "server/src/__tests__/heartbeat-run-status-payload.test.ts": 1639, + "server/src/__tests__/heartbeat-run-summary.test.ts": 435, + "server/src/__tests__/heartbeat-runtime-mcp-servers.test.ts": 5094, + "server/src/__tests__/heartbeat-runtime-skills.test.ts": 6782, + "server/src/__tests__/heartbeat-runtime-state.test.ts": 5485, + "server/src/__tests__/heartbeat-scheduling-suppression.test.ts": 1603, + "server/src/__tests__/heartbeat-stale-queue-invalidation.test.ts": 18475, + "server/src/__tests__/heartbeat-start-lock.test.ts": 437, + "server/src/__tests__/heartbeat-timer-wake-session-reset-pf4.test.ts": 1137, + "server/src/__tests__/heartbeat-workspace-branch-containment.test.ts": 8615, + "server/src/__tests__/heartbeat-workspace-busy.test.ts": 9802, + "server/src/__tests__/heartbeat-workspace-finalize-branch.test.ts": 7704, + "server/src/__tests__/heartbeat-workspace-ready-comment.test.ts": 1154, + "server/src/__tests__/heartbeat-workspace-session.test.ts": 1365, + "server/src/__tests__/heartbeat-worktree-suppression.test.ts": 6472, + "server/src/__tests__/heartbeat-zombie-guard.test.ts": 1704, + "server/src/__tests__/hire-hook.test.ts": 986, + "server/src/__tests__/http-log-policy.test.ts": 228, + "server/src/__tests__/http-log-redaction.test.ts": 167, + "server/src/__tests__/inbox-dismissals.test.ts": 7200, + "server/src/__tests__/instance-settings-managed-overlay.test.ts": 909, + "server/src/__tests__/instance-settings-service.test.ts": 915, + "server/src/__tests__/instrumentation.test.ts": 189, + "server/src/__tests__/invite-join-grants.test.ts": 592, + "server/src/__tests__/invite-rate-limit.test.ts": 218, + "server/src/__tests__/invite-token-entropy.test.ts": 1922, + "server/src/__tests__/issue-blocker-attention.test.ts": 6309, + "server/src/__tests__/issue-comment-redaction.test.ts": 6354, + "server/src/__tests__/issue-continuation-summary.test.ts": 932, + "server/src/__tests__/issue-execution-policy.test.ts": 462, + "server/src/__tests__/issue-goal-fallback.test.ts": 204, + "server/src/__tests__/issue-liveness.test.ts": 444, + "server/src/__tests__/issue-monitor-scheduler.test.ts": 10856, + "server/src/__tests__/issue-recovery-actions.test.ts": 7768, + "server/src/__tests__/issue-references-service.test.ts": 4311, + "server/src/__tests__/issue-rewake-throttle.test.ts": 209, + "server/src/__tests__/issue-thread-interactions-service.test.ts": 9148, + "server/src/__tests__/issue-thread-interactions-telemetry.test.ts": 4652, + "server/src/__tests__/issue-tree-control-service-unit.test.ts": 904, + "server/src/__tests__/issue-tree-control-service.test.ts": 6218, + "server/src/__tests__/issues-list-query-parsing.test.ts": 1797, + "server/src/__tests__/issues-user-context.test.ts": 1136, + "server/src/__tests__/join-request-dedupe.test.ts": 203, + "server/src/__tests__/json-schema-secret-refs.test.ts": 142, + "server/src/__tests__/live-events-ws.test.ts": 549, + "server/src/__tests__/log-redaction.test.ts": 1177, + "server/src/__tests__/logger-tz.test.ts": 158, + "server/src/__tests__/managed-config.test.ts": 414, + "server/src/__tests__/mcp-http.test.ts": 206, + "server/src/__tests__/monthly-spend-service.test.ts": 1193, + "server/src/__tests__/openclaw-gateway-adapter.test.ts": 234, + "server/src/__tests__/opencode-local-adapter.test.ts": 196, + "server/src/__tests__/opencode-local-skill-sync.test.ts": 186, + "server/src/__tests__/paperclip-env.test.ts": 302, + "server/src/__tests__/paperclip-skill-utils.test.ts": 252, + "server/src/__tests__/parse-status-filter.test.ts": 1335, + "server/src/__tests__/pi-local-adapter-environment.test.ts": 393, + "server/src/__tests__/pi-local-execute.test.ts": 334, + "server/src/__tests__/pi-local-skill-sync.test.ts": 1133, + "server/src/__tests__/pipelines-service.test.ts": 7263, + "server/src/__tests__/plugin-access-authorization-host-services.test.ts": 5438, + "server/src/__tests__/plugin-agent-sessions.test.ts": 1682, + "server/src/__tests__/plugin-config-startup-delivery.test.ts": 4023, + "server/src/__tests__/plugin-database.test.ts": 4601, + "server/src/__tests__/plugin-dev-watcher.test.ts": 508, + "server/src/__tests__/plugin-environment-driver-ready-recovery.test.ts": 2887, + "server/src/__tests__/plugin-environment-driver-seam.test.ts": 541, + "server/src/__tests__/plugin-execution-workspace-bridge.test.ts": 229, + "server/src/__tests__/plugin-host-services-span.test.ts": 1789, + "server/src/__tests__/plugin-install-autobuild.test.ts": 7316, + "server/src/__tests__/plugin-install-guard.test.ts": 1163, + "server/src/__tests__/plugin-lifecycle-restart.test.ts": 724, + "server/src/__tests__/plugin-local-folders.test.ts": 277, + "server/src/__tests__/plugin-managed-agents.test.ts": 5174, + "server/src/__tests__/plugin-managed-routines.test.ts": 5685, + "server/src/__tests__/plugin-managed-skills.test.ts": 6856, + "server/src/__tests__/plugin-orchestration-apis.test.ts": 8002, + "server/src/__tests__/plugin-sandbox-provider-config-validation.test.ts": 296, + "server/src/__tests__/plugin-sdk-orchestration-contract.test.ts": 454, + "server/src/__tests__/plugin-sdk-testing.test.ts": 272, + "server/src/__tests__/plugin-secrets-handler.test.ts": 4609, + "server/src/__tests__/plugin-telemetry-bridge.test.ts": 1224, + "server/src/__tests__/plugin-tenant-isolation.test.ts": 5093, + "server/src/__tests__/plugin-tool-dispatcher-pluginDbId.test.ts": 960, + "server/src/__tests__/plugin-ui-static.test.ts": 1092, + "server/src/__tests__/plugin-worker-manager.test.ts": 1327, + "server/src/__tests__/private-hostname-guard.test.ts": 301, + "server/src/__tests__/productivity-review-service.test.ts": 9612, + "server/src/__tests__/project-icon-persistence.test.ts": 4155, + "server/src/__tests__/project-list-metrics.test.ts": 950, + "server/src/__tests__/project-shortname-resolution.test.ts": 1177, + "server/src/__tests__/qa-routine-secrets-e2e.test.ts": 5304, + "server/src/__tests__/quota-windows-service.test.ts": 215, + "server/src/__tests__/quota-windows.test.ts": 366, + "server/src/__tests__/recovery-classifiers.test.ts": 1574, + "server/src/__tests__/recovery-observability.test.ts": 4389, + "server/src/__tests__/recovery-stale-issue-lock-sweep.test.ts": 9167, + "server/src/__tests__/redact-sensitive.test.ts": 144, + "server/src/__tests__/remote-http-endpoint-guard.test.ts": 635, + "server/src/__tests__/routable-blocked.test.ts": 210, + "server/src/__tests__/routine-run-telemetry.test.ts": 5025, + "server/src/__tests__/routines-service.test.ts": 13035, + "server/src/__tests__/run-continuations.test.ts": 808, + "server/src/__tests__/run-liveness.test.ts": 143, + "server/src/__tests__/runtime-api.test.ts": 223, + "server/src/__tests__/sandbox-provider-runtime.test.ts": 144, + "server/src/__tests__/secret-provider-registry.test.ts": 187, + "server/src/__tests__/secrets-service-user-secret-owner-scoped.test.ts": 4753, + "server/src/__tests__/secrets-service.test.ts": 7274, + "server/src/__tests__/server-info.test.ts": 846, + "server/src/__tests__/server-package-build-script.test.ts": 427, + "server/src/__tests__/server-startup-feedback-export.test.ts": 1249, + "server/src/__tests__/shared-telemetry-events.test.ts": 230, + "server/src/__tests__/skills-catalog-service.test.ts": 260, + "server/src/__tests__/smoke-lab.test.ts": 6063, + "server/src/__tests__/source-trust.test.ts": 5476, + "server/src/__tests__/static-index-html.test.ts": 294, + "server/src/__tests__/status-card-update-engine.test.ts": 385, + "server/src/__tests__/status-cards.test.ts": 8233, + "server/src/__tests__/storage-local-provider.test.ts": 234, + "server/src/__tests__/summary-slots.test.ts": 6587, + "server/src/__tests__/task-watchdogs-classifier.test.ts": 762, + "server/src/__tests__/task-watchdogs-scheduler.test.ts": 6386, + "server/src/__tests__/teams-catalog-install-no-overrides.test.ts": 9170, + "server/src/__tests__/teams-catalog-service.test.ts": 461, + "server/src/__tests__/telemetry-client-flush.test.ts": 1208, + "server/src/__tests__/tool-access-policy-service.test.ts": 6548, + "server/src/__tests__/tool-access-service.test.ts": 14498, + "server/src/__tests__/tool-content-guards.test.ts": 240, + "server/src/__tests__/tool-gateway-service.test.ts": 6241, + "server/src/__tests__/tool-gateway.test.ts": 24463, + "server/src/__tests__/tool-oauth-legacy-backfill.test.ts": 7051, + "server/src/__tests__/trust-preset-resolver.test.ts": 409, + "server/src/__tests__/trust-proxy.test.ts": 168, + "server/src/__tests__/ui-branding.test.ts": 223, + "server/src/__tests__/version.test.ts": 229, + "server/src/__tests__/vite-html-renderer.test.ts": 136, + "server/src/__tests__/work-products.test.ts": 521, + "server/src/__tests__/work-timeline-service.test.ts": 5712, + "server/src/__tests__/workspace-instance-cleanup.test.ts": 265, + "server/src/__tests__/workspace-runtime.test.ts": 37401, + "server/src/__tests__/worktree-config.test.ts": 280, + "server/src/__tests__/write-path-membership.test.ts": 736 } -} \ No newline at end of file +}