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. |
||
|---|---|---|
| .. | ||
| controllers | ||
| middleware | ||
| routes | ||
| services | ||
| utils | ||
| cleanup.js | ||
| experimental.js | ||
| index.js | ||
| index.metrics.spec.js | ||
| index.spec.js | ||
| socialLogins.js | ||
| socialLogins.spec.js | ||
| telemetry.js | ||
| telemetry.spec.js | ||