LibreChat/api
Marco Beretta 61ca5ddfa1
fix(import): choose the storage backend per asset, not per archive
A deployment can point fileStrategies.image and fileStrategies.document at
different places, and an export mixes images with audio, video, and PDFs.
Resolving isImage: true once for the whole archive sent every non-image
attachment to the image backend, so it landed somewhere the deployment never
meant it to live and could be unavailable after a restart.

Both backends are still resolved up front, so a misconfigured strategy
fails the job at setup rather than surfacing as a per-asset error halfway
through; only the choice between them is per asset. saveBuffer now reports
which backend took the bytes so the file row records it.
2026-08-02 02:04:05 +02:00
..
app 🔗 fix: Normalize MCP Tool Keys at Every Producer, Resolve Raw Names via Aliases (#14553) 2026-08-01 07:39:24 -04:00
cache feat(import): add cache-backed import job store 2026-08-02 02:01:57 +02: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 🧩 fix: Preserve Deployment Skill IDs on Agents (#14368) 2026-07-21 19:44:27 -04:00
server fix(import): choose the storage backend per asset, not per archive 2026-08-02 02:04:05 +02:00
strategies 📉 perf: cache OpenID JWT user documents (#14187) 2026-07-12 07:53:50 -04:00
test feat(import): route Grok exports through the job pipeline and label them 2026-08-02 02:02:43 +02:00
utils ✳️ feat: Claude Opus 5 Support (#14422) 2026-07-24 21:45:32 -04:00
jest.config.js 📦 chore: npm audit fix (#13828) 2026-06-17 21:54:04 -04:00
jsconfig.json
package.json 📦 chore: update sanitize-html to latest (#14573) 2026-08-01 09:35:57 -04:00
typedefs.js 🛂 test: Cover Tool Approval Workflows End to End (#14427) 2026-07-26 21:58:25 -04:00