user-scoped channel sessions, whatsapp disconnect cleanup, browser relay token fix

Channel session IDs now include userId (channel-{provider}-{userId}-{contextId})
to prevent cross-user contamination in multi-user setups. WhatsApp disconnect
properly logs out and clears cached auth. Browser relay uses server-derived token
directly.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-27 14:14:47 +00:00
co-authored by Claude Opus 4.6
parent 209d58a525
commit 8f1963fedb
7 changed files with 45 additions and 28 deletions
@@ -38,8 +38,8 @@ export async function buildRelayWsUrl(host, port, gatewayToken) {
"Missing relay token in extension settings (chrome.storage.local.relayToken)",
);
}
const relayToken = await deriveRelayToken(token, port);
return `ws://${host}:${port}/extension?token=${encodeURIComponent(relayToken)}`;
// Token is already derived server-side — use it directly
return `ws://${host}:${port}/extension?token=${encodeURIComponent(token)}`;
}
export function isRetryableReconnectError(err) {