From cc4d84b93d3a4a7bab576eb190457eab584ad04e Mon Sep 17 00:00:00 2001 From: G30 <50341825+silentoplayz@users.noreply.github.com> Date: Fri, 4 Sep 2026 11:40:51 -0400 Subject: [PATCH] fix: show literal ascii sequences instead of arrow ligatures (#29595) Inter ships arrow substitutions as OpenType contextual alternates, and Open WebUI sets no font-variant-ligatures, so a sequence like <--- is stored and sent exactly as typed while being drawn as an arrow. Reported as text conversion in #29594, where the memory rule had in fact worked and only the display was misleading. Reading the DOM back with the bundled Inter file loaded in isolation confirms every field holds U+3C U+2D U+2D U+2D. Only the glyphs differ. no-contextual rather than none: none, no-contextual, and font-feature-settings "calt" 0 all fix it, which places the arrow in contextual alternates. no-contextual disables that one feature and leaves standard ligatures intact, so ordinary prose is unaffected. Set on html, next to the existing document-wide typography, so it inherits to editable fields and rendered content without a new selector. Scoping it to inputs would fix the field you type into and leave the memory list and chat messages still drawing arrows. --- src/app.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/app.css b/src/app.css index 835e266fad..81f4293f9f 100644 --- a/src/app.css +++ b/src/app.css @@ -19,6 +19,7 @@ html { word-break: break-word; + font-variant-ligatures: no-contextual; /* font-size scales the entire document via the same UI control */ font-size: calc(1rem * var(--app-text-scale, 1)); }