Conversation
- Rewrite the temporary chat feature page into a combined Temporary Chat & Data Retention guide covering retentionMode, the three modes, the behavior matrix, save-path coverage, migration, and an FAQ - Document the new ephemeral retention mode in the interface config reference and align retainAgentFiles notes - Update the activation steps for the new top-right Temporary Chat button and add screenshots
Cover the user-facing and admin-facing changes merged to LibreChat dev over the last two weeks: required two-factor authentication, passkeys, email address change, ephemeral retention mode, the redesigned message composer, chat list filters, unread replies and notifications, project instructions and files, conversation starters in the Agent Builder, the Agent Marketplace, undocking artifacts, Bash output rendering, theme appearance keys and roles, config override validation, and the new librechat.yaml keys. Rewrite the temporary chat page against the merged retention code, drop the outdated screenshots, and fix pages that still described the old attach and MCP dropdowns.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
📦 Next.js Bundle Analysis for librechat.aiThis analysis was generated by the Next.js Bundle Analysis action. 🤖 This PR introduced no changes to the JavaScript bundle! 🙌 |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 19ed270a86
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| - **To `all` or `ephemeral`:** existing chats get a deadline the next time they are written to. Under `ephemeral`, an older regular chat that receives a new message, edit, feedback or branch is converted to a temporary chat on the spot: it leaves history and search and loses its bookmarks. Chats nobody touches keep their current state. | ||
| - **Back to `temporary`:** chats saved under `all` still carry their deadlines and will still be deleted. Chats saved under `ephemeral` remain temporary chats and keep expiring. | ||
|
|
||
| To stop regular chats from expiring after leaving `all` or `ephemeral`, clear their deadlines in `mongosh`: |
There was a problem hiding this comment.
Clear retention deadlines from all preserved chat data
When leaving all or ephemeral after regular chats have already acquired deadlines, this rollback only unsets expiredAt on conversations and messages, even though the page states that attached files and shared links also receive retention deadlines. Those records can therefore still be deleted by the TTL index or file sweep, leaving the supposedly preserved chats with missing attachments or dead share links; extend the rollback to every affected collection or explicitly warn that those assets remain scheduled for deletion.
Useful? React with 👍 / 👎.
| | <kbd>Shift</kbd>+<kbd>Enter</kbd> | New line. | | ||
| | <kbd>Ctrl</kbd>+<kbd>Enter</kbd> (<kbd>Cmd</kbd>+<kbd>Enter</kbd>) | While a response streams: the alternate action, **send now** when <kbd>Enter</kbd> queues, or **queue** when <kbd>Enter</kbd> steers. | | ||
| | <kbd>Alt</kbd>+<kbd>Enter</kbd> (<kbd>Option</kbd>+<kbd>Enter</kbd>) | While an agent responds: interrupt and send, when available. | | ||
| | <kbd>Ctrl</kbd>+<kbd>Shift</kbd>+<kbd>X</kbd> (<kbd>Cmd</kbd>+<kbd>Shift</kbd>+<kbd>X</kbd>) | Stop the response. | |
There was a problem hiding this comment.
Use the documented stop-response shortcut
The new composer table says that stopping a response uses Ctrl/Cmd+Shift+X, while the existing Agent streaming instructions on this same revision document the Stop action as Ctrl/Cmd+Shift+.. Users relying on the table during a long response or tool call will therefore be given a conflicting shortcut; verify the actual binding and make both sections document the same key combination.
Useful? React with 👍 / 👎.
| </Step> | ||
| <Step> | ||
|
|
||
| **Pin the relying party ID (recommended).** Each passkey is permanently bound to the RP ID it was created under. If `DOMAIN_CLIENT` might ever change, set `PASSKEY_RP_ID` now so existing passkeys keep working. |
There was a problem hiding this comment.
Qualify when pinning the passkey RP ID preserves credentials
For deployments that later move to an unrelated hostname, pinning PASSKEY_RP_ID=chat.example.com does not keep existing passkeys working: WebAuthn requires the new origin's host to equal or be a subdomain of the pinned RP ID, so a move to a sibling such as new.example.com or another domain makes ceremonies fail. Limit this recommendation to host changes within the RP ID's scope and explain that a stable parent domain must be chosen before enrollment when sibling-subdomain moves are expected.
Useful? React with 👍 / 👎.
| <Accordion title="What is the difference between all and ephemeral?"> | ||
| `all` keeps chats normal and visible, with a delete-by date. `ephemeral` makes every chat | ||
| temporary: hidden from history and search, with the toggle locked on. Choose `all` for "delete | ||
| after N days" and `ephemeral` for "never keep conversations". |
There was a problem hiding this comment.
Avoid describing ephemeral mode as non-persistent
The phrase “never keep conversations” is inaccurate for operators choosing a compliance policy: ephemeral still writes conversations, messages, files, and links to storage and retains them for temporaryChatRetention (at least one hour and potentially up to a year) before background deletion. Describe it as hiding chats and expiring them after the configured period, and make clear that this mode does not provide zero-persistence or immediate deletion.
Useful? React with 👍 / 👎.
Summary
Documents the user- and admin-facing changes merged to LibreChat
devover the last two weeks that had no docs yet: required 2FA, passkeys, email address change, the ephemeral retention mode, the redesigned message composer (new page), chat list filters, unread replies and notifications, project instructions and files, Agent Builder conversation starters, the Agent Marketplace, undocking artifacts, Bash output, the missing theme appearance keys and color roles, Admin Panel override validation, and the newlibrechat.yamlkeys (passkeys,emailChange,projects,conversationList,fileListLimit,interface.replyNotifications,interface.artifactUndocking,interface.composerRecentFiles, queue timeouts,rateLimits.mcpApps).Supersedes #611: its temporary chat page is rewritten against the merged retention code, and its outdated screenshots are dropped. Pages that still described the old attach and MCP dropdowns are corrected. Features newer than v0.8.8 carry an availability note.
Change Type
Testing
pnpm buildpasses on the final treeorigin/dev, followed by an independent fact-check pass; all of its findings were fixedChecklist