fix(media): retain inbound media with recursive cleanup TTL (#38292)

* Config: add media retention TTL setting

* Media: recurse persisted media cleanup

* Gateway: add persisted media cleanup timer

* Media: harden retention cleanup sweep

* Media: make recursive retention cleanup opt-in

* Media: retry writes after empty-dir cleanup race
This commit is contained in:
Vincent Koc
2026-03-06 22:06:09 -05:00
committed by GitHub
parent 563a125c66
commit ba9eaf2ee2
11 changed files with 446 additions and 40 deletions

View File

@@ -423,9 +423,11 @@ export const FIELD_HELP: Record<string, string> = {
"nodeHost.browserProxy.allowProfiles":
"Optional allowlist of browser profile names exposed through node proxy routing. Leave empty to expose all configured profiles, or use a tight list to enforce least-privilege profile access.",
media:
"Top-level media behavior shared across providers and tools that handle inbound files. Keep defaults unless you need stable filenames for external processing pipelines.",
"Top-level media behavior shared across providers and tools that handle inbound files. Keep defaults unless you need stable filenames for external processing pipelines or longer-lived inbound media retention.",
"media.preserveFilenames":
"When enabled, uploaded media keeps its original filename instead of a generated temp-safe name. Turn this on when downstream automations depend on stable names, and leave off to reduce accidental filename leakage.",
"media.ttlHours":
"Optional retention window in hours for persisted inbound media cleanup across the full media tree. Leave unset to preserve legacy behavior, or set values like 24 (1 day) or 168 (7 days) when you want automatic cleanup.",
audio:
"Global audio ingestion settings used before higher-level tools process speech or media content. Configure this when you need deterministic transcription behavior for voice notes and clips.",
"audio.transcription":