diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index df7b76c871..5c9f483db5 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -149,19 +149,26 @@ 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. + # 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. - group: general-server - group_label: server (1/3) + group_label: server (1/4) shard_index: 0 - shard_count: 3 + shard_count: 4 - group: general-server - group_label: server (2/3) + group_label: server (2/4) shard_index: 1 - shard_count: 3 + shard_count: 4 - group: general-server - group_label: server (3/3) + group_label: server (3/4) shard_index: 2 - shard_count: 3 + shard_count: 4 + - group: general-server + group_label: server (4/4) + shard_index: 3 + shard_count: 4 - 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 7d0da8ea99..9b69130527 100644 --- a/scripts/__tests__/run-vitest-stable-shard.test.mjs +++ b/scripts/__tests__/run-vitest-stable-shard.test.mjs @@ -28,7 +28,7 @@ function dryRunJson(args) { return JSON.parse(result.stdout); } -const SHARD_COUNT = 3; +const SHARD_COUNT = 4; test("the general-server shards form a complete, non-overlapping partition", () => { const shards = Array.from({ length: SHARD_COUNT }, (_, index) => diff --git a/scripts/general-server-shard-durations.json b/scripts/general-server-shard-durations.json index 8b73e9318c..91f8729883 100644 --- a/scripts/general-server-shard-durations.json +++ b/scripts/general-server-shard-durations.json @@ -1,246 +1,306 @@ { - "$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 29262068391, 2026-07-13). Suites missing here get the median weight, so the manifest only needs occasional refreshes: pull the 'Run grouped general test suites' logs from a recent PR run and record each suite's vitest-reported duration.", + "$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.", "unit": "ms", "durations": { - "server/src/__tests__/access-service.test.ts": 2303, - "server/src/__tests__/access-validators.test.ts": 7, - "server/src/__tests__/activity-service.test.ts": 2390, - "server/src/__tests__/adapter-models.test.ts": 61, - "server/src/__tests__/adapter-registry.test.ts": 17, - "server/src/__tests__/adapter-session-codecs.test.ts": 10, - "server/src/__tests__/agent-auth-jwt.test.ts": 20, - "server/src/__tests__/agent-auth-middleware.test.ts": 66, - "server/src/__tests__/agent-instructions-service.test.ts": 58, - "server/src/__tests__/agent-invokability.test.ts": 5, - "server/src/__tests__/agent-permissions-service.test.ts": 6, - "server/src/__tests__/agent-shortname-collision.test.ts": 5, - "server/src/__tests__/agent-skill-contract.test.ts": 6, - "server/src/__tests__/agents-pending-approval-config.test.ts": 2182, - "server/src/__tests__/agents-service-clear-error.test.ts": 2258, - "server/src/__tests__/agents-service-secret-bindings.test.ts": 2367, - "server/src/__tests__/api-compression.test.ts": 77, - "server/src/__tests__/app-hmr-port.test.ts": 4, - "server/src/__tests__/app-private-hostname-gate.test.ts": 4, - "server/src/__tests__/app-vite-dev-routing.test.ts": 4, - "server/src/__tests__/approvals-service.test.ts": 12, - "server/src/__tests__/attachment-types.test.ts": 9, - "server/src/__tests__/attention-service.test.ts": 2626, - "server/src/__tests__/authorization-service.test.ts": 2824, - "server/src/__tests__/aws-secrets-manager-provider.test.ts": 39, - "server/src/__tests__/better-auth.test.ts": 9, - "server/src/__tests__/board-claim.test.ts": 2121, - "server/src/__tests__/board-mutation-guard.test.ts": 50, - "server/src/__tests__/body-limits.test.ts": 3, - "server/src/__tests__/budgets-service.test.ts": 2211, - "server/src/__tests__/built-in-agents.test.ts": 6157, - "server/src/__tests__/change-consent-gate.test.ts": 2256, - "server/src/__tests__/claude-local-adapter-environment.test.ts": 372, - "server/src/__tests__/claude-local-adapter.test.ts": 8, - "server/src/__tests__/claude-local-execute.test.ts": 2771, - "server/src/__tests__/claude-local-skill-sync.test.ts": 21, - "server/src/__tests__/cleanup-removal-service.test.ts": 2248, - "server/src/__tests__/cloud-upstreams.test.ts": 2576, - "server/src/__tests__/codex-auth-reconciliation.test.ts": 46, - "server/src/__tests__/codex-local-adapter.test.ts": 9, - "server/src/__tests__/codex-local-execute.test.ts": 974, - "server/src/__tests__/codex-local-skill-injection.test.ts": 29, - "server/src/__tests__/codex-local-skill-sync.test.ts": 18, - "server/src/__tests__/companies-service.test.ts": 3104, - "server/src/__tests__/company-artifacts-service.test.ts": 2531, - "server/src/__tests__/company-search-service.test.ts": 3127, - "server/src/__tests__/company-skill-test-runs-service.test.ts": 3331, - "server/src/__tests__/company-skills-catalog-service.test.ts": 3584, - "server/src/__tests__/company-skills-detail.test.ts": 2258, - "server/src/__tests__/company-skills-service.test.ts": 5470, - "server/src/__tests__/company-skills.test.ts": 33, - "server/src/__tests__/cursor-local-adapter-environment.test.ts": 232, - "server/src/__tests__/cursor-local-adapter.test.ts": 11, - "server/src/__tests__/cursor-local-execute.test.ts": 1028, - "server/src/__tests__/cursor-local-skill-injection.test.ts": 15, - "server/src/__tests__/cursor-local-skill-sync.test.ts": 22, - "server/src/__tests__/dashboard-service.test.ts": 2222, - "server/src/__tests__/dev-runner-output.test.ts": 25, - "server/src/__tests__/dev-runner-paths.test.ts": 4, - "server/src/__tests__/dev-runner-snapshot.test.ts": 8, - "server/src/__tests__/dev-runner-worktree.test.ts": 7, - "server/src/__tests__/dev-server-status.test.ts": 7, - "server/src/__tests__/dev-watch-ignore.test.ts": 7, - "server/src/__tests__/docker-entrypoint.test.ts": 39, - "server/src/__tests__/document-annotations-service.test.ts": 2528, - "server/src/__tests__/documents-service.test.ts": 2253, - "server/src/__tests__/documents.test.ts": 4, - "server/src/__tests__/effective-run-config-fingerprints.test.ts": 10, - "server/src/__tests__/environment-config.test.ts": 11, - "server/src/__tests__/environment-custom-image-terminal-ws.test.ts": 2566, - "server/src/__tests__/environment-custom-images-service.test.ts": 3889, - "server/src/__tests__/environment-execution-target.test.ts": 7, - "server/src/__tests__/environment-live-ssh.test.ts": 717, - "server/src/__tests__/environment-probe.test.ts": 12, - "server/src/__tests__/environment-run-orchestrator.test.ts": 13, - "server/src/__tests__/environment-runtime-driver-contract.test.ts": 2723, - "server/src/__tests__/environment-runtime.test.ts": 3287, - "server/src/__tests__/environment-service.test.ts": 2266, - "server/src/__tests__/environment-test-harness.test.ts": 14, - "server/src/__tests__/error-handler.test.ts": 12, - "server/src/__tests__/execution-lock-orphan-cleanup.test.ts": 2333, - "server/src/__tests__/execution-workspace-policy.test.ts": 9, - "server/src/__tests__/execution-workspaces-service.test.ts": 6035, - "server/src/__tests__/external-objects-service.test.ts": 2282, - "server/src/__tests__/feedback-flush-controller.test.ts": 4, - "server/src/__tests__/feedback-service.test.ts": 2520, - "server/src/__tests__/feedback-share-client.test.ts": 9, - "server/src/__tests__/file-resources.test.ts": 4757, - "server/src/__tests__/first-admin-claim.test.ts": 2117, - "server/src/__tests__/forbidden-tokens.test.ts": 6, - "server/src/__tests__/gemini-local-adapter-environment.test.ts": 80, - "server/src/__tests__/gemini-local-adapter.test.ts": 9, - "server/src/__tests__/gemini-local-execute.test.ts": 220, - "server/src/__tests__/gemini-local-skill-sync.test.ts": 18, - "server/src/__tests__/grok-local-skill-sync.test.ts": 15, - "server/src/__tests__/heartbeat-accepted-plan-workspace-refresh.test.ts": 5034, - "server/src/__tests__/heartbeat-active-run-output-watchdog.test.ts": 49231, - "server/src/__tests__/heartbeat-archived-company-guard.test.ts": 2303, - "server/src/__tests__/heartbeat-auto-checkout.test.ts": 5, - "server/src/__tests__/heartbeat-comment-wake-batching.test.ts": 5030, - "server/src/__tests__/heartbeat-context-summary.test.ts": 8, - "server/src/__tests__/heartbeat-issue-rewake-throttle.test.ts": 3198, - "server/src/__tests__/heartbeat-list.test.ts": 2240, - "server/src/__tests__/heartbeat-local-environment.test.ts": 2504, - "server/src/__tests__/heartbeat-lock-release-on-reassignment.test.ts": 2129, - "server/src/__tests__/heartbeat-model-profile.test.ts": 6, - "server/src/__tests__/heartbeat-plugin-environment.test.ts": 2310, - "server/src/__tests__/heartbeat-project-env.test.ts": 24, - "server/src/__tests__/heartbeat-responsible-user-invariant.test.ts": 6285, - "server/src/__tests__/heartbeat-retry-scheduling.test.ts": 3373, - "server/src/__tests__/heartbeat-run-log.test.ts": 5, - "server/src/__tests__/heartbeat-run-summary.test.ts": 6, - "server/src/__tests__/heartbeat-runtime-skills.test.ts": 2681, - "server/src/__tests__/heartbeat-runtime-state.test.ts": 2322, - "server/src/__tests__/heartbeat-scheduling-suppression.test.ts": 5, - "server/src/__tests__/heartbeat-stale-queue-invalidation.test.ts": 11573, - "server/src/__tests__/heartbeat-start-lock.test.ts": 8, - "server/src/__tests__/heartbeat-timer-wake-session-reset-pf4.test.ts": 6, - "server/src/__tests__/heartbeat-workspace-branch-containment.test.ts": 6144, - "server/src/__tests__/heartbeat-workspace-finalize-branch.test.ts": 3599, - "server/src/__tests__/heartbeat-workspace-session.test.ts": 185, - "server/src/__tests__/heartbeat-worktree-suppression.test.ts": 2665, - "server/src/__tests__/heartbeat-zombie-guard.test.ts": 5, - "server/src/__tests__/hire-hook.test.ts": 14, - "server/src/__tests__/http-log-policy.test.ts": 5, - "server/src/__tests__/inbox-dismissals.test.ts": 2110, - "server/src/__tests__/instance-settings-service.test.ts": 15, - "server/src/__tests__/instrumentation.test.ts": 27, - "server/src/__tests__/invite-join-grants.test.ts": 6, - "server/src/__tests__/issue-blocker-attention.test.ts": 3329, - "server/src/__tests__/issue-comment-redaction.test.ts": 2383, - "server/src/__tests__/issue-continuation-summary.test.ts": 6, - "server/src/__tests__/issue-execution-policy.test.ts": 35, - "server/src/__tests__/issue-goal-fallback.test.ts": 5, - "server/src/__tests__/issue-liveness.test.ts": 14, - "server/src/__tests__/issue-monitor-scheduler.test.ts": 6810, - "server/src/__tests__/issue-recovery-actions.test.ts": 3556, - "server/src/__tests__/issue-references-service.test.ts": 2184, - "server/src/__tests__/issue-rewake-throttle.test.ts": 7, - "server/src/__tests__/issue-thread-interactions-service.test.ts": 3053, - "server/src/__tests__/issue-thread-interactions-telemetry.test.ts": 2209, - "server/src/__tests__/issue-tree-control-service-unit.test.ts": 6, - "server/src/__tests__/issue-tree-control-service.test.ts": 2498, - "server/src/__tests__/issues-list-query-parsing.test.ts": 42, - "server/src/__tests__/issues-user-context.test.ts": 5, - "server/src/__tests__/join-request-dedupe.test.ts": 4, - "server/src/__tests__/json-schema-secret-refs.test.ts": 4, - "server/src/__tests__/live-events-ws.test.ts": 21, - "server/src/__tests__/log-redaction.test.ts": 6, - "server/src/__tests__/logger-tz.test.ts": 24, - "server/src/__tests__/monthly-spend-service.test.ts": 29, - "server/src/__tests__/openclaw-gateway-adapter.test.ts": 52, - "server/src/__tests__/opencode-local-adapter.test.ts": 8, - "server/src/__tests__/opencode-local-skill-sync.test.ts": 17, - "server/src/__tests__/paperclip-env.test.ts": 5, - "server/src/__tests__/paperclip-skill-utils.test.ts": 18, - "server/src/__tests__/parse-status-filter.test.ts": 6, - "server/src/__tests__/pi-local-adapter-environment.test.ts": 128, - "server/src/__tests__/pi-local-execute.test.ts": 228, - "server/src/__tests__/pi-local-skill-sync.test.ts": 17, - "server/src/__tests__/pipelines-service.test.ts": 4478, - "server/src/__tests__/plugin-access-authorization-host-services.test.ts": 2259, - "server/src/__tests__/plugin-database.test.ts": 2422, - "server/src/__tests__/plugin-dev-watcher.test.ts": 67, - "server/src/__tests__/plugin-environment-driver-seam.test.ts": 55, - "server/src/__tests__/plugin-execution-workspace-bridge.test.ts": 7, - "server/src/__tests__/plugin-install-autobuild.test.ts": 4336, - "server/src/__tests__/plugin-lifecycle-restart.test.ts": 7, - "server/src/__tests__/plugin-local-folders.test.ts": 63, - "server/src/__tests__/plugin-managed-agents.test.ts": 2407, - "server/src/__tests__/plugin-managed-routines.test.ts": 2371, - "server/src/__tests__/plugin-managed-skills.test.ts": 2600, - "server/src/__tests__/plugin-orchestration-apis.test.ts": 2531, - "server/src/__tests__/plugin-sdk-orchestration-contract.test.ts": 13, - "server/src/__tests__/plugin-sdk-testing.test.ts": 10, - "server/src/__tests__/plugin-secrets-handler.test.ts": 5, - "server/src/__tests__/plugin-telemetry-bridge.test.ts": 36, - "server/src/__tests__/plugin-tenant-isolation.test.ts": 2264, - "server/src/__tests__/plugin-tool-dispatcher-pluginDbId.test.ts": 12, - "server/src/__tests__/plugin-worker-manager.test.ts": 355, - "server/src/__tests__/private-hostname-guard.test.ts": 39, - "server/src/__tests__/productivity-review-service.test.ts": 5180, - "server/src/__tests__/project-icon-persistence.test.ts": 2091, - "server/src/__tests__/project-list-metrics.test.ts": 5, - "server/src/__tests__/project-shortname-resolution.test.ts": 5, - "server/src/__tests__/qa-routine-secrets-e2e.test.ts": 2364, - "server/src/__tests__/quota-windows-service.test.ts": 7, - "server/src/__tests__/quota-windows.test.ts": 59, - "server/src/__tests__/recovery-classifiers.test.ts": 9, - "server/src/__tests__/recovery-stale-issue-lock-sweep.test.ts": 2250, - "server/src/__tests__/redact-sensitive.test.ts": 7, - "server/src/__tests__/routine-run-telemetry.test.ts": 2157, - "server/src/__tests__/routines-service.test.ts": 5411, - "server/src/__tests__/run-continuations.test.ts": 7, - "server/src/__tests__/run-liveness.test.ts": 11, - "server/src/__tests__/runtime-api.test.ts": 6, - "server/src/__tests__/sandbox-provider-runtime.test.ts": 9, - "server/src/__tests__/secret-provider-registry.test.ts": 6, - "server/src/__tests__/secrets-service.test.ts": 3281, - "server/src/__tests__/server-info.test.ts": 300, - "server/src/__tests__/server-package-build-script.test.ts": 3, - "server/src/__tests__/server-startup-feedback-export.test.ts": 27, - "server/src/__tests__/shared-telemetry-events.test.ts": 8, - "server/src/__tests__/skills-catalog-service.test.ts": 39, - "server/src/__tests__/source-trust.test.ts": 2204, - "server/src/__tests__/static-index-html.test.ts": 28, - "server/src/__tests__/storage-local-provider.test.ts": 23, - "server/src/__tests__/task-watchdogs-classifier.test.ts": 9, - "server/src/__tests__/task-watchdogs-scheduler.test.ts": 3245, - "server/src/__tests__/teams-catalog-install-no-overrides.test.ts": 2995, - "server/src/__tests__/teams-catalog-service.test.ts": 75, - "server/src/__tests__/telemetry-client-flush.test.ts": 12, - "server/src/__tests__/trust-preset-resolver.test.ts": 10, - "server/src/__tests__/trust-proxy.test.ts": 11, - "server/src/__tests__/ui-branding.test.ts": 6, - "server/src/__tests__/version.test.ts": 11, - "server/src/__tests__/vite-html-renderer.test.ts": 6, - "server/src/__tests__/work-products.test.ts": 6, - "server/src/__tests__/work-timeline-service.test.ts": 2541, - "server/src/__tests__/workspace-runtime.test.ts": 28685, - "server/src/__tests__/worktree-config.test.ts": 29, - "server/src/adapters/claude-agent-id-header.test.ts": 6, - "server/src/adapters/http/execute.test.ts": 7, - "server/src/middleware/cloud-tenant-actor.test.ts": 10, - "server/src/services/adapter-models-env.test.ts": 5, - "server/src/services/adapter-registry-bootstrap.reconcile.test.ts": 7, - "server/src/services/adapter-registry-bootstrap.test.ts": 7, - "server/src/services/environment-custom-image-terminal-sessions.test.ts": 11, - "server/src/services/execution-allowlist.test.ts": 6, - "server/src/services/execution-policy-bootstrap.test.ts": 15, - "server/src/services/heartbeat-run-runtime-status.test.ts": 9, - "server/src/services/heartbeat-stop-metadata.test.ts": 6, - "server/src/services/issue-thread-interactions.test.ts": 757, - "server/src/services/recovery/model-profile-hint.test.ts": 4, - "server/src/services/recovery/service.pause-durability.test.ts": 4, - "server/src/services/recovery/successful-run-handoff.test.ts": 10, - "server/src/services/responsible-user-denial-run-outcomes.test.ts": 8, - "server/src/services/routines-formatter-cache.test.ts": 1029, - "server/src/services/run-scratch.test.ts": 16, - "server/src/services/session-workspace-cwd.test.ts": 4 + "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 } -} +} \ No newline at end of file