fix: normalize platform ID at registration, not router lookup
Channel adapters prefix platform IDs with their channel type (e.g. "telegram:123"). Normalize in register.ts so the DB always stores the canonical format. Removes fallback lookup from router. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -118,6 +118,13 @@ export async function run(args: string[]): Promise<void> {
|
|||||||
process.exit(4);
|
process.exit(4);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Chat SDK adapters prefix platform IDs with the channel type
|
||||||
|
// (e.g. "telegram:123", "discord:guild:channel"). Normalize here so
|
||||||
|
// the stored ID always matches what the adapter sends at runtime.
|
||||||
|
if (!parsed.platformId.startsWith(`${parsed.channel}:`)) {
|
||||||
|
parsed.platformId = `${parsed.channel}:${parsed.platformId}`;
|
||||||
|
}
|
||||||
|
|
||||||
log.info('Registering channel', parsed);
|
log.info('Registering channel', parsed);
|
||||||
|
|
||||||
// Init v2 central DB
|
// Init v2 central DB
|
||||||
|
|||||||
@@ -34,15 +34,7 @@ export interface InboundEvent {
|
|||||||
*/
|
*/
|
||||||
export async function routeInbound(event: InboundEvent): Promise<void> {
|
export async function routeInbound(event: InboundEvent): Promise<void> {
|
||||||
// 1. Resolve messaging group
|
// 1. Resolve messaging group
|
||||||
// Adapters send prefixed platform IDs (e.g. "telegram:123") but users may
|
|
||||||
// register with raw IDs ("123"). Try exact match first, then stripped prefix.
|
|
||||||
let mg = getMessagingGroupByPlatform(event.channelType, event.platformId);
|
let mg = getMessagingGroupByPlatform(event.channelType, event.platformId);
|
||||||
if (!mg) {
|
|
||||||
const prefix = `${event.channelType}:`;
|
|
||||||
if (event.platformId.startsWith(prefix)) {
|
|
||||||
mg = getMessagingGroupByPlatform(event.channelType, event.platformId.slice(prefix.length));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!mg) {
|
if (!mg) {
|
||||||
// Auto-create messaging group (adapter already decided to forward this)
|
// Auto-create messaging group (adapter already decided to forward this)
|
||||||
|
|||||||
Reference in New Issue
Block a user