# OmniRoute — Dashboard Features Gallery (Svenska) 🌐 **Languages:** 🇺🇸 [English](../../../../guides/FEATURES.md) · 🇪🇹 [am](../../../am/docs/guides/FEATURES.md) · 🇸🇦 [ar](../../../ar/docs/guides/FEATURES.md) · 🇦🇿 [az](../../../az/docs/guides/FEATURES.md) · 🇧🇬 [bg](../../../bg/docs/guides/FEATURES.md) · 🇧🇩 [bn](../../../bn/docs/guides/FEATURES.md) · 🇧🇦 [bs](../../../bs/docs/guides/FEATURES.md) · 🇨🇿 [cs](../../../cs/docs/guides/FEATURES.md) · 🇩🇰 [da](../../../da/docs/guides/FEATURES.md) · 🇩🇪 [de](../../../de/docs/guides/FEATURES.md) · 🇬🇷 [el](../../../el/docs/guides/FEATURES.md) · 🇪🇸 [es](../../../es/docs/guides/FEATURES.md) · 🇪🇪 [et](../../../et/docs/guides/FEATURES.md) · 🇮🇷 [fa](../../../fa/docs/guides/FEATURES.md) · 🇫🇮 [fi](../../../fi/docs/guides/FEATURES.md) · 🇫🇷 [fr](../../../fr/docs/guides/FEATURES.md) · 🇮🇪 [ga](../../../ga/docs/guides/FEATURES.md) · 🇮🇳 [gu](../../../gu/docs/guides/FEATURES.md) · 🇳🇬 [ha](../../../ha/docs/guides/FEATURES.md) · 🇮🇱 [he](../../../he/docs/guides/FEATURES.md) · 🇮🇳 [hi](../../../hi/docs/guides/FEATURES.md) · 🇭🇷 [hr](../../../hr/docs/guides/FEATURES.md) · 🇭🇺 [hu](../../../hu/docs/guides/FEATURES.md) · 🇦🇲 [hy](../../../hy/docs/guides/FEATURES.md) · 🇮🇩 [id](../../../id/docs/guides/FEATURES.md) · 🇳🇬 [ig](../../../ig/docs/guides/FEATURES.md) · 🇮🇹 [it](../../../it/docs/guides/FEATURES.md) · 🇯🇵 [ja](../../../ja/docs/guides/FEATURES.md) · 🇬🇪 [ka](../../../ka/docs/guides/FEATURES.md) · 🇰🇭 [km](../../../km/docs/guides/FEATURES.md) · 🇮🇳 [kn](../../../kn/docs/guides/FEATURES.md) · 🇰🇷 [ko](../../../ko/docs/guides/FEATURES.md) · 🇱🇹 [lt](../../../lt/docs/guides/FEATURES.md) · 🇱🇻 [lv](../../../lv/docs/guides/FEATURES.md) · 🇮🇳 [ml](../../../ml/docs/guides/FEATURES.md) · 🇮🇳 [mr](../../../mr/docs/guides/FEATURES.md) · 🇲🇾 [ms](../../../ms/docs/guides/FEATURES.md) · 🇲🇹 [mt](../../../mt/docs/guides/FEATURES.md) · 🇲🇲 [my](../../../my/docs/guides/FEATURES.md) · 🇳🇵 [ne](../../../ne/docs/guides/FEATURES.md) · 🇳🇱 [nl](../../../nl/docs/guides/FEATURES.md) · 🇳🇴 [no](../../../no/docs/guides/FEATURES.md) · 🇮🇳 [or](../../../or/docs/guides/FEATURES.md) · 🇮🇳 [pa](../../../pa/docs/guides/FEATURES.md) · 🇵🇭 [phi](../../../phi/docs/guides/FEATURES.md) · 🇵🇱 [pl](../../../pl/docs/guides/FEATURES.md) · 🇵🇹 [pt](../../../pt/docs/guides/FEATURES.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/guides/FEATURES.md) · 🇷🇴 [ro](../../../ro/docs/guides/FEATURES.md) · 🇷🇺 [ru](../../../ru/docs/guides/FEATURES.md) · 🇱🇰 [si](../../../si/docs/guides/FEATURES.md) · 🇸🇰 [sk](../../../sk/docs/guides/FEATURES.md) · 🇸🇮 [sl](../../../sl/docs/guides/FEATURES.md) · 🇷🇸 [sr](../../../sr/docs/guides/FEATURES.md) · 🇰🇪 [sw](../../../sw/docs/guides/FEATURES.md) · 🇮🇳 [ta](../../../ta/docs/guides/FEATURES.md) · 🇮🇳 [te](../../../te/docs/guides/FEATURES.md) · 🇹🇭 [th](../../../th/docs/guides/FEATURES.md) · 🇹🇷 [tr](../../../tr/docs/guides/FEATURES.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/guides/FEATURES.md) · 🇵🇰 [ur](../../../ur/docs/guides/FEATURES.md) · 🇺🇿 [uz](../../../uz/docs/guides/FEATURES.md) · 🇻🇳 [vi](../../../vi/docs/guides/FEATURES.md) · 🇳🇬 [yo](../../../yo/docs/guides/FEATURES.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/guides/FEATURES.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/guides/FEATURES.md) --- 🌐 **Languages:** 🇺🇸 [English](../../../../guides/FEATURES.md) · 🇪🇹 [am](../../../am/docs/guides/FEATURES.md) · 🇸🇦 [ar](../../../ar/docs/guides/FEATURES.md) · 🇦🇿 [az](../../../az/docs/guides/FEATURES.md) · 🇧🇬 [bg](../../../bg/docs/guides/FEATURES.md) · 🇧🇩 [bn](../../../bn/docs/guides/FEATURES.md) · 🇧🇦 [bs](../../../bs/docs/guides/FEATURES.md) · 🇨🇿 [cs](../../../cs/docs/guides/FEATURES.md) · 🇩🇰 [da](../../../da/docs/guides/FEATURES.md) · 🇩🇪 [de](../../../de/docs/guides/FEATURES.md) · 🇬🇷 [el](../../../el/docs/guides/FEATURES.md) · 🇪🇸 [es](../../../es/docs/guides/FEATURES.md) · 🇪🇪 [et](../../../et/docs/guides/FEATURES.md) · 🇮🇷 [fa](../../../fa/docs/guides/FEATURES.md) · 🇫🇮 [fi](../../../fi/docs/guides/FEATURES.md) · 🇫🇷 [fr](../../../fr/docs/guides/FEATURES.md) · 🇮🇪 [ga](../../../ga/docs/guides/FEATURES.md) · 🇮🇳 [gu](../../../gu/docs/guides/FEATURES.md) · 🇳🇬 [ha](../../../ha/docs/guides/FEATURES.md) · 🇮🇱 [he](../../../he/docs/guides/FEATURES.md) · 🇮🇳 [hi](../../../hi/docs/guides/FEATURES.md) · 🇭🇷 [hr](../../../hr/docs/guides/FEATURES.md) · 🇭🇺 [hu](../../../hu/docs/guides/FEATURES.md) · 🇦🇲 [hy](../../../hy/docs/guides/FEATURES.md) · 🇮🇩 [id](../../../id/docs/guides/FEATURES.md) · 🇳🇬 [ig](../../../ig/docs/guides/FEATURES.md) · 🇮🇹 [it](../../../it/docs/guides/FEATURES.md) · 🇯🇵 [ja](../../../ja/docs/guides/FEATURES.md) · 🇬🇪 [ka](../../../ka/docs/guides/FEATURES.md) · 🇰🇭 [km](../../../km/docs/guides/FEATURES.md) · 🇮🇳 [kn](../../../kn/docs/guides/FEATURES.md) · 🇰🇷 [ko](../../../ko/docs/guides/FEATURES.md) · 🇱🇹 [lt](../../../lt/docs/guides/FEATURES.md) · 🇱🇻 [lv](../../../lv/docs/guides/FEATURES.md) · 🇮🇳 [ml](../../../ml/docs/guides/FEATURES.md) · 🇮🇳 [mr](../../../mr/docs/guides/FEATURES.md) · 🇲🇾 [ms](../../../ms/docs/guides/FEATURES.md) · 🇲🇹 [mt](../../../mt/docs/guides/FEATURES.md) · 🇲🇲 [my](../../../my/docs/guides/FEATURES.md) · 🇳🇵 [ne](../../../ne/docs/guides/FEATURES.md) · 🇳🇱 [nl](../../../nl/docs/guides/FEATURES.md) · 🇳🇴 [no](../../../no/docs/guides/FEATURES.md) · 🇮🇳 [or](../../../or/docs/guides/FEATURES.md) · 🇮🇳 [pa](../../../pa/docs/guides/FEATURES.md) · 🇵🇭 [phi](../../../phi/docs/guides/FEATURES.md) · 🇵🇱 [pl](../../../pl/docs/guides/FEATURES.md) · 🇵🇹 [pt](../../../pt/docs/guides/FEATURES.md) · 🇧🇷 [pt-BR](../../../pt-BR/docs/guides/FEATURES.md) · 🇷🇴 [ro](../../../ro/docs/guides/FEATURES.md) · 🇷🇺 [ru](../../../ru/docs/guides/FEATURES.md) · 🇱🇰 [si](../../../si/docs/guides/FEATURES.md) · 🇸🇰 [sk](../../../sk/docs/guides/FEATURES.md) · 🇸🇮 [sl](../../../sl/docs/guides/FEATURES.md) · 🇷🇸 [sr](../../../sr/docs/guides/FEATURES.md) · 🇰🇪 [sw](../../../sw/docs/guides/FEATURES.md) · 🇮🇳 [ta](../../../ta/docs/guides/FEATURES.md) · 🇮🇳 [te](../../../te/docs/guides/FEATURES.md) · 🇹🇭 [th](../../../th/docs/guides/FEATURES.md) · 🇹🇷 [tr](../../../tr/docs/guides/FEATURES.md) · 🇺🇦 [uk-UA](../../../uk-UA/docs/guides/FEATURES.md) · 🇵🇰 [ur](../../../ur/docs/guides/FEATURES.md) · 🇺🇿 [uz](../../../uz/docs/guides/FEATURES.md) · 🇻🇳 [vi](../../../vi/docs/guides/FEATURES.md) · 🇳🇬 [yo](../../../yo/docs/guides/FEATURES.md) · 🇨🇳 [zh-CN](../../../zh-CN/docs/guides/FEATURES.md) · 🇹🇼 [zh-TW](../../../zh-TW/docs/guides/FEATURES.md) Visuell guide till varje del av OmniRoute-instrumentpanelen. > 📅 **Senast uppdaterad:** 2026-06-28 — **v3.8.40** --- ## ✨ Höjdpunkter i v3.8.0 Cykeln v3.7.x → v3.8.0 lade till automatisk routing utan konfiguration, nya leverantörer, OAuth-flöden, större motståndskraft och en betydligt mer avancerad CLI-upplevelse. De viktigaste funktionerna listas nedan — fullständig information finns längre fram i dokumentet och i de länkade specifikationerna. - 🤖 **Automatisk kombination/routing utan konfiguration** — använd prefixen `auto/coding`, `auto/fast`, `auto/cheap`, `auto/offline`, `auto/smart`, `auto/lkgp`, `auto/chaos`. Drivs av en poängmotor med 16 faktorer och 6 kurerade **lägespaket** (ship-fast, cost-saver, quality-first, offline-friendly, reliability-first, chaos-mode) - 🆕 **Leverantören Command Code** (#2199) — fullständig registrering med modellkatalog och kvotspårning - 🆕 **Leverantören Z.AI** — ny leverantör med kostnadsfri nivå och kvotetiketter - 🎬 **Utökat mediestöd i KIE** — utökad katalog som inkluderar modeller för videogenerering - 🔐 **Devin-autentisering** — skrivbordsappen importerar en befintlig Devin API-nyckel; CLI:t använder lokala autentiseringsuppgifter från `devin auth login` - 🆓 **8 nya kostnadsfria leverantörer** — LLM7, Lepton, UncloseAI, BazaarLink, Completions, Enally, FreeTheAi, Command Code - 🎯 **Manifestmedveten nivåbaserad routing W1–W4** — leverantörsmanifest styr viktat nivåval - 🎨 **Fullständig OpenAI-kompatibilitet för Cursor** — verktygsanrop, strömning och sessionshantering från början till slut - 📊 **Användning av Cursor Pro-abonnemanget** — kvot- och cykeldata visas i instrumentpanelen för leverantörsgränser - ⚡ **Uppdelning per tjänstenivå/analys av Codex snabba nivå** — insyn i förbrukningen per nivå - 📌 **Beständig routing per session** — Codex-sessioner binds till samma konto mellan turerna - 🔊 **Förbättringar av Inworld TTS** — röstkataloger, strömning och förbättrad latens - 🔑 **Webbläsarfri Kiro-autentisering** — logga in via det lokala SQLite-lagret i `kiro-cli`, ingen webbläsare krävs - 📉 **Övervakning av kvoter och gränser för DeepSeek** — daglig och månatlig användning visas i instrumentpanelen - 🔄 **Återställningsmedveten routingstrategi** — kombinationer föredrar nu konton vars kvotfönster återställs snarast - ⏱️ **`fallbackDelayMs`** och **dynamisk identifiering av verktygsgränser** — mer exakt reservväxlingstid samt verktygsgränser per leverantör - 🔧 **Nedgradering av bakgrundsläge (Responses API)** — växlar till synkront läge med en strukturerad varning när en uppströmstjänst saknar stöd för bakgrundspollning - 🚦 **429-klassificering per leverantör** + växeln `useUpstream429BreakerHints` — mer detaljerat brytarbeteende med hjälp av uppströmstjänstens ledtrådar om hastighetsbegränsning - 🩺 **Instrumentpanel för modellernas nedkylningsperioder** — övervaka låsningar per modell och återaktivera dem manuellt från användargränssnittet - 🔒 **Dynamisk identifiering av Linux-certifikat för MITM** — fungerar i Debian/Ubuntu, Fedora/RHEL, Arch och andra distributioner - 💻 **Förbättringssvit för CLI:t** — fler än 20 kommandon, inklusive `omniroute providers`, `omniroute combos`, `omniroute doctor`, `omniroute setup` - 🔍 **Identifiering av inbäddningsmodeller för Qdrant** — automatisk avsökning av modeller i vektorlagret - 🔑 **API-nycklar/Bearer-nycklar med omfånget `manage`** — utför administrativa åtgärder programmatiskt via API:t - 🏥 **Hälsoanalys för kombinationsmål** + **strukturerad kombinationsbyggare** — hälsodata per mål och en gränssnittsbyggare för att sammanställa steg av typen `(provider, model, connection)` - 🤝 **GitLab Duo OAuth-leverantör** — logga in med GitLab-autentiseringsuppgifter - 🧠 **Reasoning Replay Cache** — hybridlagring av resonemangsspår i minnet och SQLite 📚 **Relaterad dokumentation:** [Ramverk för färdigheter](../frameworks/SKILLS.md) · [Minnessystem](../frameworks/MEMORY.md) · [Molnagenter](../frameworks/CLOUD_AGENT.md) · [Webhooks](../frameworks/WEBHOOKS.md) · [Reasoning Replay Cache](../routing/REASONING_REPLAY.md) --- ## 🔌 Leverantörer Hantera anslutningar till AI-leverantörer: OAuth-leverantörer (Claude Code, Codex), API-nyckelleverantörer (Groq, DeepSeek, OpenRouter) och kostnadsfria leverantörer (Qoder, Kiro). Kiro-konton inkluderar spårning av kreditsaldo – återstående krediter, total tilldelning och förnyelsedatum visas under Dashboard → Usage. OpenRouter-anslutningar kan lagra ett `preset` per anslutning i Advanced Settings. När det har angetts skickar OmniRoute det som OpenRouters toppnivåfält i begäran, till exempel `"preset": "email-copywriter"`, såvida inte klientbegäran redan innehåller ett eget `preset`. ![Instrumentpanel för leverantörer](../screenshots/01-providers.png) --- ## 🎨 Kombinationer Skapa kombinationer för modellroutning med 19 offentliga strategier: priority, weighted, round-robin, context-relay, fill-first, p2c (val mellan två alternativ), random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp (senast fungerande leverantör), context-optimized, cache-optimized, **fusion** (skickar parallellt till en panel av modeller och sammanställer sedan ett enda svar via en bedömare) och **pipeline**. Varje kombination kedjar flera modeller med automatisk reservväxling och innehåller snabbmallar och beredskapskontroller. Senaste förbättringarna av kombinationer: - **Strukturerad kombinationsbyggare** – skapa varje steg genom att välja leverantör, modell och exakt konto/anslutning - **Stöd för upprepade leverantörer** – återanvänd samma leverantör flera gånger i en kombination så länge tuppeln `(provider, model, connection)` är unik - **Hälsa för kombinationsmål** – analys- och hälsovyer skiljer nu mellan enskilda kombinationsmål/steg i stället för att slå samman allt till modellsträngar - **Sammansatt nivåordning** – `defaultTier -> fallbackTier` påverkar nu exekverings-/reservordningen vid körning för kombinationssteg på toppnivå - **Systempromptmallar** – kombinationens `system_message` stöder platshållarna `{{MODEL_ID}}`, `{{PROVIDER_ID}}`, `{{ACCOUNT}}` och `{{FINGERPRINT}}` på serversidan, vilka ersätts utifrån det mål som faktiskt routas precis före sändning. Endast tillåtna platshållare bearbetas och ersättningen är inte rekursiv; okända platshållare förblir oförändrade; tomma värden ersätts med tomma strängar; klientens systemprompter skrivs aldrig om. `{{FINGERPRINT}}` löses endast upp för fingeravtrycksbaserade kostnadsfria leverantörer med ett fäst eller automatiskt roterat fingeravtryck – i övriga fall ersätts det med en tom sträng (t.ex. anslutningar med ett enda fingeravtryck och leverantörer utan fingeravtryck). Ersättningen omfattar standardslingan för sändning, round-robin och fästa sessioner med kontextcache; strategierna fusion, chaos, pipeline och nested-execute ersätter ännu inte platshållare. ![Instrumentpanel för kombinationer](../screenshots/02-combos.png) --- ## 📊 Analys Omfattande användningsanalys med tokenförbrukning, kostnadsuppskattningar, aktivitetsvärmekartor, diagram över veckovis fördelning och uppdelningar per leverantör. ![Instrumentpanel för analys](../screenshots/03-analytics.png) --- ## 🏥 Systemhälsa Övervakning i realtid: drifttid, minne, version, latenspercentiler (p50/p95/p99), cachestatistik, status för leverantörernas kretsbrytare, aktiva kvotövervakade sessioner och hälsa för kombinationsmål. ![Instrumentpanel för systemhälsa](../screenshots/04-health.png) --- ## 🔧 Translator Playground Fyra lägen för felsökning av API-översättningar: **Playground** (formatkonverterare), **Chat Tester** (liveförfrågningar), **Test Bench** (batchtester) och **Live Monitor** (realtidsström). ![Translator Playground](../screenshots/05-translator.png) --- ## 🎮 Model Playground _(v2.0.9+)_ Testa valfri modell direkt från kontrollpanelen. Välj leverantör, modell och endpoint, skriv prompter med Monaco Editor, strömma svar i realtid, avbryt mitt i strömningen och visa tidsmätvärden. --- ## 🎨 Teman _(v2.0.5+)_ Anpassningsbara färgteman för hela kontrollpanelen. Välj bland 7 förinställda färger (korall, blå, röd, grön, violett, orange, cyan) eller skapa ett eget tema genom att välja valfri hex-färg. Stöder ljust, mörkt och systemanpassat läge. --- ## ⚙️ Inställningar Omfattande inställningspanel med **7 flikar**: - **Allmänt** — Systemlagring, säkerhetskopiering (export/import av databas) - **Utseende** — Temaväljare (mörkt/ljust/system), förinställda färgteman och anpassade färger, hälsologgens synlighet, synlighetskontroller för objekt och gruppavgränsare i sidofältet samt synlighetskontroller för endpoint-tunnlar - **AI** — AI-assistentfunktioner, förvalda routningsalternativ (Auto Combo `auto/coding`, `auto/fast`, `auto/cheap`, `auto/smart`), cache för återuppspelning av resonemang samt reglage för färdigheter/minne - **Säkerhet** — Skydd av API-endpoints, blockering av anpassade leverantörer, IP-filtrering, sessionsinformation - **Routning** — Modellalias, degradering av bakgrundsuppgifter, manifestmedveten nivåbaserad routning (W1–W4), `fallbackDelayMs`, sessionsspecifik beständig routning - **Motståndskraft** — Beständighet för hastighetsbegränsningar, finjustering av kretsbrytare, automatisk inaktivering av blockerade konton, övervakning av leverantörers giltighetstid, tröskelvärde för överlämning via **Context Relay** och konfiguration av sammanfattningsmodell, leverantörsspecifik 429-klassificering och reglaget `useUpstream429BreakerHints`, nedkylningsperioder för modeller - **Avancerat** — Konfigurationsåsidosättningar, granskningslogg för konfiguration, degraderingsläge för reservlösningar, degradering av bakgrundsläge för Responses API ![Inställningspanelen](../screenshots/06-settings.png) --- ## 🔧 CLI-verktyg Konfiguration med ett klick för AI-kodningsverktyg: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor och Factory Droid. Omfattar automatisk tillämpning/återställning av konfiguration, anslutningsprofiler och modellmappning. ![Kontrollpanel för CLI-verktyg](../screenshots/07-cli-tools.png) --- ## 🤖 CLI-agenter _(v2.0.11+)_ Kontrollpanel för att hitta och hantera CLI-agenter. Visar ett rutnät med 16 inbyggda agenter (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) med: - **Installationsstatus** — Installerad / hittades inte, med versionsidentifiering - **Protokollmärken** — stdio, HTTP osv. - **Anpassade agenter** — Registrera valfritt CLI-verktyg via ett formulär (namn, binärfil, versionskommando, startargument) - **Matchning av CLI-fingeravtryck** — Leverantörsspecifikt reglage för att matcha signaturer från inbyggda CLI-förfrågningar, vilket minskar risken för blockering samtidigt som proxyns IP-adress bevaras - **Lokal Devin-autentisering** — Devin CLI använder `devin auth login`; inget OAuth-flöde i webbläsaren krävs --- ## 🔗 Kontextöverföring _(v3.5.5+)_ En kombinationsstrategi som bevarar sessionskontinuiteten när kontorotation sker mitt i en konversation. Innan det aktiva kontots kvot är förbrukad genererar OmniRoute en strukturerad överlämningssammanfattning i bakgrunden. När nästa begäran hanteras av ett annat konto infogas sammanfattningen som ett systemmeddelande, så att det nya kontot kan fortsätta med fullständig kontext. Kan konfigureras via inställningar på kombinationsnivå eller global nivå: - **Tröskelvärde för överlämning** — Procentuell kvotanvändning som utlöser generering av en sammanfattning (standardvärde 85 %) - **Maximalt antal meddelanden för sammanfattning** — Hur stor del av den senaste historiken som ska sammanfattas - **Sammanfattningsmodell** — Valfri alternativ modell för att generera överlämningssammanfattningen Stöder för närvarande rotation av Codex-konton. Se [dokumentationen om kontextöverföring](../architecture/ARCHITECTURE.md). --- ## 🗜️ Promptkomprimering _(v3.7.9+)_ Kontext och cache erbjuder nu särskilda sidor för Caveman, RTK och komprimeringskombinationer: - **Caveman** — språkmedvetna regelpaket, förhandsgranskning, kontroller för utdataläge och analys - **RTK** — kommandomedveten komprimering för utdata från shell, git, tester, byggen, paket, Docker, infrastruktur, JSON och stackspårningar - **Komprimeringskombinationer** — namngivna pipelines som `rtk -> caveman`, tilldelade till routningskombinationer; den staplade standardberäkningen ger i genomsnitt `~89%` och `78-95%` besparing av komprimeringsbar kontext när båda motorerna används - **Återställning av råutdata** — valfria, redigerade RTK-pekare till råutdata för felsökning av komprimerade fel Se [komprimeringsguiden](../compression/COMPRESSION_GUIDE.md), [RTK-komprimering](../compression/RTK_COMPRESSION.md) och [komprimeringsmotorer](../compression/COMPRESSION_ENGINES.md). --- ## 🛡️ Förstärkning av proxysäkerheten _(v3.5.5+)_ Omfattande tillämpning av proxykonfiguration i hela behandlingskedjan för begäranden: - **Hälsokontroll av token** — OAuth-uppdatering i bakgrunden hämtar nu proxykonfigurationen per anslutning, vilket förhindrar fel i miljöer där proxy krävs - **Validering av API-nyckel** — Validering av leverantörsnycklar (`POST /api/providers/validate`) dirigeras genom `runWithProxyContext` och respekterar proxyinställningar på leverantörsnivå och global nivå - **Korrigering av undici-dispatcher** — Proxy-dispatchers använder undicis egen fetch-implementering i stället för Nodes inbyggda fetch, vilket löser `invalid onRequestStart method`-fel i Node.js 22 - **Identifiering av Node.js-version** — Inloggningssidan identifierar proaktivt inkompatibla Node.js-versioner (24+) och visar en varningsbanner med instruktioner om att använda Node 22 LTS --- ## 📧 Integritetsmaskering av e-postadresser _(v3.5.6+)_ E-postadresser för OAuth-konton maskeras som standard (t.ex. `di*****@g****.com`) för att förhindra oavsiktlig exponering när skärmbilder delas eller demonstrationer spelas in. Använd Inställningar → Utseende → Synlighet för kontots e-postadress för att visa eller maskera fullständiga e-postadresser globalt på skärmar för leverantörer, kombinationer, loggar, kvoter och playground. --- ## 👁️ Växling av modellers synlighet _(v3.5.6+)_ Modellistan på leverantörssidan innehåller nu: - **Sök-/filterfält i realtid** — Hitta snabbt specifika modeller - **Synlighetsväxling per modell** (👁-ikon) — Dolda modeller är nedtonade och exkluderas från katalogen `/v1/models` - **Märke för antal aktiva** (`N/M aktiva`) — Visar direkt hur många modeller som är aktiverade jämfört med det totala antalet --- ## 🔧 Reparation av OAuth-miljövariabler _(v3.6.1+)_ Åtgärden ”Reparera miljövariabler” med ett klick för OAuth-leverantörer återställer saknade miljövariabler och åtgärdar felaktigt autentiseringstillstånd. Tillgänglig via `Instrumentpanel → Leverantörer → [OAuth-leverantör] → Reparera miljövariabler`. Identifierar och åtgärdar automatiskt: - Saknade klientautentiseringsuppgifter för OAuth - Skadade poster i miljövariabelfilen - Sanering av sökvägar för säkerhetskopior --- ## 🗑️ Avinstallation/fullständig avinstallation _(v3.6.2+)_ Skript för ren borttagning för alla installationsmetoder: | Kommando | Åtgärd | | ------------------------ | -------------------------------------------------------------------------------------------- | | `npm run uninstall` | Tar bort systemappen men **behåller din databas och dina konfigurationer** i `~/.omniroute`. | | `npm run uninstall:full` | Tar bort appen OCH **raderar permanent alla konfigurationer, nycklar och databaser**. | --- ## 🖼️ Media _(v2.0.3+)_ Generera bilder, videor och musik från instrumentpanelen. Stöder OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI, AnimateDiff, Stable Audio Open och MusicGen. --- ## 📝 Förfrågningsloggar Loggning av förfrågningar i realtid med filtrering efter leverantör, modell, konto och API-nyckel. Visar statuskoder, tokenanvändning, latens och svarsinformation. ![Användningsloggar](../screenshots/08-usage.png) --- ## 🌐 API-slutpunkt Din enhetliga API-slutpunkt med funktionsöversikt: chattkompletteringar, Responses API, inbäddningar, bildgenerering, omrankning, ljudtranskribering, text-till-tal, moderering och registrerade API-nycklar. Stöd för Cloudflare Quick Tunnel, Tailscale Funnel, ngrok Tunnel och molnproxy är tillgängligt för fjärråtkomst. ![Slutpunktsinstrumentpanel](../screenshots/09-endpoint.png) --- ## 🔑 Hantering av API-nycklar Skapa, avgränsa och återkalla API-nycklar. Varje nyckel kan begränsas till specifika modeller/leverantörer med fullständig åtkomst eller skrivskyddade behörigheter. Visuell nyckelhantering med användningsspårning. --- ## 📋 Granskningslogg Spårning av administrativa åtgärder med filtrering efter åtgärdstyp, aktör, mål, IP-adress och tidsstämpel. Fullständig historik över säkerhetshändelser. --- ## 🖥️ Skrivbordsapplikation Inbyggd Electron-skrivbordsapp för Windows, macOS och Linux. Kör OmniRoute som en fristående applikation med integrering i systemfältet, offlinestöd, automatisk uppdatering och installation med ett klick. Viktiga funktioner: - Avsökning av serverberedskap (ingen tom skärm vid kallstart) - Systemfält med porthantering - Content Security Policy - Låsning till en enda instans - Automatisk uppdatering vid omstart - Plattformsspecifikt gränssnitt (macOS-trafikljus, standardtitelrad i Windows/Linux) - Förstärkt paketering av Electron-versionen — symlänkade `node_modules` i det fristående paketet identifieras och avvisas före paketering, vilket förhindrar körningsberoenden till byggdatorn (v2.5.5+) - **Kontrollerad avstängning** — Electron `before-quit` stänger ned Next.js korrekt, vilket förhindrar SQLite WAL-databaslåsningar (v3.6.2+) 📖 Fullständig dokumentation finns i [`electron/README.md`](../../electron/README.md). --- ## 🌐 V1 WebSocket-brygga _(v3.6.6+)_ OmniRoute stöder nu **OpenAI-kompatibla WebSocket-klienter** via uppgraderingsslutpunkten `/v1/ws`. Den anpassade servern `scripts/dev/v1-ws-bridge.mjs` omsluter Next.js och uppgraderar WS-anslutningar till fullständiga dubbelriktade strömningssessioner. Autentiseringen använder samma API-nyckel eller sessionscookie som HTTP-förfrågningar. Viktiga beteenden: - WS-uppgraderingen valideras av `src/lib/ws/handshake.ts` innan anslutningen upprättas - Strömmar avslutas korrekt när sessionen stängs eller ett fel uppstår uppströms - Fungerar samtidigt tillsammans med den befintliga strömningsvägen för HTTP+SSE --- ## 🔑 Synkroniseringstoken och konfigurationspaket _(v3.6.6+)_ Åtkomst från flera enheter och för externa operatörer är nu möjlig via **omfångsbegränsade synkroniseringstoken**: - **`POST /api/sync/tokens`** — Utfärda ett nytt synkroniseringstoken (omfångsbegränsat, med valfri giltighetstid) - **`DELETE /api/sync/tokens/:id`** — Återkalla ett token - **`GET /api/sync/bundle`** — Hämta en versionshanterad JSON-ögonblicksbild av konfigurationen, identifierad med ETag (autentiseras endast med ett synkroniseringstoken). Autentiseringsinställningar, såsom lösenordet till kontrollpanelen, tas bort, men leverantörsautentiseringsuppgifter och API-nycklar inkluderas, så behandla filen som en hemlighet Konfigurationspaketet skapas av `src/lib/sync/bundle.ts`. Klienter jämför svarshuvudet `ETag` för att identifiera ändringar utan att hämta hela nyttolasten igen. Från kommandoraden sparar `omniroute sync bundle --token ` (eller `OMNIROUTE_SYNC_TOKEN`) det i en fil som endast ägaren har åtkomst till. --- ## 🧠 GLM Thinking-förinställning _(v3.6.6+)_ **GLM Thinking (`glmt`)** är nu registrerad som en fullvärdig leverantör: maximalt 65 536 utdatatoken, en tankebudget på 24 576, en standardtimeout på 900 s, Claude-kompatibelt API-format samt delad användningssynkronisering med GLM-familjen. **Hybridbaserad tokenräkning** introduceras också i v3.6.6: när en Claude-kompatibel leverantör exponerar `/messages/count_tokens` anropar OmniRoute den före stora begäranden, med en smidig reservlösning baserad på uppskattning. --- ## 🛡️ Säkra utgående anrop och SSRF-skydd _(v3.6.6+)_ Alla anrop för leverantörsvalidering och modellidentifiering går nu genom ett utgående skydd i två lager: 1. **URL-skydd** (`src/shared/network/outboundUrlGuard.ts`) — Kontrollerar först målets värdnamn eller IP-literal exakt som det har angetts. I läget för enbart publika adresser slår wrappern för säkra anrop även upp namnet och avvisar privata adresser. Som standard blockeras slutpunkter för molnmetadata — hela 169.254.0.0/16 samt de kända värdnamnen för metadata. `OMNIROUTE_ALLOW_LOCAL_PROVIDER_URLS=false` blockerar även privata värdar och loopback-värdar. `OMNIROUTE_ALLOW_PRIVATE_PROVIDER_URLS=true` (eller det äldre alternativet `OUTBOUND_SSRF_GUARD_ENABLED=false`) stänger av kontrollerna. Ett värde som sparats via en flaggas växlingsknapp på instrumentpanelen har företräde framför dess variabel, och inbyggda lokala leverantörer kringgår skyddet under nyckelvalideringen. Se `docs/reference/ENVIRONMENT.md`. 2. **Wrapper för säkra anrop** (`src/shared/network/safeOutboundFetch.ts`) — Tillämpar URL-skyddet, normaliserar tidsgränser och försöker igen vid tillfälliga fel med exponentiell fördröjning. Överträdelser av skyddet visas som `URL_GUARD_BLOCKED` — HTTP 503 via `getSafeOutboundFetchErrorStatus` (400 på rutten för modellidentifiering) — och faktiska SSRF-blockeringar under validering skrivs till granskningsloggen som `provider.validation.ssrf_blocked`-händelser. --- ## 🔄 Cooldown-medvetna återförsök _(v3.6.6+)_ Chattbegäranden **försöks nu automatiskt igen** när en uppströmsleverantör returnerar en modellspecifik cooldown. Kan konfigureras via `REQUEST_RETRY` (standard: 2) och `MAX_RETRY_INTERVAL_SEC` (standard: 30 s). Inlärningen från hastighetsbegränsningshuvuden har förbättrats för `x-ratelimit-reset-requests`, `x-ratelimit-reset-tokens` och `Retry-After` — cooldown-status per modell visas på Resilience-instrumentpanelen. --- ## 📋 Efterlevnadsgranskning v2 _(v3.6.6+)_ Granskningsloggen har utökats med markörbaserad sidnumrering, berikning av begärandekontext (begärande-ID, användaragent, IP), strukturerade autentiseringshändelser, CRUD-händelser för leverantörer med ändringskontext samt loggning av valideringar som blockerats av SSRF-skyddet. Nya händelser genereras av `src/lib/compliance/providerAudit.ts`.