From 2351ca624949acbe4ce74750dab4330df83a6c11 Mon Sep 17 00:00:00 2001 From: Danijel Martinek Date: Fri, 8 May 2026 23:20:58 +0200 Subject: [PATCH] feat(web-next): register realtime-ping inbound (env-gateable) --- apps/web-next/src/server/bind-production.ts | 7 +++++++ packages/core-realtime/src/realtime-ping.ts | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/web-next/src/server/bind-production.ts b/apps/web-next/src/server/bind-production.ts index fcd9a44..b5b135a 100644 --- a/apps/web-next/src/server/bind-production.ts +++ b/apps/web-next/src/server/bind-production.ts @@ -23,6 +23,7 @@ import { import { InMemoryRealtimeBroadcaster, RealtimeHandlerRegistry, + realtimePingInboundDescriptor, type IRealtimeBroadcaster, type IRealtimeHandlerRegistry, } from "@repo/core-realtime"; @@ -120,6 +121,9 @@ export async function bindAllProduction(deps: BindAllDeps): Promise { bindProductionMarketingPages(resolvedConfig, tracer, logger, bus, queue, realtime, realtimeRegistry); // Phase E task 20 bindProductionNavigation(resolvedConfig, tracer, logger, bus, queue, realtime, realtimeRegistry); // Phase E task 21 bindProductionMedia(resolvedConfig, tracer, logger, bus, queue, realtime, realtimeRegistry); // Phase E task 22 + if (process.env.REALTIME_PING_DISABLED !== "true") { + realtimeRegistry.register(realtimePingInboundDescriptor(realtime)); + } bindRealtimeBridge(bus, realtime); } @@ -139,6 +143,9 @@ export async function bindAllDevSeed(deps: BindAllDeps): Promise { await bindDevSeedMarketingPages(tracer, logger, bus, queue, realtime, realtimeRegistry); // Phase E task 20 await bindDevSeedNavigation(tracer, logger, bus, queue, realtime, realtimeRegistry); // Phase E task 21 await bindDevSeedMedia(tracer, logger, bus, queue, realtime, realtimeRegistry); // Phase E task 22 + if (process.env.REALTIME_PING_DISABLED !== "true") { + realtimeRegistry.register(realtimePingInboundDescriptor(realtime)); + } bindRealtimeBridge(bus, realtime); } diff --git a/packages/core-realtime/src/realtime-ping.ts b/packages/core-realtime/src/realtime-ping.ts index a6a4378..0203131 100644 --- a/packages/core-realtime/src/realtime-ping.ts +++ b/packages/core-realtime/src/realtime-ping.ts @@ -23,7 +23,7 @@ export const realtimePongChannel = defineRealtimeChannel( export function realtimePingInboundDescriptor( broadcaster: IRealtimeBroadcaster, -): IInboundDescriptor { +): IInboundDescriptor<"realtime.ping", z.ZodType> { return { descriptor: realtimePingChannel, handler: async (input: PingPayload, ctx: RealtimeContext): Promise => {