mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-07-10 16:23:44 +00:00
The migration sweep caps a conversation's File records, but the runtime convert-on-touch cascades did not: converting a pre-existing chat through a message save, edit, feedback, tag, or project write set deadlines on the conversation, messages, and shares while leaving File documents at expiredAt: null. File cleanup only sweeps rows whose own expiredAt is set, so those uploads outlived the ephemeral chat's TTL. Cap the conversation's files alongside messages and shares in both cascadeForcedConversationRetention (single) and the bulk tag/project cascade, reusing capConversationFiles and threading the File model through the cascade helpers and their callers. Files are scoped by conversationId (a unique per-chat id) since File.user is an ObjectId rather than the string user id. |
||
|---|---|---|
| .. | ||
| api | ||
| client | ||
| data-provider | ||
| data-schemas | ||