mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-07-02 20:32:58 +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. |
||
|---|---|---|
| .. | ||
| app | ||
| cache | ||
| config | ||
| db | ||
| models | ||
| server | ||
| strategies | ||
| test | ||
| utils | ||
| jest.config.js | ||
| jsconfig.json | ||
| package.json | ||
| typedefs.js | ||