mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-07-03 12:54:01 +00:00
When a message-only forced save caps to a parent that is already temporary and expires before the freshly computed window, the gated cascade leaves the parent untouched (modifiedCount 0) and skips the message backfill. Older messages with expiredAt null or a later deadline then survive after the parent's TTL deletes the conversation. Extract the cap logic into capForcedRetentionToParent, shared by saveMessage and applyForcedRetention, which now also backfills the conversation's non-conforming messages to the parent's earlier deadline. The hot normal-send path does not cap, so it keeps the gated cascade with no extra per-message work. |
||
|---|---|---|
| .. | ||
| api | ||
| client | ||
| data-provider | ||
| data-schemas | ||