From ac8c10c1f0818946d512e40c3d08b06f7004f2fa Mon Sep 17 00:00:00 2001 From: Inferencebot Date: Tue, 27 Oct 2026 22:15:32 +0000 Subject: [PATCH] =?UTF-8?q?librechat.yaml:=20modelSpecs.enforce=20false=20?= =?UTF-8?q?=E2=80=94=20unblock=20pre-spec=20conversations?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With enforce: true (in place since at least Oct 23), every send whose body carries no `spec` is rejected by api/server/middleware/buildEndpointOption.js with "No model spec selected", surfaced to members as "Inference Co-op could not complete this request." 400 of 547 conversations across 37 users had no `spec` — all created before the spec system (newest Oct 20). They fail on the members' first send; new chats were fine because the softDefault spec pre-selects. enforce: false lets those conversations send with their own stored model exactly as before Oct 20. prioritize stays true, so the spec picker is still the primary chooser — it is just no longer mandatory. Verified: the change is read at boot (no watcher in the image), so the app was restarted; the served stylesheet md5 is unchanged by the restart; the mirror is byte-identical to the deployed file (sha256 219dbdf2ca0b64f8…). Backup of the previous config stays on the volume as /app/data/librechat.yaml.bak-20261027T221149Z. If enforcement is ever restored, backfill `spec` on those conversations first, mapping by each conversation's own `model` (only exact matches — a mismatch triggers "Model spec mismatch" instead). --- librechat.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/librechat.yaml b/librechat.yaml index 88a619e..1982297 100644 --- a/librechat.yaml +++ b/librechat.yaml @@ -28,7 +28,7 @@ endpoints: # Emoji-ified model picker (same convention as models.md / OWUI): # 🌱 = renewable (GreenPT + Regolo), 🔒 = TEE-private (Tinfoil). modelSpecs: - enforce: true + enforce: false prioritize: true list: - name: tinfoil-deepseek-v4-1-flash