fix: normalize Discord wildcard sentinel parsing (#29459) (thanks @Sid-Qin)

This commit is contained in:
Peter Steinberger
2026-03-02 03:05:46 +00:00
parent 6210d2e238
commit efd303dbc4
2 changed files with 2 additions and 1 deletions

View File

@@ -21,6 +21,7 @@ Docs: https://docs.openclaw.ai
### Fixes
- Discord/Components wildcard handlers: use distinct internal registration sentinel IDs and parse those sentinels as wildcard keys so select/user/role/channel/mentionable/modal interactions are not dropped by raw customId dedupe paths. Landed from contributor PR #29459 by @Sid-Qin. Thanks @Sid-Qin.
- Model directives/Auth profiles: split `/model` profile suffixes at the first `@` after the last slash so email-based auth profile IDs (for example OAuth profile IDs) resolve correctly. Landed from contributor PR #30932 by @haosenwang1018. Thanks @haosenwang1018.
- Windows/Plugin install: avoid `spawn EINVAL` on Windows npm/npx invocations by resolving to `node` + npm CLI scripts instead of spawning `.cmd` directly. Landed from contributor PR #31147 by @codertony. Thanks @codertony.
- LINE/Voice transcription: classify M4A voice media as `audio/mp4` (not `video/mp4`) by checking the MPEG-4 `ftyp` major brand (`M4A ` / `M4B `), restoring voice transcription for LINE voice messages. Landed from contributor PR #31151 by @scoootscooob. Thanks @scoootscooob.

View File

@@ -662,7 +662,7 @@ export function parseDiscordComponentCustomIdForCarbon(id: string): ComponentPar
}
export function parseDiscordModalCustomIdForCarbon(id: string): ComponentParserResult {
if (id === "*" || id === "__openclaw_discord_component_modal_wildcard__") {
if (id === "*" || isDiscordComponentWildcardRegistrationId(id)) {
return { key: "*", data: {} };
}
const parsed = parseCustomId(id);