Repository navigation
Move Relay deployment configuration into private cloud operations - #31792
Merged
Merged
Conversation
Contributor
Contributor
There was a problem hiding this comment.
🧹 Nitpick comments: 1
cloud/package.json: 1
9-10: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick winKeep the retained lease tests in Cloud Verify.
Cloud Verify runs
pnpm testfromcloud, but the current scripts do not invoke either lease test. No other public CI path invokes them. Action changes can therefore pass Cloud Verify without testing lease behavior.Suggested fix
- "pretest": "pnpm test:runner", + "pretest": "node --test ../.github/actions/cloud-sql-rollout-lease/action-contract.test.mjs ../.github/actions/cloud-sql-rollout-lease/storage-lease.test.mjs && pnpm test:runner",
ℹ️ Review info
⚙️ Run configuration
- Configuration used: Repository UI
- Review profile: CHILL
- Plan: Advanced
- Run ID:
46f2762c-afd5-4678-96ee-ca656e8b1e1a
⛔ Files ignored due to path filters: 1
cloud/pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing: 279
.github/actions/install-node-dependencies/action.yml.github/workflows/cloud-bootstrap-relay-staging-capacity.yml.github/workflows/cloud-deploy-relay-asia-topology.yml.github/workflows/cloud-deploy-relay-fence-broker.yml.github/workflows/cloud-deploy-relay-production-capacity-job.yml.github/workflows/cloud-deploy-relay-production-capacity.yml.github/workflows/cloud-deploy-relay-production-director.yml.github/workflows/cloud-deploy-relay-production-multi-target.yml.github/workflows/cloud-deploy-relay-production-same-cap-job.yml.github/workflows/cloud-deploy-relay-production-same-cap.yml.github/workflows/cloud-deploy-relay-production.yml.github/workflows/cloud-deploy-relay-staging-gce-candidate.yml.github/workflows/cloud-deploy-relay-staging.yml.github/workflows/cloud-monitor-relay-clock-skew.yml.github/workflows/cloud-monitor-relay-production-job.yml.github/workflows/cloud-monitor-relay-production.yml.github/workflows/cloud-operate-relay-asia-admission.yml.github/workflows/cloud-operate-relay-production-cell-flags.yml.github/workflows/cloud-operate-relay-production-rehome-job.yml.github/workflows/cloud-operate-relay-production-rehome.yml.github/workflows/cloud-operate-relay-production-reserve-watch.yml.github/workflows/cloud-operate-relay-staging-cell-flags.yml.github/workflows/cloud-power-relay-staging.yml.github/workflows/cloud-prove-relay-asia-staging.yml.github/workflows/cloud-prove-relay-staging-capacity.yml.github/workflows/cloud-publish-relay-production.yml.github/workflows/cloud-push-deploy.yml.github/workflows/cloud-recover-relay-staging-c4-image.yml.github/workflows/cloud-requeue-relay-staging-c4-recovery.yml.github/workflows/cloud-verify.ymlcloud/README.mdcloud/apps/push/Dockerfilecloud/apps/push/src/push-deploy-preflight.test.tscloud/apps/relay-fence-broker/Dockerfilecloud/apps/relay-ops/README.mdcloud/apps/relay-ops/package.jsoncloud/apps/relay-ops/public/app.jscloud/apps/relay-ops/public/index.htmlcloud/apps/relay-ops/public/styles.csscloud/apps/relay-ops/src/cost-model.test.tscloud/apps/relay-ops/src/cost-model.tscloud/apps/relay-ops/src/dashboard-snapshot.test.tscloud/apps/relay-ops/src/dashboard-snapshot.tscloud/apps/relay-ops/src/environment-config.test.tscloud/apps/relay-ops/src/environment-config.tscloud/apps/relay-ops/src/gcloud-client.test.tscloud/apps/relay-ops/src/gcloud-client.tscloud/apps/relay-ops/src/github-runs.tscloud/apps/relay-ops/src/incident-live-preflight-cli.test.tscloud/apps/relay-ops/src/incident-live-preflight-cli.tscloud/apps/relay-ops/src/incident-monitor-cli.test.tscloud/apps/relay-ops/src/incident-monitor-cli.tscloud/apps/relay-ops/src/incident-monitor-sources.test.tscloud/apps/relay-ops/src/incident-monitor-sources.tscloud/apps/relay-ops/src/incident-monitor.test.tscloud/apps/relay-ops/src/incident-monitor.tscloud/apps/relay-ops/src/incident-selector.tscloud/apps/relay-ops/src/index.tscloud/apps/relay-ops/src/monitoring-snapshot.test.tscloud/apps/relay-ops/src/monitoring-snapshot.tscloud/apps/relay-ops/src/pre-drain-hard-rule-sources.test.tscloud/apps/relay-ops/src/pre-drain-hard-rule-sources.tscloud/apps/relay-ops/src/pre-drain-sample-cli.test.tscloud/apps/relay-ops/src/pre-drain-sample-cli.tscloud/apps/relay-ops/src/pre-drain-sample.test.tscloud/apps/relay-ops/src/pre-drain-sample.tscloud/apps/relay-ops/src/relay-repository.test.tscloud/apps/relay-ops/src/relay-repository.tscloud/apps/relay-ops/src/resource-inventory.test.tscloud/apps/relay-ops/src/resource-inventory.tscloud/apps/relay-ops/src/staging-workflow.test.tscloud/apps/relay-ops/src/staging-workflow.tscloud/apps/relay-ops/tsconfig.build.jsoncloud/apps/relay-ops/tsconfig.jsoncloud/apps/relay/Dockerfilecloud/apps/relay/src/cell-connection-hard-cap-consistency.test.tscloud/apps/relay/src/cell-startup-environment.test.tscloud/apps/relay/src/regional-rehome-inventory-line-census.test.tscloud/dev/contracts/production-cloud-sql-app-consumers.jsoncloud/dev/fixtures/relay-reserve-watch/2026-10-21-director-stall.jsoncloud/dev/fixtures/terraform-root-partition/families.jsoncloud/dev/scripts/capture-terraform-plan-baseline.mjscloud/dev/scripts/capture-terraform-plan-baseline.test.mjscloud/dev/scripts/check-relay-same-cap-headroom.mjscloud/dev/scripts/check-relay-same-cap-headroom.test.mjscloud/dev/scripts/classify-relay-production-capacity-director.mjscloud/dev/scripts/classify-relay-production-capacity-director.test.mjscloud/dev/scripts/classify-relay-staging-bootstrap.mjscloud/dev/scripts/classify-relay-staging-bootstrap.test.mjscloud/dev/scripts/cloud-sql-rollout-lock-census.mjscloud/dev/scripts/deploy-relay-blue-green.mjscloud/dev/scripts/deploy-relay-blue-green.test.mjscloud/dev/scripts/deploy-relay-gce-candidate.mjscloud/dev/scripts/deploy-relay-gce-candidate.test.mjscloud/dev/scripts/deploy-relay-gce-multi-target.mjscloud/dev/scripts/deploy-relay-gce-multi-target.test.mjscloud/dev/scripts/drive-relay-director-deploy.mjscloud/dev/scripts/drive-relay-director-deploy.test.mjscloud/dev/scripts/github-smoke-token.mjscloud/dev/scripts/github-smoke-token.test.mjscloud/dev/scripts/infra.mjscloud/dev/scripts/infra.test.mjscloud/dev/scripts/load-relay-controls.mjscloud/dev/scripts/measure-relay-drain-disconnect-gap.mjscloud/dev/scripts/measure-relay-drain-disconnect-gap.test.mjscloud/dev/scripts/operate-relay-asia-admission.mjscloud/dev/scripts/operate-relay-asia-admission.test.mjscloud/dev/scripts/operate-relay-cell-flags.mjscloud/dev/scripts/operate-relay-cell-flags.test.mjscloud/dev/scripts/operate-relay-regional-rehome.mjscloud/dev/scripts/operate-relay-regional-rehome.test.mjscloud/dev/scripts/power-staging-relay.mjscloud/dev/scripts/power-staging-relay.test.mjscloud/dev/scripts/prepare-relay-asia-director-cells.mjscloud/dev/scripts/prepare-relay-asia-director-cells.test.mjscloud/dev/scripts/prepare-relay-asia-topology-input.mjscloud/dev/scripts/prepare-relay-asia-topology-input.test.mjscloud/dev/scripts/prepare-relay-capacity-canary.mjscloud/dev/scripts/prepare-relay-capacity-canary.test.mjscloud/dev/scripts/prepare-relay-production-capacity-canary.mjscloud/dev/scripts/prepare-relay-production-capacity-canary.test.mjscloud/dev/scripts/probe-relay-legacy-admission.mjscloud/dev/scripts/probe-relay-legacy-admission.test.mjscloud/dev/scripts/probe-relay-rehome-trust.mjscloud/dev/scripts/probe-relay-rehome-trust.test.mjscloud/dev/scripts/production-cell-image-digest-consistency.test.mjscloud/dev/scripts/production-cloud-sql-rollout-lock.test.mjscloud/dev/scripts/push-cloud-run-model.mjscloud/dev/scripts/push-gateway-recovery.test.mjscloud/dev/scripts/push-gateway-workflow.test.mjscloud/dev/scripts/read-relay-production-capacity-identity.mjscloud/dev/scripts/read-relay-production-capacity-identity.test.mjscloud/dev/scripts/read-relay-serving-regional-placement-version.mjscloud/dev/scripts/read-relay-serving-regional-placement-version.test.mjscloud/dev/scripts/relay-admin-endpoint-retry-workflow.test.mjscloud/dev/scripts/relay-admin-transient-retry.mjscloud/dev/scripts/relay-admin-transient-retry.test.mjscloud/dev/scripts/relay-admission-selector.mjscloud/dev/scripts/relay-admission-selector.test.mjscloud/dev/scripts/relay-asia-cloud-sql-metrics.mjscloud/dev/scripts/relay-asia-rollout-evidence.mjscloud/dev/scripts/relay-asia-rollout-evidence.test.mjscloud/dev/scripts/relay-asia-topology-workflow.test.mjscloud/dev/scripts/relay-clock-skew-monitor-workflow.test.mjscloud/dev/scripts/relay-cloud-sql-connection-budget.mjscloud/dev/scripts/relay-cloud-sql-connection-budget.test.mjscloud/dev/scripts/relay-control-flag-alerts.test.mjscloud/dev/scripts/relay-db-fault-alerts.test.mjscloud/dev/scripts/relay-deploy-workflow-argv.test.mjscloud/dev/scripts/relay-director-deploy-plan.mjscloud/dev/scripts/relay-evidence-code-provenance.mjscloud/dev/scripts/relay-gce-terraform-fence.mjscloud/dev/scripts/relay-gce-terraform-fence.test.mjscloud/dev/scripts/relay-live-cell-image-overlay.mjscloud/dev/scripts/relay-live-cell-image-overlay.test.mjscloud/dev/scripts/relay-load-connection-failure.mjscloud/dev/scripts/relay-load-connection-failure.test.mjscloud/dev/scripts/relay-load-control-peer.mjscloud/dev/scripts/relay-load-control-peer.test.mjscloud/dev/scripts/relay-load-director-capacity-gate.mjscloud/dev/scripts/relay-load-director-capacity-gate.test.mjscloud/dev/scripts/relay-load-duplicate-assign.mjscloud/dev/scripts/relay-load-duplicate-assign.test.mjscloud/dev/scripts/relay-load-model.mjscloud/dev/scripts/relay-load-model.test.mjscloud/dev/scripts/relay-load-phase-barrier.mjscloud/dev/scripts/relay-load-phase-barrier.test.mjscloud/dev/scripts/relay-load-placement-boundary.mjscloud/dev/scripts/relay-load-placement-boundary.test.mjscloud/dev/scripts/relay-load-profile.mjscloud/dev/scripts/relay-load-profile.test.mjscloud/dev/scripts/relay-load-reader-evidence.mjscloud/dev/scripts/relay-load-reader-evidence.test.mjscloud/dev/scripts/relay-load-rebind-boundary.mjscloud/dev/scripts/relay-load-rebind-boundary.test.mjscloud/dev/scripts/relay-load-region-behavior.mjscloud/dev/scripts/relay-load-region-behavior.test.mjscloud/dev/scripts/relay-load-request-unit-boundary.mjscloud/dev/scripts/relay-load-request-unit-boundary.test.mjscloud/dev/scripts/relay-load-resume-phone.mjscloud/dev/scripts/relay-load-resume-phone.test.mjscloud/dev/scripts/relay-load-run-lifecycle.mjscloud/dev/scripts/relay-load-run-lifecycle.test.mjscloud/dev/scripts/relay-load-splice-retry.mjscloud/dev/scripts/relay-load-splice-retry.test.mjscloud/dev/scripts/relay-lock-contention-alerts.test.mjscloud/dev/scripts/relay-monitor-evidence.mjscloud/dev/scripts/relay-monitor-evidence.test.mjscloud/dev/scripts/relay-phone-watch-recorded-quiet-minutes.jsoncloud/dev/scripts/relay-production-capacity-wave.mjscloud/dev/scripts/relay-production-capacity-wave.test.mjscloud/dev/scripts/relay-production-capacity-workflow.test.mjscloud/dev/scripts/relay-production-identity-boundaries.test.mjscloud/dev/scripts/relay-production-same-cap-wave.mjscloud/dev/scripts/relay-production-same-cap-wave.test.mjscloud/dev/scripts/relay-public-workflow-contract.test.mjscloud/dev/scripts/relay-reconnect-herd-alerts.test.mjscloud/dev/scripts/relay-recovery-wave-gate.mjscloud/dev/scripts/relay-recovery-wave-gate.test.mjscloud/dev/scripts/relay-region-hint-metrics.test.mjscloud/dev/scripts/relay-region-observation-evidence.mjscloud/dev/scripts/relay-region-observation-evidence.test.mjscloud/dev/scripts/relay-rehome-aggregate-evidence.mjscloud/dev/scripts/relay-rehome-aggregate-evidence.test.mjscloud/dev/scripts/relay-repository.mjscloud/dev/scripts/relay-repository.test.mjscloud/dev/scripts/relay-reserve-cell-refusal.mjscloud/dev/scripts/relay-reserve-dead-man-alert.test.mjscloud/dev/scripts/relay-reserve-watch-rules.mjscloud/dev/scripts/relay-same-cap-job-mode-conditions.test.mjscloud/dev/scripts/relay-same-cap-script-census.test.mjscloud/dev/scripts/relay-same-cap-shadow-gate-verdict.mjscloud/dev/scripts/relay-same-cap-shadow-gate.mjscloud/dev/scripts/relay-same-cap-shadow-gate.test.mjscloud/dev/scripts/relay-staging-c4-refresh-workflow.test.mjscloud/dev/scripts/relay-staging-capacity-identity.test.mjscloud/dev/scripts/relay-staging-deploy-identity.test.mjscloud/dev/scripts/render-workload-identity-conditions.mjscloud/dev/scripts/run-relay-load-model.mjscloud/dev/scripts/run-relay-recovery-wave-gate.mjscloud/dev/scripts/sanitize-relay-asia-admission-result.mjscloud/dev/scripts/sanitize-relay-asia-admission-result.test.mjscloud/dev/scripts/smoke-relay.mjscloud/dev/scripts/staging-relay-apply-guard.mjscloud/dev/scripts/staging-relay-apply-guard.test.mjscloud/dev/scripts/terraform-root-partition.mjscloud/dev/scripts/terraform-root-partition.test.mjscloud/dev/scripts/validate-relay-asia-topology-plan.mjscloud/dev/scripts/validate-relay-asia-topology-plan.test.mjscloud/dev/scripts/validate-relay-capacity-plan.mjscloud/dev/scripts/validate-relay-capacity-plan.test.mjscloud/dev/scripts/verify-relay-capacity-transition.mjscloud/dev/scripts/verify-relay-capacity-transition.test.mjscloud/dev/scripts/verify-relay-legacy-bootstrap.mjscloud/dev/scripts/verify-relay-legacy-bootstrap.test.mjscloud/dev/scripts/watch-relay-reserve-cell.mjscloud/dev/scripts/watch-relay-reserve-cell.test.mjscloud/dev/scripts/workload-identity-attribute-conditions.test.mjscloud/docs/orca-relay-capacity-testing.mdcloud/docs/orca-relay-operations.mdcloud/docs/push-database-cutover.mdcloud/docs/push-gateway.mdcloud/docs/relay-database-failure-diagnostics.mdcloud/docs/relay-improvement-checklist-2026-09.mdcloud/docs/relay-improvement-roadmap-2026-09.mdcloud/docs/relay-incident-monitor.mdcloud/docs/relay-reconnect-2026-09-findings.mdcloud/docs/relay-roll2-plan-2026-09.mdcloud/docs/relay-terraform-fencing-plan.mdcloud/docs/relay-workflows.mdcloud/docs/staging-relay-deploy-identity-rollout.mdcloud/infra/terraform/.terraform.lock.hclcloud/infra/terraform/README.mdcloud/infra/terraform/backend/production.hclcloud/infra/terraform/backend/staging.hclcloud/infra/terraform/environments/production.tfvarscloud/infra/terraform/environments/staging.tfvarscloud/infra/terraform/outputs.tfcloud/infra/terraform/push-dedicated-database.tfcloud/infra/terraform/push-deploy-identity.tfcloud/infra/terraform/push-gateway.tfcloud/infra/terraform/relay-asia-proof-iam.tfcloud/infra/terraform/relay-asia-topology-iam.tfcloud/infra/terraform/relay-control-bucket.tfcloud/infra/terraform/relay-database.tfcloud/infra/terraform/relay-dns.tfcloud/infra/terraform/relay-fence-broker.tfcloud/infra/terraform/relay-gce-cells.tfcloud/infra/terraform/relay-gce-foundation.tfcloud/infra/terraform/relay-gce-startup.sh.tftplcloud/infra/terraform/relay-github-actions.tfcloud/infra/terraform/relay-github-workflow-trust.tfcloud/infra/terraform/relay-observability.tfcloud/infra/terraform/relay-shared.tfcloud/infra/terraform/relay-staging-deploy-iam.tfcloud/infra/terraform/relay.tfcloud/infra/terraform/variables.tfcloud/infra/terraform/versions.tfcloud/package.json
💤 Files with no reviewable changes: 61
- cloud/apps/relay-ops/public/styles.css
- cloud/apps/relay-ops/src/environment-config.test.ts
- cloud/apps/push/src/push-deploy-preflight.test.ts
- cloud/apps/relay-ops/src/incident-live-preflight-cli.test.ts
- .github/workflows/cloud-deploy-relay-staging-gce-candidate.yml
- cloud/apps/relay-ops/src/incident-monitor.test.ts
- .github/workflows/cloud-deploy-relay-production-same-cap.yml
- cloud/apps/relay-ops/src/incident-monitor.ts
- .github/workflows/cloud-deploy-relay-asia-topology.yml
- cloud/apps/relay-ops/public/index.html
- .github/workflows/cloud-deploy-relay-staging.yml
- cloud/apps/relay-ops/README.md
- .github/workflows/cloud-prove-relay-staging-capacity.yml
- .github/workflows/cloud-power-relay-staging.yml
- cloud/apps/relay-ops/src/incident-monitor-sources.test.ts
- cloud/apps/relay-ops/src/incident-monitor-cli.ts
- .github/workflows/cloud-deploy-relay-fence-broker.yml
- cloud/apps/relay-ops/src/incident-monitor-sources.ts
- cloud/apps/relay-ops/src/gcloud-client.ts
- cloud/apps/relay-ops/src/github-runs.ts
- .github/workflows/cloud-monitor-relay-clock-skew.yml
- cloud/apps/relay-ops/src/monitoring-snapshot.test.ts
- cloud/apps/relay-ops/src/pre-drain-hard-rule-sources.test.ts
- .github/workflows/cloud-operate-relay-production-rehome.yml
- .github/workflows/cloud-deploy-relay-production.yml
- .github/workflows/cloud-publish-relay-production.yml
- cloud/apps/relay-ops/package.json
- .github/workflows/cloud-push-deploy.yml
- cloud/apps/relay-ops/src/dashboard-snapshot.test.ts
- cloud/apps/relay-ops/src/incident-monitor-cli.test.ts
- cloud/apps/relay-ops/src/pre-drain-sample-cli.test.ts
- .github/workflows/cloud-operate-relay-asia-admission.yml
- cloud/apps/relay-ops/src/gcloud-client.test.ts
- cloud/apps/relay-fence-broker/Dockerfile
- .github/workflows/cloud-deploy-relay-production-director.yml
- .github/workflows/cloud-prove-relay-asia-staging.yml
- .github/workflows/cloud-requeue-relay-staging-c4-recovery.yml
- .github/workflows/cloud-operate-relay-production-rehome-job.yml
- .github/workflows/cloud-bootstrap-relay-staging-capacity.yml
- cloud/apps/relay-ops/src/dashboard-snapshot.ts
- .github/workflows/cloud-monitor-relay-production.yml
- .github/workflows/cloud-deploy-relay-production-same-cap-job.yml
- .github/workflows/cloud-operate-relay-production-reserve-watch.yml
- cloud/apps/relay-ops/src/incident-live-preflight-cli.ts
- cloud/apps/relay-ops/src/environment-config.ts
- cloud/apps/relay-ops/src/cost-model.test.ts
- .github/workflows/cloud-monitor-relay-production-job.yml
- .github/workflows/cloud-recover-relay-staging-c4-image.yml
- cloud/apps/relay-ops/src/pre-drain-sample-cli.ts
- .github/workflows/cloud-operate-relay-staging-cell-flags.yml
- .github/workflows/cloud-operate-relay-production-cell-flags.yml
- cloud/apps/relay-ops/src/monitoring-snapshot.ts
- cloud/apps/relay-ops/public/app.js
- .github/workflows/cloud-deploy-relay-production-capacity-job.yml
- cloud/apps/relay-ops/src/pre-drain-sample.test.ts
- .github/workflows/cloud-deploy-relay-production-multi-target.yml
- .github/workflows/cloud-deploy-relay-production-capacity.yml
- cloud/apps/relay-ops/src/incident-selector.ts
- cloud/apps/relay-ops/src/index.ts
- cloud/apps/relay-ops/src/cost-model.ts
- cloud/apps/relay-ops/src/pre-drain-hard-rule-sources.ts
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 0 remain after this review.
9 tasks done
nwparker
added a commit
that referenced
this pull request
Oct 24, 2026
* ci: fail when a checked-in test file has no runner Two node:test files under .github/actions lost their runner when #31792 trimmed cloud pretest, and the two monaco .bench.ts budgets were never run by any CI job. Wire both back in and add a static check that every test-like file is collected by a declared runner or imported by a collected entry (the src .spec.* suite-module convention). * ci: ignore type-only imports and quote the lease glob for cmd.exe * ci: parse type-only imports, cover UNIT_EXCLUDE, route cloud runner edits Type-only imports are now dropped with the TypeScript parser, so a type alias before a runtime re-export no longer hides it. UNIT_EXCLUDE files must be named by a pr.yml or unit-tests.yml step. A cloud-only diff that adds a test or edits a runner config now runs the static job. The monaco benchmarks stay manual (pnpm test:perf:benchmarks) until a CI runner proves their wall-clock budgets. * ci: require UNIT_INCLUDE names in dedicated jobs and erase typeof import() * ci: resolve each runtime import to the one file Vite loads The unit dependency graph keeps every plausible candidate so it can invalidate conservatively, which cannot prove a suite runs: an import of ./case.spec counted both case.spec.ts and case.spec.tsx. Resolve with Vite's extension order instead. * ci: take runtime imports from transpiled output Imports used only as types are erased without a type modifier, so parsing for type-only syntax still followed them. Derive edges from ts.transpileModule output, which erases what Vitest's transform erases, and only transpile files that can reach an uncollected candidate. * ci: fix the agent-status benchmark config and route all cloud code The agent-status benchmark config inherited the unit projects, whose includes override its own, so it ran the whole unit suite and never the benchmark. Clear projects as the performance config does. Route every cloud code file to the static job, since content-detected tests can have any name.
This was referenced Oct 26, 2026
Closed
Closed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Move first-party Relay deployment configuration and operator tooling into private
stablyai/orca-cloud. Public runtime source, wire contracts, unit/PostgreSQL coverage, dependency audits and relay/push image scanning remain here.The paired private change (orca-cloud#512) preserves Terraform resource addresses, state buckets/prefixes and rollout leases; it assembles public runtime code from an immutable source pin. Terraform/backend/tfvars, operator tools/runbooks, broker Dockerfile, deployment contract tests and operational workflows move together. Existing public Git history is unchanged.
Validation: public Cloud build/typecheck and all 16 test-runner tests pass locally. Private assembled Cloud build/typecheck and deployment pretests pass. CI and the private migration PR provide full verification before the coordinated cutover.
No infrastructure or traffic changes are performed by this PR. Live review found broad pre-existing Terraform drift, including staging database deletions; rollout uses separately reviewed narrow plans and existing canary/rollback workflows.
CI also switches pnpm bootstrap to an explicit npm install because the native metadata downloader repeatedly times out; runtime containers retain their pinned Node images.