mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-07-10 16:23:44 +00:00
The edit/feedback path calls applyForcedRetention with capExpiryToConversation, which unconditionally set the touched message's expiredAt to the parent/fresh forced deadline. When that message already expired sooner (an older message keeps its creation-time deadline while later saves refreshed the parent's), the $set extended it past its own schedule, overwriting the earlier deadline that capForcedRetentionToParent had just preserved. Cap the touched message to min(existing expiredAt, forcedExpiredAt) via the same $min/$ifNull pipeline forceConversationMessagesTemporary already uses, so a message with a sooner deadline keeps it and a permanent message still receives the forced one. |
||
|---|---|---|
| .. | ||
| api | ||
| client | ||
| data-provider | ||
| data-schemas | ||