mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-07-03 21:04:59 +00:00
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. |
||
|---|---|---|
| .. | ||
| api | ||
| client | ||
| data-provider | ||
| data-schemas | ||