LibreChat/api
Marco Beretta 97089205fb
fix: enforce tag retention before the rename commits
PUT /api/tags/:tag renamed the tag first and ran the forced-retention cascade
with the new tag afterwards. A cascade failure returned 500 with the rename
already committed, and a retried PUT /:oldTag hit the 404 path because the old
tag no longer exists, so the tagged conversations' messages, shares, and files
could never be backfilled.

Run the cascade with the old tag before the rename, mirroring the DELETE route:
the old tag selects the same conversations the renamed tag will carry,
enforcing on a nonexistent tag is a no-op, and a failed rename now retries
cleanly with retention already applied.
2026-07-05 03:11:46 +02:00
..
app 🧠 feat: Add Memory as an Agent Capability with Inline Tools and Ephemeral Badge (#13869) 2026-06-24 17:14:13 -04:00
cache 🪂 feat: Graceful HTTP shutdown on SIGTERM/SIGINT (#13211) 2026-05-20 13:33:53 -04:00
config 🪵 refactor: Bound Log Traversal And Remove Legacy api/config Logger (#13813) 2026-06-17 12:31:32 -04:00
db ⚖️ feat: Add Operational Prometheus Metrics (#13265) 2026-05-22 20:47:41 -04:00
models 🗑️ chore: Remove Action Test Suite and Update Mock Implementations (#12268) 2026-03-21 14:28:55 -04:00
server fix: enforce tag retention before the rename commits 2026-07-05 03:11:46 +02:00
strategies 🌐 fix: Centralize Outbound Proxy Handling (#13726) 2026-06-14 10:47:49 -04:00
test 🏷️ fix: Scope File Search entity_id to Agent Knowledge-Base Files Only (#13693) 2026-06-20 10:18:25 -04:00
utils 📖 feat: Add Claude Fable 5 Support (#13628) 2026-06-09 16:22:39 -04:00
jest.config.js 📦 chore: npm audit fix (#13828) 2026-06-17 21:54:04 -04:00
jsconfig.json
package.json 🪝 feat: Human-in-the-Loop Runtime - Tool Approval + Ask-User-Question (Slice B) (#13942) 2026-06-29 16:56:41 -04:00
typedefs.js 🧬 chore: Align LibreChat With Agents LangChain Upgrade (#12922) 2026-05-03 12:46:01 -04:00