ci: shard general-server tests 4 ways (#10663)

## Thinking Path

> - Paperclip is the open source app people use to manage AI agents for
work.
> - Pull request CI must give contributors fast and stable feedback.
> - The `general-server` Vitest lane runs many single-worker server
suites.
> - A recent completed PR run showed this lane as the slowest completed
check.
> - Three shards still left one runner with the largest share of work.
> - This pull request splits that lane into four duration-balanced
shards.
> - The benefit is a shorter critical path for the same server test
coverage.

## Linked Issues or Issue Description

No public GitHub issue exists for this CI maintenance change.

**Pre-submission checklist**

- I confirmed this improves existing behavior. It does not add a new
command, endpoint, or concept.
- I searched open public issues and pull requests for related CI
sharding work.

**What existing behavior does this improve?**

The pull request workflow's `general-server` Vitest lane.

**Subsystem affected**

Cross-cutting. This affects GitHub Actions CI and the Vitest shard
duration manifest.

**Current behavior**

The `general-server` lane uses three shards. The server suites now total
about 880 seconds of serial Vitest wall time. The slowest shard was
about 313 seconds in the measured run.

**Proposed behavior**

The `general-server` lane uses four shards. Each shard receives about
220 seconds of predicted suite weight from the refreshed duration
manifest.

**Reason and benefit**

The slowest PR check controls how soon a reviewer can trust the PR. Four
balanced shards reduce the slowest `general-server` shard while keeping
the same suite selection rules.

**Breaking changes**

None. This only changes CI partitioning and duration data for existing
test suites.

**Additional context**

Related public searches found no exact open issue or pull request for
this `general-server` sharding change.

## What Changed

- Split the `general-server` CI matrix from three shards to four shards.
- Refreshed `scripts/general-server-shard-durations.json` with wall-time
weights from a recent completed PR run.

## Verification

- `node --test scripts/__tests__/run-vitest-stable-shard.test.mjs`
- `git diff --check origin/master...HEAD`
- Dry-ran the four `general-server` shards locally during
implementation. The partition covers 300 unique suites with about 220.56
seconds of predicted weight per shard.
- Ran a local sensitive-data scan before push. It found only test
filenames that contain words such as `secret` or `token`, not credential
values.

## Risks

Low risk. The main risk is that the duration manifest becomes stale as
suite costs move. Missing suites fall back to the median weight, so the
lane still runs if the manifest is incomplete.

## Model Used

OpenAI Codex, GPT-5, with tool use and local command execution.

## Checklist

- [x] I have included a thinking path that traces from project context
to this change
- [x] I have specified the model used (with version and capability
details)
- [x] I have checked ROADMAP.md and confirmed this PR does not duplicate
planned core work
- [x] I have searched GitHub for duplicate or related PRs and linked
them above
- [x] I have either (a) linked existing issues with `Fixes: #` / `Closes
#` / `Refs #` OR (b) described the issue in-PR following the relevant
issue template
- [x] I have not referenced internal/instance-local Paperclip issues or
links (only public GitHub `#NNN` / `github.com/paperclipai/paperclip`
URLs)
- [x] My branch name describes the change (e.g. `docs/...`, `fix/...`)
and contains no internal Paperclip ticket id or instance-derived details
- [x] I have run tests locally and they pass
- [x] I have added or updated tests where applicable
- [x] I have updated relevant documentation to reflect my changes
- [x] I have considered and documented any risks above
- [x] All Paperclip CI gates are green
- [x] Greptile is 5/5 with no open P2s, recommendations, or follow-ups
- [x] I will address all Greptile and reviewer comments before
requesting merge

---------

Co-authored-by: Paperclip <noreply@paperclip.ing>
This commit is contained in:
Devin Foley 2026-08-01 19:03:28 -07:00 committed by GitHub
parent ec84eb7342
commit 8540ce2973
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 317 additions and 250 deletions

View File

@ -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

View File

@ -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) =>

View File

@ -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
}
}
}