Merge frozen master into work-folders base

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
DottaandPaperclip committed 2026-09-12 14:21:34 -05:00
commit b8bdef1954
15 files changed
+554 -182

No files matched your search

@@ -221,10 +221,12 @@ test("release verify workflow covers the same split test surface as stable PR ve
);
assert.match(verifyWorkflow, /pnpm -r typecheck/);
assert.match(verifyWorkflow, /pnpm build/);
assert.match(
verifyWorkflow,
/pnpm --filter @paperclipai\/paperclip-runner check:all/,
);
const runnerScripts = JSON.parse(readFileSync(path.join(repoRoot, "packages/paperclip-runner/package.json"), "utf8")).scripts;
const runnerChecks = [...verifyWorkflow.matchAll(/^ checks: (.+)$/gm)]
.flatMap(([, checks]) => checks.split(" "));
assert.deepEqual(runnerChecks, runnerScripts["check:all"].split(" && ")
.map((command) => command.replace(/^pnpm run /, "")));
assert.match(verifyWorkflow, /pnpm --filter @paperclipai\/paperclip-runner "\$check"/);
assert.match(verifyWorkflow, /runner_workflow_evals:/);
assert.match(verifyWorkflow, /runner_chaos_evals:/);
assert.match(
+60
View File
@@ -0,0 +1,60 @@
#!/usr/bin/env bash
# Build the real Docker target twice in a disposable copy of tracked source.
# Export only metadata, avoiding a multi-gigabyte test image in the daemon.
set -euo pipefail
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
probe_dir="$(mktemp -d "${TMPDIR:-/tmp}/paperclip-runner-cache.XXXXXX")"
trap 'rm -rf "$probe_dir"' EXIT
mkdir "$probe_dir/context"
cd "$repo_root"
git ls-files -z | tar -cf - --null -T - | tar -xf - -C "$probe_dir/context"
cd "$probe_dir/context"
export PROBE_DIR="$probe_dir"
cp Dockerfile "$probe_dir/cache-probe.Dockerfile"
cat >> "$probe_dir/cache-probe.Dockerfile" <<'DOCKER'
FROM runner-build AS cache-proof
RUN ./runner/target/release/paperclip-runnerd --build-metadata > /metadata.json
FROM scratch AS cache-proof-export
COPY --from=cache-proof /metadata.json /metadata.json
COPY --from=runner-plan /tmp/runner-recipe.json /recipe.json
FROM scratch AS recipe-proof-export
COPY --from=runner-plan /tmp/runner-recipe.json /recipe.json
DOCKER
build_proof() {
docker buildx build --file "$probe_dir/cache-probe.Dockerfile" --target cache-proof-export --output "type=local,dest=$probe_dir/$1" --progress plain . 2>&1 | tee "$probe_dir/$1.log"
}
build_proof baseline
python3 - <<'CHECK'
from pathlib import Path
p=Path('packages/paperclip-runner/runner/crates/runner-core/src/bin/paperclip-runnerd.rs')
s=p.read_text(); needle='paperclip-runner/runnerd-build-metadata/v1'
assert s.count(needle)==1
p.write_text(s.replace(needle,needle+'-cache-probe'))
CHECK
build_proof source-change
python3 - <<'CHECK'
import os,json,re
from pathlib import Path
root=Path(os.environ['PROBE_DIR'])
before=json.loads((root/'baseline/metadata.json').read_text())
after=json.loads((root/'source-change/metadata.json').read_text())
assert before['schema']=='paperclip-runner/runnerd-build-metadata/v1'
assert after['schema']==before['schema']+'-cache-probe'
assert (root/'baseline/recipe.json').read_bytes()==(root/'source-change/recipe.json').read_bytes()
log=(root/'source-change.log').read_text()
step=re.search(r'#(\d+) \[runner-deps[^\n]+ RUN cargo chef cook',log)[1]
assert f'#{step} CACHED' in log
assert 'Compiling paperclip-runner-core' in log
print('PASS: unchanged dependency recipe and cached cook layer; real binary changed.')
p=Path('packages/paperclip-runner/runner/Cargo.toml')
s=p.read_text(); assert 'serde_json = "1.0"' in s
p.write_text(s.replace('serde_json = "1.0"','serde_json = ">=1.0.0, <2.0.0"'))
CHECK
docker buildx build --file "$probe_dir/cache-probe.Dockerfile" --target recipe-proof-export --output "type=local,dest=$probe_dir/manifest-change" --progress plain .
python3 - <<'CHECK'
from pathlib import Path
import os
root=Path(os.environ['PROBE_DIR'])
assert (root/'source-change/recipe.json').read_bytes()!=(root/'manifest-change/recipe.json').read_bytes()
print('PASS: dependency declaration change invalidates the recipe.')
CHECK
+146 -135
View File
@@ -1,140 +1,151 @@
{
"$comment": "Per-suite wall-clock durations (ms) for the serialized route/authz vitest lane, used by scripts/run-vitest-stable.mjs to balance suites across the PR shard matrix. Sampled from a real PR run of .github/workflows/pr.yml (actions run 32012408876, 2026-08-17) by diffing consecutive '[test:run] <suite>' label timestamps in the 'Run serialized server test shard' logs - that captures each suite's true serial cost including the per-suite vitest spawn overhead, 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 serialized route/authz verification, used by scripts/run-vitest-stable.mjs in PR and release shards. Refreshed from successful Cloud readiness run 34705914878 (2026-09-12), jobs 103585803684, 103585803688, 103585803716, 103585803734, and 103585803754. Each weight spans consecutive [test:run] suite-start timestamps; the last suite ends at the first post-job cleanup timestamp. This includes each isolated Vitest process startup, import, collection, tests, and shutdown. All 145 suites are sampled exactly once. New or renamed suites use the median weight. Refresh from a successful complete run when observed shard times drift.",
"unit": "ms",
"durations": {
"server/src/__tests__/access-routes-permissions-upgrade.test.ts": 11105,
"server/src/__tests__/activity-routes.test.ts": 3181,
"server/src/__tests__/adapter-model-refresh-routes.test.ts": 3934,
"server/src/__tests__/adapter-routes-authz.test.ts": 4391,
"server/src/__tests__/adapter-routes.test.ts": 5343,
"server/src/__tests__/agent-action-audit-routes.test.ts": 11458,
"server/src/__tests__/agent-adapter-validation-routes.test.ts": 5758,
"server/src/__tests__/agent-cross-tenant-authz-routes.test.ts": 3818,
"server/src/__tests__/agent-device-login-routes.test.ts": 6486,
"server/src/__tests__/agent-instructions-routes.test.ts": 5532,
"server/src/__tests__/agent-live-run-routes.test.ts": 5498,
"server/src/__tests__/agent-permissions-routes.test.ts": 8978,
"server/src/__tests__/agent-secrets-routes.test.ts": 11780,
"server/src/__tests__/agent-skills-routes.test.ts": 7404,
"server/src/__tests__/agent-test-environment-routes.test.ts": 5845,
"server/src/__tests__/approval-routes-idempotency.test.ts": 6142,
"server/src/__tests__/assets.test.ts": 3555,
"server/src/__tests__/auth-routes.test.ts": 2094,
"server/src/__tests__/auth-session-route.test.ts": 3070,
"server/src/__tests__/authz-company-access.test.ts": 2893,
"server/src/__tests__/authz-existence-oracle-guard.test.ts": 1121,
"server/src/__tests__/authz-secret-context.test.ts": 2398,
"server/src/__tests__/board-chat-route-feature-flag.test.ts": 1032,
"server/src/__tests__/bootstrap-claim-routes.test.ts": 4748,
"server/src/__tests__/built-in-agent-routes.test.ts": 4015,
"server/src/__tests__/cases-routes.test.ts": 12174,
"server/src/__tests__/cli-auth-routes.test.ts": 5228,
"server/src/__tests__/cloud-routes.test.ts": 2146,
"server/src/__tests__/companies-route-cross-company-authz.test.ts": 4314,
"server/src/__tests__/companies-route-path-guard.test.ts": 3004,
"server/src/__tests__/company-branding-route.test.ts": 3920,
"server/src/__tests__/company-import-transfer-routes.test.ts": 8905,
"server/src/__tests__/company-portability-routes.test.ts": 3034,
"server/src/__tests__/company-portability.test.ts": 4800,
"server/src/__tests__/company-search-extract-routes.test.ts": 7621,
"server/src/__tests__/company-search-rate-limit-routes.test.ts": 7587,
"server/src/__tests__/company-skill-policy-routes.test.ts": 6894,
"server/src/__tests__/company-skills-import-authz-routes.test.ts": 12068,
"server/src/__tests__/company-skills-routes.test.ts": 7484,
"server/src/__tests__/company-user-directory-route.test.ts": 4728,
"server/src/__tests__/costs-service.test.ts": 8319,
"server/src/__tests__/decision-queues-routes.test.ts": 6956,
"server/src/__tests__/document-annotation-routes.test.ts": 4375,
"server/src/__tests__/environment-custom-image-routes.test.ts": 4387,
"server/src/__tests__/environment-instance-routes.test.ts": 4527,
"server/src/__tests__/environment-routes.test.ts": 4780,
"server/src/__tests__/environment-selection-route-guards.test.ts": 4208,
"server/src/__tests__/execution-workspaces-routes.test.ts": 3450,
"server/src/__tests__/express5-auth-wildcard.test.ts": 1105,
"server/src/__tests__/external-object-routes.test.ts": 6231,
"server/src/__tests__/folders-routes.test.ts": 2802,
"server/src/__tests__/health-dev-server-token.test.ts": 2541,
"server/src/__tests__/health.test.ts": 2090,
"server/src/__tests__/heartbeat-dependency-scheduling.test.ts": 14289,
"server/src/__tests__/heartbeat-issue-liveness-escalation.test.ts": 13747,
"server/src/__tests__/heartbeat-process-recovery.test.ts": 55336,
"server/src/__tests__/inbox-agent-policy-routes.test.ts": 10057,
"server/src/__tests__/inbox-archive-routes.test.ts": 9644,
"server/src/__tests__/instance-database-backups-routes.test.ts": 2962,
"server/src/__tests__/instance-settings-routes.test.ts": 5356,
"server/src/__tests__/invite-accept-existing-member.test.ts": 4812,
"server/src/__tests__/invite-accept-gateway-defaults.test.ts": 10423,
"server/src/__tests__/invite-accept-replay.test.ts": 5116,
"server/src/__tests__/invite-create-route.test.ts": 4640,
"server/src/__tests__/invite-expiry.test.ts": 7291,
"server/src/__tests__/invite-join-manager.test.ts": 7124,
"server/src/__tests__/invite-list-route.test.ts": 7580,
"server/src/__tests__/invite-logo-route.test.ts": 5104,
"server/src/__tests__/invite-onboarding-text.test.ts": 7095,
"server/src/__tests__/invite-rate-limit-route.test.ts": 7446,
"server/src/__tests__/invite-summary-route.test.ts": 7598,
"server/src/__tests__/invite-test-resolution-route.test.ts": 6135,
"server/src/__tests__/invite-url-public-base-url.test.ts": 3482,
"server/src/__tests__/issue-activity-events-routes.test.ts": 6254,
"server/src/__tests__/issue-agent-mutation-ownership-routes.test.ts": 13283,
"server/src/__tests__/issue-assigned-backlog-contract-routes.test.ts": 5442,
"server/src/__tests__/issue-assignee-invokability-routes.test.ts": 4602,
"server/src/__tests__/issue-attachment-routes.test.ts": 5267,
"server/src/__tests__/issue-blocker-diagnostics-routes.test.ts": 10902,
"server/src/__tests__/issue-closed-workspace-routes.test.ts": 6589,
"server/src/__tests__/issue-comment-attribution-audit-routes.test.ts": 11053,
"server/src/__tests__/issue-comment-cancel-routes.test.ts": 4687,
"server/src/__tests__/issue-comment-reopen-routes.test.ts": 4009,
"server/src/__tests__/issue-create-deduplication-routes.test.ts": 11885,
"server/src/__tests__/issue-dependency-wakeups-routes.test.ts": 5701,
"server/src/__tests__/issue-document-restore-routes.test.ts": 5902,
"server/src/__tests__/issue-execution-policy-routes.test.ts": 6571,
"server/src/__tests__/issue-feedback-routes.test.ts": 3978,
"server/src/__tests__/issue-identifier-routes.test.ts": 11276,
"server/src/__tests__/issue-list-assignee-filter-routes.test.ts": 12518,
"server/src/__tests__/issue-list-updatedsince-filter-routes.test.ts": 10919,
"server/src/__tests__/issue-onboarding-first-task-routes.test.ts": 12493,
"server/src/__tests__/issue-scheduled-retry-routes.test.ts": 11559,
"server/src/__tests__/issue-stale-execution-lock-routes.test.ts": 11281,
"server/src/__tests__/issue-stalled-review-decision-routes.test.ts": 11437,
"server/src/__tests__/issue-subtree-diagnostics-routes.test.ts": 11043,
"server/src/__tests__/issue-telemetry-routes.test.ts": 4745,
"server/src/__tests__/issue-thread-interaction-routes.test.ts": 8825,
"server/src/__tests__/issue-tree-control-routes.test.ts": 2689,
"server/src/__tests__/issue-update-comment-wakeup-routes.test.ts": 6552,
"server/src/__tests__/issue-wake-diagnostics-routes.test.ts": 11098,
"server/src/__tests__/issue-watchdogs-routes.test.ts": 15909,
"server/src/__tests__/issue-workspace-command-authz.test.ts": 3660,
"server/src/__tests__/issues-checkout-wakeup.test.ts": 1053,
"server/src/__tests__/issues-goal-context-routes.test.ts": 5356,
"server/src/__tests__/issues-service.test.ts": 37910,
"server/src/__tests__/llms-routes.test.ts": 2370,
"server/src/__tests__/low-trust-red-team-routes.test.ts": 25333,
"server/src/__tests__/multilingual-issues-routes.test.ts": 11329,
"server/src/__tests__/onboarding-seed-route.test.ts": 8981,
"server/src/__tests__/openapi-routes.test.ts": 3234,
"server/src/__tests__/openclaw-invite-prompt-route.test.ts": 3938,
"server/src/__tests__/opencode-local-adapter-environment.test.ts": 1071,
"server/src/__tests__/permissions-upgrade-boundary-routes.test.ts": 11054,
"server/src/__tests__/pipelines-routes.test.ts": 13514,
"server/src/__tests__/plugin-install-route-security.test.ts": 10977,
"server/src/__tests__/plugin-routes-authz.test.ts": 3628,
"server/src/__tests__/plugin-scoped-api-routes.test.ts": 3535,
"server/src/__tests__/project-goal-telemetry-routes.test.ts": 4566,
"server/src/__tests__/project-routes-env.test.ts": 3141,
"server/src/__tests__/projects-list-archived-routes.test.ts": 10943,
"server/src/__tests__/redaction.test.ts": 973,
"server/src/__tests__/resource-memberships-routes.test.ts": 11206,
"server/src/__tests__/routine-document-annotation-routes.test.ts": 2824,
"server/src/__tests__/routines-e2e.test.ts": 12006,
"server/src/__tests__/routines-routes.test.ts": 4019,
"server/src/__tests__/secret-proposals-routes.test.ts": 15670,
"server/src/__tests__/secrets-routes.test.ts": 4757,
"server/src/__tests__/sidebar-preferences-routes.test.ts": 3080,
"server/src/__tests__/summary-slot-routes.test.ts": 3858,
"server/src/__tests__/teams-catalog-routes.test.ts": 3463,
"server/src/__tests__/user-profile-routes.test.ts": 6441,
"server/src/__tests__/workspace-runtime-routes-authz.test.ts": 3296,
"server/src/__tests__/workspace-runtime-service-authz.test.ts": 6251
"server/src/__tests__/access-routes-hidden-floor.test.ts": 11187,
"server/src/__tests__/access-routes-permissions-upgrade.test.ts": 18919,
"server/src/__tests__/activity-routes.test.ts": 5963,
"server/src/__tests__/adapter-auth-signal-routes.test.ts": 14105,
"server/src/__tests__/adapter-model-refresh-routes.test.ts": 10257,
"server/src/__tests__/adapter-routes-authz.test.ts": 7991,
"server/src/__tests__/adapter-routes.test.ts": 8580,
"server/src/__tests__/agent-action-audit-routes.test.ts": 17869,
"server/src/__tests__/agent-adapter-validation-routes.test.ts": 24906,
"server/src/__tests__/agent-cross-tenant-authz-routes.test.ts": 9297,
"server/src/__tests__/agent-device-login-routes.test.ts": 25216,
"server/src/__tests__/agent-hire-idempotency-routes.test.ts": 16903,
"server/src/__tests__/agent-instructions-routes.test.ts": 15221,
"server/src/__tests__/agent-live-run-routes.test.ts": 30747,
"server/src/__tests__/agent-permissions-routes.test.ts": 9849,
"server/src/__tests__/agent-secrets-routes.test.ts": 16629,
"server/src/__tests__/agent-skills-routes.test.ts": 24106,
"server/src/__tests__/agent-test-environment-routes.test.ts": 20121,
"server/src/__tests__/approval-routes-idempotency.test.ts": 6366,
"server/src/__tests__/artifact-review-document-routes.test.ts": 11415,
"server/src/__tests__/assets.test.ts": 7738,
"server/src/__tests__/auth-routes.test.ts": 3471,
"server/src/__tests__/auth-session-route.test.ts": 4282,
"server/src/__tests__/authz-company-access.test.ts": 3348,
"server/src/__tests__/authz-existence-oracle-guard.test.ts": 312,
"server/src/__tests__/authz-secret-context.test.ts": 3899,
"server/src/__tests__/board-chat-route-feature-flag.test.ts": 1251,
"server/src/__tests__/bootstrap-claim-routes.test.ts": 5821,
"server/src/__tests__/built-in-agent-routes.test.ts": 6607,
"server/src/__tests__/cases-routes.test.ts": 17725,
"server/src/__tests__/cli-auth-routes.test.ts": 8422,
"server/src/__tests__/cloud-routes.test.ts": 3475,
"server/src/__tests__/companies-route-cross-company-authz.test.ts": 10608,
"server/src/__tests__/companies-route-path-guard.test.ts": 3520,
"server/src/__tests__/company-branding-route.test.ts": 6319,
"server/src/__tests__/company-import-transfer-routes.test.ts": 10852,
"server/src/__tests__/company-portability-routes.test.ts": 5037,
"server/src/__tests__/company-portability.test.ts": 6030,
"server/src/__tests__/company-search-extract-routes.test.ts": 11382,
"server/src/__tests__/company-search-rate-limit-routes.test.ts": 11592,
"server/src/__tests__/company-skill-policy-routes.test.ts": 9969,
"server/src/__tests__/company-skills-import-authz-routes.test.ts": 16725,
"server/src/__tests__/company-skills-routes.test.ts": 6666,
"server/src/__tests__/company-user-directory-route.test.ts": 5254,
"server/src/__tests__/costs-service.test.ts": 10178,
"server/src/__tests__/decision-queues-routes.test.ts": 9909,
"server/src/__tests__/document-annotation-routes.test.ts": 12372,
"server/src/__tests__/environment-custom-image-routes.test.ts": 8712,
"server/src/__tests__/environment-instance-routes.test.ts": 8738,
"server/src/__tests__/environment-routes.test.ts": 5462,
"server/src/__tests__/environment-selection-route-guards.test.ts": 9749,
"server/src/__tests__/execution-workspace-runtime-lease-route.test.ts": 12231,
"server/src/__tests__/execution-workspaces-routes.test.ts": 6598,
"server/src/__tests__/express5-auth-wildcard.test.ts": 1098,
"server/src/__tests__/external-object-routes.test.ts": 14559,
"server/src/__tests__/folders-routes.test.ts": 3122,
"server/src/__tests__/health-dev-server-token.test.ts": 3808,
"server/src/__tests__/health.test.ts": 3664,
"server/src/__tests__/heartbeat-dependency-scheduling.test.ts": 22771,
"server/src/__tests__/heartbeat-issue-liveness-escalation.test.ts": 26411,
"server/src/__tests__/heartbeat-process-recovery.test.ts": 165058,
"server/src/__tests__/inbox-agent-policy-routes.test.ts": 17418,
"server/src/__tests__/inbox-archive-routes.test.ts": 18276,
"server/src/__tests__/instance-database-backups-routes.test.ts": 3602,
"server/src/__tests__/instance-settings-routes.test.ts": 3263,
"server/src/__tests__/invite-accept-existing-member.test.ts": 5373,
"server/src/__tests__/invite-accept-gateway-defaults.test.ts": 16661,
"server/src/__tests__/invite-accept-replay.test.ts": 11438,
"server/src/__tests__/invite-create-route.test.ts": 5108,
"server/src/__tests__/invite-expiry.test.ts": 11055,
"server/src/__tests__/invite-join-manager.test.ts": 10519,
"server/src/__tests__/invite-list-route.test.ts": 10911,
"server/src/__tests__/invite-logo-route.test.ts": 10811,
"server/src/__tests__/invite-onboarding-text.test.ts": 9920,
"server/src/__tests__/invite-rate-limit-route.test.ts": 11305,
"server/src/__tests__/invite-summary-route.test.ts": 12300,
"server/src/__tests__/invite-test-resolution-route.test.ts": 10497,
"server/src/__tests__/invite-url-public-base-url.test.ts": 5781,
"server/src/__tests__/issue-activity-events-routes.test.ts": 13914,
"server/src/__tests__/issue-agent-mutation-ownership-routes.test.ts": 50945,
"server/src/__tests__/issue-assigned-backlog-contract-routes.test.ts": 9454,
"server/src/__tests__/issue-assignee-invokability-routes.test.ts": 9340,
"server/src/__tests__/issue-attachment-routes.test.ts": 18688,
"server/src/__tests__/issue-blocker-diagnostics-routes.test.ts": 17348,
"server/src/__tests__/issue-closed-workspace-routes.test.ts": 9378,
"server/src/__tests__/issue-comment-attribution-audit-routes.test.ts": 16687,
"server/src/__tests__/issue-comment-cancel-routes.test.ts": 9120,
"server/src/__tests__/issue-comment-reopen-routes.test.ts": 9744,
"server/src/__tests__/issue-create-deduplication-routes.test.ts": 18131,
"server/src/__tests__/issue-created-from-routes.test.ts": 18051,
"server/src/__tests__/issue-dependency-wakeups-routes.test.ts": 12754,
"server/src/__tests__/issue-document-restore-routes.test.ts": 11341,
"server/src/__tests__/issue-execution-policy-routes.test.ts": 17384,
"server/src/__tests__/issue-feedback-routes.test.ts": 10562,
"server/src/__tests__/issue-identifier-routes.test.ts": 17386,
"server/src/__tests__/issue-list-assignee-filter-routes.test.ts": 18762,
"server/src/__tests__/issue-list-updatedsince-filter-routes.test.ts": 17534,
"server/src/__tests__/issue-onboarding-first-task-routes.test.ts": 19600,
"server/src/__tests__/issue-queued-comments-routes.test.ts": 28267,
"server/src/__tests__/issue-scheduled-retry-routes.test.ts": 17617,
"server/src/__tests__/issue-stale-execution-lock-routes.test.ts": 17166,
"server/src/__tests__/issue-stalled-review-decision-routes.test.ts": 18751,
"server/src/__tests__/issue-subtree-diagnostics-routes.test.ts": 18263,
"server/src/__tests__/issue-telemetry-routes.test.ts": 9904,
"server/src/__tests__/issue-thread-interaction-routes.test.ts": 39373,
"server/src/__tests__/issue-tree-control-routes.test.ts": 3616,
"server/src/__tests__/issue-update-comment-wakeup-routes.test.ts": 15540,
"server/src/__tests__/issue-wake-diagnostics-routes.test.ts": 17422,
"server/src/__tests__/issue-watchdogs-routes.test.ts": 22439,
"server/src/__tests__/issue-workspace-command-authz.test.ts": 9358,
"server/src/__tests__/issues-checkout-wakeup.test.ts": 1064,
"server/src/__tests__/issues-goal-context-routes.test.ts": 9431,
"server/src/__tests__/issues-service.test.ts": 76576,
"server/src/__tests__/llms-routes.test.ts": 3399,
"server/src/__tests__/low-trust-red-team-routes.test.ts": 27945,
"server/src/__tests__/managed-agent-profile-routes-authz.test.ts": 3624,
"server/src/__tests__/multilingual-issues-routes.test.ts": 17623,
"server/src/__tests__/onboarding-seed-route.test.ts": 13936,
"server/src/__tests__/openapi-routes.test.ts": 4089,
"server/src/__tests__/openclaw-invite-prompt-route.test.ts": 5131,
"server/src/__tests__/opencode-local-adapter-environment.test.ts": 8676,
"server/src/__tests__/permissions-upgrade-boundary-routes.test.ts": 16917,
"server/src/__tests__/pipelines-routes.test.ts": 20408,
"server/src/__tests__/plugin-install-route-security.test.ts": 13924,
"server/src/__tests__/plugin-routes-authz.test.ts": 5693,
"server/src/__tests__/plugin-scoped-api-routes.test.ts": 6245,
"server/src/__tests__/project-goal-telemetry-routes.test.ts": 6735,
"server/src/__tests__/project-routes-env.test.ts": 5412,
"server/src/__tests__/project-workspace-managed-sandbox-routes.test.ts": 6840,
"server/src/__tests__/projects-list-archived-routes.test.ts": 17390,
"server/src/__tests__/redaction.test.ts": 1125,
"server/src/__tests__/resource-memberships-routes.test.ts": 17692,
"server/src/__tests__/routine-document-annotation-routes.test.ts": 3749,
"server/src/__tests__/routines-e2e.test.ts": 20181,
"server/src/__tests__/routines-routes.test.ts": 6778,
"server/src/__tests__/secret-proposals-routes.test.ts": 21824,
"server/src/__tests__/secrets-routes-claude-oauth-service.test.ts": 11110,
"server/src/__tests__/secrets-routes.test.ts": 10410,
"server/src/__tests__/sidebar-preferences-routes.test.ts": 4495,
"server/src/__tests__/summary-slot-routes.test.ts": 6451,
"server/src/__tests__/teams-catalog-routes.test.ts": 4948,
"server/src/__tests__/user-profile-routes.test.ts": 9198,
"server/src/__tests__/workspace-command-authz.test.ts": 1044,
"server/src/__tests__/workspace-runtime-routes-authz.test.ts": 6915,
"server/src/__tests__/workspace-runtime-service-authz.test.ts": 10428
}
}