LibreChat/packages
Marco Beretta 13d677c4ac
fix: cap existing shared links when forced retention converts a conversation
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.
2026-07-01 19:38:19 +02:00
..
api fix: cap shared-link expiry at source conversation and enforce retention on assistant saves 2026-06-30 04:51:45 +02:00
client 🧪 ci: Resolve DataTable test infinite re-render (#13947) 2026-06-24 23:40:18 -04:00
data-provider feat: add ephemeral retention mode for forced temporary chats 2026-06-30 04:51:45 +02:00
data-schemas fix: cap existing shared links when forced retention converts a conversation 2026-07-01 19:38:19 +02:00