apps/mobile/src/features/settings/SettingsScheduledTasksRouteScreen.tsx | 74 +- apps/mobile/src/features/settings/scheduledTaskDraft.test.ts | 22 +- apps/mobile/src/features/settings/scheduledTaskDraft.ts | 21 +- apps/server/src/cloud/ManagedEndpointRuntime.test.ts | 30 + apps/server/src/cloud/ManagedEndpointRuntime.ts | 9 +- apps/server/src/cloud/config.ts | 31 + apps/server/src/cloud/http.test.ts | 2 + apps/server/src/cloud/http.ts | 87 +- apps/server/src/observability/Metrics.ts | 24 + apps/server/src/persistence/Migrations.ts | 2 + apps/server/src/persistence/Migrations/055_OrchestrationV2.test.ts | 4 +- apps/server/src/persistence/Migrations/058_WebhookRelayDeliveries.ts | 22 + apps/server/src/persistence/reconcileV2PreviewMigration.test.ts | 2 + apps/server/src/relay/HeldHooksWaker.ts | 52 ++ apps/server/src/relay/relayEnvironmentClient.ts | 21 + apps/server/src/scheduledTasks/ScheduledTaskService.ts | 470 +++++++--- apps/server/src/scheduledTasks/ScheduledTaskService.webhook.test.ts | 310 ++++++- apps/server/src/scheduledTasks/relayDeliveryProof.ts | 74 ++ apps/server/src/scheduledTasks/webhookRoute.test.ts | 224 ++++- apps/server/src/scheduledTasks/webhookRoute.ts | 71 +- apps/server/src/scheduledTasks/webhookTemplate.test.ts | 25 + apps/server/src/scheduledTasks/webhookTemplate.ts | 54 +- apps/server/src/server.ts | 52 +- apps/web/src/cloud/linkEnvironment.ts | 4 +- apps/web/src/cloud/linkEnvironmentAtoms.ts | 7 +- apps/web/src/cloud/primaryCloudLinkState.ts | 9 +- apps/web/src/cloud/useCloudLinkController.ts | 7 + apps/web/src/components/chat/ThreadAutomationsPanel.tsx | 42 +- apps/web/src/components/settings/ConnectionsSettings.tsx | 35 + apps/web/src/components/settings/ScheduledTasksSettings.tsx | 60 +- apps/web/src/components/settings/scheduledTasksSettings.logic.test.ts | 30 +- apps/web/src/components/settings/scheduledTasksSettings.logic.ts | 16 +- apps/web/src/components/settings/settingsSearch.test.ts | 19 + apps/web/src/components/settings/settingsSearch.ts | 16 +- apps/web/src/components/settings/useAvailableSettingsSearchItems.ts | 7 + docs/internals/t3-connect.md | 26 +- docs/operations/observability.md | 15 + docs/operations/relay-observability.md | 51 ++ docs/user/project-settings.md | 31 +- infra/relay/migrations/postgres/20261004061459_hold_webhooks_while_offline/migration.sql | 1 + infra/relay/migrations/postgres/20261004061459_hold_webhooks_while_offline/snapshot.json | 1581 ++++++++++++++++++++++++++++++++ infra/relay/package.json | 1 + infra/relay/src/agentActivity/AgentActivityPublisher.test.ts | 1 + infra/relay/src/agentActivity/FcmDeliveries.test.ts | 1 + infra/relay/src/agentActivity/MobileRegistrations.test.ts | 1 + infra/relay/src/deploymentConfig.ts | 13 + infra/relay/src/environments/EnvironmentConnector.test.ts | 2 + infra/relay/src/environments/EnvironmentLinker.test.ts | 1 + infra/relay/src/environments/EnvironmentLinks.test.ts | 39 + infra/relay/src/environments/EnvironmentLinks.ts | 70 +- infra/relay/src/environments/ManagedEndpointAllocations.ts | 28 + infra/relay/src/environments/ManagedEndpointProvider.test.ts | 1 + infra/relay/src/environments/ManagedEndpointReaper.test.ts | 1 + infra/relay/src/hooks/HookForwarder.test.ts | 383 +++++++- infra/relay/src/hooks/HookForwarder.ts | 358 +++++--- infra/relay/src/hooks/HookInbox.ts | 40 + infra/relay/src/hooks/HookInboxObject.ts | 154 ++++ infra/relay/src/hooks/HookInboxStore.test.ts | 260 ++++++ infra/relay/src/hooks/HookInboxStore.ts | 380 ++++++++ infra/relay/src/hooks/upstream.ts | 125 +++ infra/relay/src/http/Api.test.ts | 65 +- infra/relay/src/http/Api.ts | 145 ++- infra/relay/src/persistence/schema.ts | 2 + infra/relay/src/worker.ts | 83 +- packages/client-runtime/package.json | 4 + packages/client-runtime/src/scheduledTaskWebhook.test.ts | 13 + packages/client-runtime/src/scheduledTaskWebhook.ts | 13 + packages/contracts/src/environmentHttp.ts | 5 + packages/contracts/src/relay.ts | 53 +- packages/contracts/src/scheduledTask.ts | 14 + packages/shared/src/relayJwt.ts | 3 + pnpm-lock.yaml | 26 +- pnpm-workspace.yaml | 2 + 73 files changed, 5491 insertions(+), 436 deletions(-)