LibreChat/packages
Marco Beretta df36cd8d44
fix: convert active retained parents when forcing ephemeral retention
The forced-retention cascade keyed conversion off expiredAt: null, so a switch
from all to ephemeral retention skipped conversations that were already
isTemporary: false with a future expiredAt. Message-only paths (branch, artifact,
abort) then produced a temporary message under a parent that stayed visible in
history via the active non-temporary branch of the visibility filter.

Gate the cascade on isTemporary !== true instead so saveMessage, saveConvo, and
the message backfill all convert non-temporary parents and their messages
regardless of an existing active expiration, while remaining a no-op once a
conversation is already temporary.
2026-06-30 04:54:43 +02:00
..
api fix: cap shared-link expiry at source conversation and enforce retention on assistant saves 2026-06-30 04:51:45 +02:00
client
data-provider feat: add ephemeral retention mode for forced temporary chats 2026-06-30 04:51:45 +02:00
data-schemas fix: convert active retained parents when forcing ephemeral retention 2026-06-30 04:54:43 +02:00