fix: resolve discord target typing

This commit is contained in:
Cheese 2026-01-28 11:34:59 +08:00
parent 98fb58e318
commit 0d95334203
No known key found for this signature in database

View File

@ -5,12 +5,10 @@ import {
type MessagingTarget,
type MessagingTargetKind,
type MessagingTargetParseOptions,
type DirectoryConfigParams,
type ChannelDirectoryEntry,
} from "../channels/targets.js";
import type { DirectoryConfigParams } from "../channels/plugins/directory-config.js";
import { listDiscordDirectoryPeersLive } from "./directory-live.js";
import { resolveDiscordAccount } from "./accounts.js";
export type DiscordTargetKind = MessagingTargetKind;
@ -82,8 +80,8 @@ export async function resolveDiscordTarget(
if (!trimmed) return undefined;
// If already a known format, parse directly
const directParse = parseDiscordTarget(trimmed, options);
if (directParse && directParse.kind !== "channel" && !isLikelyUsername(trimmed)) {
const directParse = parseDiscordTarget(trimmed, { defaultKind: "channel" });
if (directParse && !isLikelyUsername(trimmed)) {
return directParse;
}
@ -101,13 +99,13 @@ export async function resolveDiscordTarget(
const userId = match.id.replace(/^user:/, "");
return buildMessagingTarget("user", userId, trimmed);
}
} catch (error) {
} catch {
// Directory lookup failed - fall through to parse as-is
// This preserves existing behavior for channel names
}
// Fallback to original parsing (for channels, etc.)
return parseDiscordTarget(trimmed, options);
return parseDiscordTarget(trimmed, { defaultKind: "channel" });
}
/**