From 774f5d29cebf34b43f335a6ea71c643ea38c4cb4 Mon Sep 17 00:00:00 2001 From: Joe Hanley Date: Fri, 6 Nov 2026 23:50:29 +0000 Subject: [PATCH] fix(mcp): type MCP logger as void and clear src/mcp no-floating-promises (b/582886458) --- src/mcp/apps/init/mcp-app.ts | 3 ++- src/mcp/apps/update_environment/mcp-app.ts | 3 ++- src/mcp/index.ts | 18 ++++++++++++------ 3 files changed, 16 insertions(+), 8 deletions(-) diff --git a/src/mcp/apps/init/mcp-app.ts b/src/mcp/apps/init/mcp-app.ts index 761b4bd8fec..7d7e91d088e 100644 --- a/src/mcp/apps/init/mcp-app.ts +++ b/src/mcp/apps/init/mcp-app.ts @@ -222,7 +222,8 @@ app.onhostcontextchanged = (ctx) => { } }; -(async () => { +// Initial connection and project load catch all errors and report status via setStatus +void (async () => { const envDirEl = document.getElementById("env-dir") as HTMLSpanElement; try { await app.connect(); diff --git a/src/mcp/apps/update_environment/mcp-app.ts b/src/mcp/apps/update_environment/mcp-app.ts index 5eea8198cda..b88f9cd1e27 100644 --- a/src/mcp/apps/update_environment/mcp-app.ts +++ b/src/mcp/apps/update_environment/mcp-app.ts @@ -119,7 +119,8 @@ app.onhostcontextchanged = (ctx) => { } }; -(async () => { +// Initial connection and project load catch all errors and report status via showStatus +void (async () => { try { await app.connect(); showStatus("Connecting to server...", "info"); diff --git a/src/mcp/index.ts b/src/mcp/index.ts index 1ff7b00225f..15286e8a8f1 100644 --- a/src/mcp/index.ts +++ b/src/mcp/index.ts @@ -647,13 +647,19 @@ export class FirebaseMcpServer { while (this._pendingMessages.length) { const message = this._pendingMessages.shift(); if (!message) continue; - this.server.sendLoggingMessage({ - level: message.level, - data: message.data, - }); + this.server + .sendLoggingMessage({ + level: message.level, + data: message.data, + }) + .catch(() => { + // Logging must never throw; the transport may already be closed. + }); } - void this.server.sendLoggingMessage({ level, data }); + this.server.sendLoggingMessage({ level, data }).catch(() => { + // Logging must never throw; the transport may already be closed. + }); } else { this._pendingMessages.push({ level, data }); } @@ -664,6 +670,6 @@ export class FirebaseMcpServer { logLevel, (message: unknown) => logAtLevel(logLevel, message), ]), - ) as Record Promise>; + ) as Record void>; } }