Skip to content

📚 docs: Document Recent Dev Changes and Rewrite Temporary Chat Retention - #795

Merged
berry-13 merged 4 commits into
mainfrom
berry-13/docs-update-latest
Oct 2, 2026
Merged

berry-13 merged 4 commits into
mainfrom
berry-13/docs-update-latest

Conversation

@berry-13

@berry-13 berry-13 commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Documents the user- and admin-facing changes merged to LibreChat dev over 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 new librechat.yaml keys (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 replaced with new ones taken from current dev (temporary chat button and active state, the composer palette, the MCP servers catalog). Pages that still described the old attach and MCP dropdowns are corrected. It carries no per-feature version notes: it relies on versioned docs from #770 (the live docs follow dev, and v0.8.8 is served as the latest release), so merge #770 first.

Change Type

  • Documentation update

Testing

  • pnpm build passes on the final tree
  • Every claim checked against LibreChat origin/dev, followed by an independent fact-check pass; all of its findings were fixed
  • Internal links and anchors in the added lines resolve
  • Screenshots captured from a local dev build (dark mode)

Checklist

  • English sources only; locale copies are left to the translation workflow
  • No em dashes in added text

- 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.
@vercel

vercel Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
librechat-ai Ready Ready Preview Oct 2, 2026 9:25am UTC

Request Review

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-02T09:26:06.871696Z 9530613 New commits
🔒 Security Review ✅ Completed 2026-10-01T22:19:55.944183Z 19ed270 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@github-actions

github-actions Bot commented Oct 1, 2026

Copy link
Copy Markdown
Contributor

📦 Next.js Bundle Analysis for librechat.ai

This analysis was generated by the Next.js Bundle Analysis action. 🤖

This PR introduced no changes to the JavaScript bundle! 🙌

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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`:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge 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. |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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".

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

📦 Next.js Bundle Analysis for librechat.ai

This analysis was generated by the Next.js Bundle Analysis action. 🤖

This PR introduced no changes to the JavaScript bundle! 🙌

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 93f72c6cac

ℹ️ 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".

Comment on lines +208 to +209
When the conversation was last saved. Each new message moves the conversation's deadline forward,
so an active chat isn't deleted while it is in use.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Clarify that active chats still lose older messages

This answer implies the complete chat is retained while it remains active, but the retention description above states that only the conversation deadline moves forward and each message keeps the deadline assigned when it was saved. Under all or ephemeral, a conversation used for longer than the retention period therefore begins losing its earliest messages even though the conversation itself remains visible; the 90-day example likewise is not a whole-chat “last activity” policy. Explain the record-level behavior so operators do not select this configuration expecting intact rolling chat history.

Useful? React with 👍 / 👎.

Comment on lines +62 to +63
| `all` | Every chat | Yes, until each chat expires | No |
| `ephemeral` | Every chat | No, every chat is temporary | No, the toggle is locked on |

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Qualify retention modes as non-retroactive

The table says all and ephemeral affect every chat, but the switching section later explains that only records saved after the configuration change receive deadlines and that untouched existing chats keep their current state. Consequently, enabling all does not schedule every historical chat for deletion, and enabling ephemeral does not immediately hide every historical chat. Qualify these rows so administrators do not mistake the modes for a retroactive retention migration.

Useful? React with 👍 / 👎.


When properly configured:
1. Users will see "From SharePoint" option in the file attachment menu
1. Users will see a **From SharePoint** option in the **Attach** section of the [composer's **+** palette](/docs/features/composer#add-files)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Document the legacy SharePoint palette entries

When fileConfig.legacyFileUploadUX is enabled, the composer page and the updated SharePoint guide explain that there is no standalone From SharePoint row; instead, users must choose a destination-specific entry such as Upload to Provider (From SharePoint) under More upload options. This unconditional usage step therefore sends those deployments looking for a control that is not present. Add the legacy-mode path here or defer to the qualified SharePoint instructions.

Useful? React with 👍 / 👎.

@github-actions

github-actions Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

📦 Next.js Bundle Analysis for librechat.ai

This analysis was generated by the Next.js Bundle Analysis action. 🤖

This PR introduced no changes to the JavaScript bundle! 🙌

@berry-13
berry-13 merged commit a736d59 into main Oct 2, 2026
5 checks passed
@berry-13
berry-13 deleted the berry-13/docs-update-latest branch October 2, 2026 09:35

This branch was successfully deployed

1 active deployment
Preview — 9530613b Deployed Oct 2, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant