mirror of
https://github.com/qwibitai/nanoclaw.git
synced 2026-06-12 18:11:51 +08:00
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);
|
||||
}
|
||||
|
||||
// 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);
|
||||
|
||||
// Init v2 central DB
|
||||
|
||||
@@ -34,15 +34,7 @@ export interface InboundEvent {
|
||||
*/
|
||||
export async function routeInbound(event: InboundEvent): Promise<void> {
|
||||
// 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);
|
||||
if (!mg) {
|
||||
const prefix = `${event.channelType}:`;
|
||||
if (event.platformId.startsWith(prefix)) {
|
||||
mg = getMessagingGroupByPlatform(event.channelType, event.platformId.slice(prefix.length));
|
||||
}
|
||||
}
|
||||
|
||||
if (!mg) {
|
||||
// Auto-create messaging group (adapter already decided to forward this)
|
||||
|
||||
Reference in New Issue
Block a user