diff --git a/discord-read/server/main.ts b/discord-read/server/main.ts index a451522e..faaa9917 100644 --- a/discord-read/server/main.ts +++ b/discord-read/server/main.ts @@ -71,15 +71,6 @@ const runtime = withRuntime({ const organizationId = env.MESH_REQUEST_CONTEXT?.organizationId; const token = env.MESH_REQUEST_CONTEXT?.token; - // Configure HyperDX logger if API key is provided - if (state?.HYPERDX_API_KEY) { - logger.setApiKey(state.HYPERDX_API_KEY); - logger.info("HyperDX logger configured", { - trace_id: traceId, - organizationId, - }); - } - // Database tables are managed via Supabase console.log("[Setup] Skipping database initialization (using Supabase)"); @@ -184,6 +175,25 @@ const runtime = withRuntime({ const hasAuth = !!env.MESH_REQUEST_CONTEXT?.authorization; if (hasAuth) { if (isBotRunning(env)) { + // Bot is already running (possibly via shared client from bootstrap). + // Update the primary instance's env so event handlers get fresh state + // (AGENT config, system prompt, etc.) instead of the empty bootstrap state. + if (connectionId) { + const currentInstance = getInstance(connectionId); + if (currentInstance?.client) { + const { getInstanceByClient } = await import("./bot-instance.ts"); + const ownerInstance = getInstanceByClient(currentInstance.client); + if ( + ownerInstance && + ownerInstance.connectionId !== connectionId + ) { + ownerInstance.env = env; + console.log( + `[CONFIG] Updated primary instance ${ownerInstance.connectionId} env from ${connectionId} onChange`, + ); + } + } + } console.log( `[CONFIG] Bot already running for ${connectionId || "unknown"}`, ); diff --git a/discord-read/server/types/env.ts b/discord-read/server/types/env.ts index f46b8324..4b151810 100644 --- a/discord-read/server/types/env.ts +++ b/discord-read/server/types/env.ts @@ -3,13 +3,10 @@ */ import type { Registry } from "@decocms/mcps-shared/registry"; -import { AgentOf, BindingOf, type DefaultEnv } from "@decocms/runtime"; +import { AgentOf, type DefaultEnv } from "@decocms/runtime"; import z from "zod"; export const StateSchema = z.object({ - // Bindings obrigatórias - CONNECTION: BindingOf("@deco/connection"), - // AI Configuration — AgentOf() resolves to a client with .STREAM() AGENT: AgentOf(), @@ -138,14 +135,6 @@ export const StateSchema = z.object({ }) .optional() .describe("How the bot responds to messages"), - - // HyperDX Configuration - HYPERDX_API_KEY: z - .string() - .optional() - .describe( - "HyperDX API key for advanced logging and observability. If not provided, logs will only go to stdout.", - ), }); export type Env = DefaultEnv;