mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-07-02 20:32:58 +00:00
A SharedLink embeds a snapshot of the conversation (message refs and file snapshots) and its TTL index keys off expiredAt alone, while shared-link reads use activeExpirationFilter. So a permanent share (expiredAt null) created before an install switched to ephemeral stayed publicly readable indefinitely after the forced-temporary conversation and messages TTL out. Add capConversationSharedLinks and call it wherever forced retention converts a conversation - saveConvo's backfill, the shared cascade, and the cap-to-parent path - so existing shares with no expiration or a later one are capped to the forced deadline and expire with the conversation. |
||
|---|---|---|
| .. | ||
| api | ||
| client | ||
| data-provider | ||
| data-schemas | ||