From 7a6e96a0c884b1262b87fc9b6947ff80e8c2a96f Mon Sep 17 00:00:00 2001 From: Zbigniew Sobiecki Date: Mon, 16 Mar 2026 12:48:46 +0000 Subject: [PATCH] fix(dashboard): register engine schemas at startup to fix webhooks 500 EngineSettingsSchema uses a dynamic registry populated by registerBuiltInEngines(). Previously this was only called lazily inside the agentConfigs router handler, so any tRPC call that loaded project config before agentConfigs was ever touched would fail validation with: Unsupported engine settings for "claude-code" This caused webhooks.list and webhooks.create to return HTTP 500 for any project with claude-code engineSettings configured, because resolveProjectContext() calls findProjectByIdFromDb() which runs validateConfig() which runs EngineSettingsSchema. Fix: call registerBuiltInEngines() once at dashboard startup so the registry is always populated before any request is handled. Co-Authored-By: Claude Sonnet 4.6 --- src/dashboard.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/dashboard.ts b/src/dashboard.ts index 058371d6..11aa6445 100644 --- a/src/dashboard.ts +++ b/src/dashboard.ts @@ -28,10 +28,15 @@ import { logoutHandler } from './api/auth/logout.js'; import { resolveUserFromSession } from './api/auth/session.js'; import { computeEffectiveOrgId } from './api/context.js'; import { appRouter } from './api/router.js'; +import { registerBuiltInEngines } from './backends/bootstrap.js'; import { captureException, flush, setTag } from './sentry.js'; setTag('role', 'dashboard'); +// Register engine settings schemas so EngineSettingsSchema validation works for all tRPC +// procedures (e.g. webhooks.list/create) that load project config via configRepository. +registerBuiltInEngines(); + const app = new Hono(); // Middleware