LibreChat/packages
Marco Beretta a5bd176384
feat: add migration to force retention on pre-existing chats
Forced ephemeral retention only converts conversations that are
subsequently written (convert-on-touch), so enabling the mode on a
deployment with existing data left untouched permanent chats
(isTemporary: false/expiredAt: null) satisfying the visibility filter
and never expiring.

Add a sweepForcedRetention helper that streams every non-conforming
conversation and converts it, its messages, and its shares to the
forced window, capping each to the earlier of its own deadline and the
window so it never extends data scheduled to expire sooner and never
lets a message outlive its conversation. Expose it through a
config/migrate-ephemeral-retention.js script (and npm run
migrate:ephemeral-retention) that loads the app config, refuses to run
unless ephemeral mode is enabled (or --force), and supports --dry-run.
The sweep is idempotent and safe to re-run.
2026-06-26 22:20:29 +02:00
..
api fix: preserve earlier message and file expiries under forced retention 2026-06-24 18:23:47 +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 feat: add migration to force retention on pre-existing chats 2026-06-26 22:20:29 +02:00