fix(media): decode remote URL fallback filenames

This commit is contained in:
clawsweeper
2026-05-19 11:31:26 +00:00
parent ea88d2598a
commit 8cbac43f9b
3 changed files with 3 additions and 2 deletions
+1 -1
View File
@@ -17,7 +17,7 @@ Docs: https://docs.openclaw.ai
- Agents/subagents: recover stale completion announces by retrying unsupported transcript-wait wakes without transcript waiting and forcing a message-tool handoff when the requester run is already stale. Fixes #83699. (#83700) Thanks @galiniliev.
- Agents/subagents: skip stale embedded-run wake probes for dormant completion requesters, so late subagent completions go straight to requester-agent/direct handoff instead of producing `reason=no_active_run` queue noise. (#82964) Thanks @galiniliev.
- CLI: retry config snapshot reads after a transient failure so one rejected read no longer poisons later commands in the same process. (#83931) Thanks @honor2030.
- Media: decode URL path basenames before using them as remote media fallback filenames, so files like `My%20Report.pdf` are surfaced as `My Report.pdf`. Fixes #84050.
- Media: decode URL path basenames before using them as remote media fallback filenames, so files like `My%20Report.pdf` are surfaced as `My Report.pdf`. Fixes #84050. (#84052) Thanks @jbetala7.
- WhatsApp: clarify inbound group diagnostics so observed but unregistered groups point to `channels.whatsapp.groups` without changing routing or sender authorization. (#83846) Thanks @neeravmakwana.
- WhatsApp: drain pending outbound deliveries on a 30s periodic timer in addition to the reconnect handler, so messages enqueued while the provider is already connected no longer wait for the next reconnect to send. (#79083) Thanks @Oviemudiaga.
- CLI/TUI: include gateway plugin slash commands in TUI autocomplete, so connected sessions can suggest plugin-owned commands exposed by the running Gateway. (#83640) Thanks @se7en-agent.
+1
View File
@@ -624,6 +624,7 @@ describe("readRemoteMediaBuffer", () => {
it.each([
["https://example.com/files/reports%2FQ1.pdf", "reports_Q1.pdf"],
["https://example.com/files/reports%5CQ1.pdf", "reports_Q1.pdf"],
["https://example.com/files/reports%2F%2FQ1.pdf", "reports__Q1.pdf"],
])(
"keeps decoded URL fallback separators inside the selected basename",
async (url, fileName) => {
+1 -1
View File
@@ -135,7 +135,7 @@ function basenameFromUrlPathname(pathname: string): string {
return "";
}
try {
return decodeURIComponent(base).replace(/[\\/]+/g, "_");
return decodeURIComponent(base).replace(/[\\/]/g, "_");
} catch {
return base;
}