LibreChat/packages
Marco Beretta d31f9cb662
fix: enforce forced retention on global tag rename and delete
Per-conversation tag writes already convert their conversation under
forced ephemeral retention, but global bookmark-tag renames and deletes
rewrite conversation rows via Conversation.updateMany without setting
isTemporary/expiredAt. A permanent chat tagged before the install
switched to ephemeral, touched only by a tag rename or delete, would
keep its retention fields unset and stay visible and non-expiring.

Add cascadeForcedRetentionByTag plus an applyForcedRetentionToTag method
that bulk-converts every conversation carrying a tag (and backfills its
messages and caps its shares) through the shared gap filter, so it never
extends a chat that already expires sooner. Load the interface config on
PUT /:tag and DELETE /:tag and route those writes through it.
2026-06-24 15:38:10 +02:00
..
api fix: cap shared-link expiry at source conversation and enforce retention on assistant saves 2026-06-23 16:40:57 +02:00
client 🏷️ chore: Bump Individual Package Versions (#13891) 2026-06-22 09:54:19 -04:00
data-provider feat: add ephemeral retention mode for forced temporary chats 2026-06-23 16:40:21 +02:00
data-schemas fix: enforce forced retention on global tag rename and delete 2026-06-24 15:38:10 +02:00