# FEATURES (Bosanski) 🌐 **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) · 🇨🇿 [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) · 🇸🇪 [sv](../../../sv/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) --- # OmniRoute — Galerija funkcija kontrolne ploče 🌐 **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) · 🇨🇿 [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) · 🇸🇪 [sv](../../../sv/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) Vizuelni vodič kroz svaki odjeljak OmniRoute kontrolne ploče. > 📅 **Zadnje ažurirano:** 2026-06-28 — **v3.8.40** --- ## ✨ Istaknute novine v3.8.0 Ciklus v3.7.x → v3.8.0 uveo je automatsko rutiranje bez konfiguracije (zero-config), nove provajdere, OAuth tokove, veću otpornost i mnogo bogatije iskustvo korištenja CLI-ja. Glavne značajke su navedene ispod — puni detalji se nalaze dalje u dokumentu i u povezanim specifikacijama. - 🤖 **Auto Combo / Zero-config auto-routing** — koristite prefikse `auto/coding`, `auto/fast`, `auto/cheap`, `auto/offline`, `auto/smart`, `auto/lkgp`, `auto/chaos`. Podržano 16-faktornim engine-om za bodovanje i 6 odabranih **mode pack-ova** (ship-fast, cost-saver, quality-first, offline-friendly, reliability-first, chaos-mode) - 🆕 **Command Code provider** (#2199) — registracija prvog reda sa katalogom modela i praćenjem kvote - 🆕 **Z.AI provider** — novi free-tier provajder sa oznakama kvote - 🎬 **KIE media expansion** — prošireni katalog koji uključuje modele za generisanje videa - 🔐 **Devin authentication** — Desktop uvozi postojeći Devin API ključ; CLI koristi lokalne `devin auth login` vjerodostojnosti - 🆓 **8 novih besplatnih provajdera** — LLM7, Lepton, UncloseAI, BazaarLink, Completions, Enally, FreeTheAi, Command Code - 🎯 **Manifest-aware tier routing W1–W4** — manifesti provajdera upravljaju odabirom nivoa (tier) na osnovu težine - 🎨 **Cursor puna OpenAI paritetnost** — tool calls, streaming, upravljanje sesijama od početka do kraja - 📊 **Cursor Pro plan usage** — podaci o kvoti i ciklusima prikazani u provider-limits dashboardu - ⚡ **Service tier breakdown / Codex fast tier analytics** — vidljivost potrošnje po svakom nivou (tier) - 📌 **Per-session sticky routing** — Codex sesije su fiksirane za isti nalog između koraka - 🔊 **Inworld TTS poboljšanja** — katalogi glasova, streaming i poboljšanja latencije - 🔑 **Kiro headless auth** — prijava putem lokalne `kiro-cli` SQLite pohrane, bez potrebe za preglednikom - 📉 **DeepSeek monitoring kvote i limita** — dnevna/mjesečna potrošnja dostupna putem dashboarda - 🔄 **Reset-aware routing strategija** — combo-i sada preferiraju naloge čiji se prozor kvote resetuje najranije - ⏱️ **`fallbackDelayMs`** i **dinamička detekcija limita alata** — preciznije vrijeme fallback-a + limiti broja alata po provajderu - 🔧 **Degradacija background moda (Responses API)** — vraća se na sinhroni mod sa strukturisanim upozorenjem kada upstream nema background polling - 🚦 **Per-provider 429 klasifikacija** + `useUpstream429BreakerHints` prekidač — preciznije ponašanje breaker-a koristeći upstream hintove za ograničenje brzine (rate-limit) - 🩺 **Model cooldowns dashboard** — pratite zaključavanja po modelu i ručno ih ponovo omogućite putem UI-ja - 🔒 **MITM dinamička detekcija Linux certifikata** — radi na Debian/Ubuntu, Fedora/RHEL, Arch i drugim distribucijama - 💻 **CLI enhancement suite** — preko 20 komandi uključujući `omniroute providers`, `omniroute combos`, `omniroute doctor`, `omniroute setup` - 🔍 **Qdrant embedding model discovery** — automatska provjera modela vektorske pohrane - 🔑 **API Keys / Bearer keys sa `manage` scope-om** — izvršavanje administratorskih operacija programski putem API-ja - 🏥 **Combo target health analytics** + **struktuirani combo builder** — zdravlje po cilju i UI builder za sastavljanje `(provider, model, connection)` koraka - 🤝 **GitLab Duo OAuth provider** — prijava sa GitLab vjerodostojnostima - 🧠 **Reasoning Replay Cache** — hibridna in-memory + SQLite persistencija tragova zaključivanja (reasoning traces) 📚 **Povezana dokumentacija:** [Skills Framework](../frameworks/SKILLS.md) · [Memory System](../frameworks/MEMORY.md) · [Cloud Agents](../frameworks/CLOUD_AGENT.md) · [Webhooks](../frameworks/WEBHOOKS.md) · [Reasoning Replay Cache](../routing/REASONING_REPLAY.md) --- ## 🔌 Provajderi Upravljajte konekcijama AI provajdera: OAuth provajderi (Claude Code, Codex), API key provajderi (Groq, DeepSeek, OpenRouter) i besplatni provajderi (Qoder, Kiro). Kiro nalozi uključuju praćenje stanja kredita — preostali krediti, ukupni dodjeljeni iznos i datum obnove su vidljivi u Dashboard → Usage. OpenRouter konekcije mogu pohraniti `preset` po konekciji u Advanced Settings. Kada je postavljen, OmniRoute ga šalje kao OpenRouter polje na najvišem nivou zahtjeva, na primjer `"preset": "email-copywriter"`, osim ako klijentski zahtjev već nije dostavio vlastiti `preset`. ![Providers Dashboard](../screenshots/01-providers.png) --- ## 🎨 Kombo (Combos) Kreirajte kombo ruting modela pomoću 19 javnih strategija: priority, weighted, round-robin, context-relay, fill-first, p2c (power-of-two choices), random, least-used, cost-optimized, reset-aware, reset-window, headroom, strict-random, auto, lkgp (last-known-good-provider), context-optimized, cache-optimized, **fusion** (distribucija na panel modela paralelno, a zatim sinteza jednog odgovora putem sudije), i **pipeline**. Svaki kombo povezuje više modela sa automatskim fallback-om i uključuje brze predloške (templates) i provjere spremnosti. Nedavna poboljšanja komba: - **Strukturirani builder komba** — kreirajte svaki korak odabirom provajdera, modela i tačnog naloga/konekcije - **Podrška za ponovljene provajdere** — ponovo koristite isti provajder više puta u jednom kombu sve dok je `(provider, model, connection)` tuple jedinstven - **Zdravlje cilja komba (Combo target health)** — analitika i status zdravlja sada razlikuju pojedinačne ciljeve/korake komba umjesto da sve spajaju u stringove modela - **Redoslijed slojeva kompozita (Composite tier ordering)** — `defaultTier -> fallbackTier` sada utiče na redoslijed izvršavanja/fallback-a u runtime-u za korake komba na najvišem nivou - **Predlošci sistemskih promptova** — combo `system_message` podržava na serverskoj strani `{{MODEL_ID}}`, `{{PROVIDER_ID}}`, `{{ACCOUNT}}` i `{{FINGERPRINT}}` placeholder-e, koji se proširuju iz stvarno rutingovanog cilja neposredno prije slanja. Dozvoljeni (allowlisted) i ne-rekurzivni; nepoznati placeholder-i ostaju literalni; prazne vrijednosti se proširuju u prazno; klijentski sistemski promptovi se nikada ne prepisuju. `{{FINGERPRINT}}` se razlučuje samo za besplatne provajdere bazirane na fingerprintu sa fiksiranim ili automatski rotiranim fingerprintom — na drugim mjestima se proširuje u prazno (npr. konekcije sa jednim fingerprintom, ne-fp provajderi). Proširivanje pokriva standardnu petlju slanja (dispatch loop), round-robin i sesije sa fiksiranim context-cache-om; fusion, chaos, pipeline i nested-execute strategije još ne proširuju placeholder-e. ![Combos Dashboard](../screenshots/02-combos.png) --- ## 📊 Analitika Sveobuhvatna analitika korištenja sa potrošnjom tokena, procjenama troškova, heatmap-ama aktivnosti, nedjeljnim grafikonima distribucije i pregledima po provajderu. ![Analytics Dashboard](../screenshots/03-analytics.png) --- ## 🏥 Zdravlje sistema Monitoring u stvarnom vremenu: uptime, memorija, verzija, percentili latencije (p50/p95/p99), statistika cache-a, stanja provider circuit breaker-a, aktivne sesije pod nadzorom kvote i zdravlje ciljeva komba. ![Health Dashboard](../screenshots/04-health.png) --- ## 🔧 Translator Playground Četiri načina za otklanjanje grešaka u API prevodima: **Playground** (konvertor formata), **Chat Tester** (zahtjevi uživo), **Test Bench** (serijski testovi) i **Live Monitor** (strim u stvarnom vremenu). ![Translator Playground](../screenshots/05-translator.png) --- ## 🎮 Model Playground _(v2.0.9+)_ Testirajte bilo koji model direktno iz kontrolne table. Odaberite provider, model i endpoint, pišite promptove pomoću Monaco Editora, strimujte odgovore u stvarnom vremenu, prekinite strim usred procesa i pregledajte metrike vremena. --- ## 🎨 Themes _(v2.0.5+)_ Prilagodljive teme boja za cijelu kontrolnu tablu. Odaberite između 7 unaprijed definisanih boja (Coral, Blue, Red, Green, Violet, Orange, Cyan) ili kreirajte prilagođenu temu biranjem bilo koje hex boje. Podržava light, dark i system mode. --- ## ⚙️ Settings Sveobuhvatan panel postavki sa **7 tabova**: - **General** — Sistemsko skladište, upravljanje sigurnosnim kopijama (export/import baze podataka) - **Appearance** — Selektor teme (dark/light/system), unaprijed definisane teme boja i prilagođene boje, vidljivost health loga, kontrole vidljivosti separatora stavki i grupa u bočnoj traci, kontrole vidljivosti Endpoint tunela - **AI** — Funkcije AI asistenta, zadane ruting postavke (Auto Combo `auto/coding`, `auto/fast`, `auto/cheap`, `auto/smart`), reasoning replay cache, i prekidači za vještine/memoriju (skill/memory toggles) - **Security** — Zaštita API endpointa, blokiranje prilagođenih providera, IP filtriranje, informacije o sesiji - **Routing** — Aliasi modela, degradacija pozadinskih zadataka, tier ruting svjestan manifesta (W1–W4), `fallbackDelayMs`, per-session sticky routing - **Resilience** — Trajnost rate limita, podešavanje circuit breaker-a, automatsko onemogućavanje zabranjenih računa, monitoring isteka providera, **Context Relay** prag predaje i konfiguracija summary modela, per-provider 429 klasifikacija i `useUpstream429BreakerHints` prekidač, model cooldowns - **Advanced** — Overrides konfiguracije, audit trail konfiguracije, fallback degradation mode, background mode degradation za Responses API ![Settings Dashboard](../screenshots/06-settings.png) --- ## 🔧 CLI Tools Konfiguracija jednim klikom za AI alate za kodiranje: Claude Code, Codex CLI, OpenClaw, Kilo Code, Antigravity, Cline, Continue, Cursor i Factory Droid. Sadrži automatizovano primjenu/resetovanje konfiguracije, profile konekcija i mapiranje modela. ![CLI Tools Dashboard](../screenshots/07-cli-tools.png) --- ## 🤖 CLI Agents _(v2.0.11+)_ Kontrolna tabla za otkrivanje i upravljanje CLI agentima. Prikazuje mrežu od 16 ugrađenih agenata (Codex, Claude, Goose, OpenClaw, Aider, OpenCode, Cline, ForgeCode, Amazon Q, Open Interpreter, Cursor CLI, Warp, **Windsurf**, **Devin CLI**, **Kimi Coding**, **Command Code**) sa: - **Statusom instalacije** — Installed / Not Found uz detekciju verzije - **Protocol badges** — stdio, HTTP, itd. - **Prilagođenim agentima** — Registrujte bilo koji CLI alat putem forme (ime, binary, version command, spawn args) - **CLI Fingerprint Matching** — Per-provider prekidač za podudaranje nativnih potpisa CLI zahtjeva, smanjujući rizik od zabrane dok se zadržava proxy IP - **Lokalnom Devin autentifikacijom** — Devin CLI koristi `devin auth login`; nije potreban browser OAuth tok ## 🔗 Context Relay _(v3.5.5+)_ Kombinovana strategija koja čuva kontinuitet sesije kada dođe do rotacije računa usred konverzacije. Prije nego što se aktivni račun isprazni, OmniRoute u pozadini generiše strukturirani sažetak za prebacivanje (handoff summary). Nakon što sljedeći zahtjev bude usmjeren na drugačiji račun, sažetak se ubacuje kao sistemska poruka kako bi novi račun nastavio sa punim kontekstom. Konfigurabilno putem postavki na nivou kombina ili globalno: - **Handoff Threshold** — Procenat potrošnje kvote koji pokreće generisanje sažetka (podrazumijevano 85%) - **Max Messages For Summary** — Koliko nedavne historije treba sažeti - **Summary Model** — Opcionalni model za zamjenu prilikom generisanja sažetka za prebacivanje Trenutno podržava rotaciju Codex računa. Pogledajte [Context Relay dokumentaciju](../architecture/ARCHITECTURE.md). --- ## 🗜️ Prompt Compression _(v3.7.9+)_ Context & Cache sada nudi namenske stranice za Caveman, RTK i Compression Combos: - **Caveman** — paketi pravila prilagođeni jeziku, pregled, kontrole načina izlaza i analitika - **RTK** — komandna kompresija za shell, git, test, build, package, Docker, infra, JSON i stack-trace izlaze - **Compression Combos** — nazvane cijevi (pipelines) kao što je `rtk -> caveman` dodijeljene routing kombosima; podrazumijevana slojevita matematika dostiže prosjek od `~89%` i uštedu podobnog konteksta od `78-95%` kada se primijene oba engine-a - **Raw-output recovery** — opcionalni redaction RTK sirovih pokazivača izlaza za otklanjanje grešaka kod kompresovanih neuspjeha Pogledajte [Compression Guide](../compression/COMPRESSION_GUIDE.md), [RTK Compression](../compression/RTK_COMPRESSION.md) i [Compression Engines](../compression/COMPRESSION_ENGINES.md). --- ## 🛡️ Proxy Hardening _(v3.5.5+)_ Sveobuhvatno enforcement konfiguracije proxy-ja kroz cijeli pipeline zahtjeva: - **Token Health Check** — Pozadinski OAuth refresh sada rješava proxy konfiguraciju po svakoj konekciji, sprječavajući neuspjehe u okruženjima koja zahtijevaju proxy - **API Key Validation** — Validacija ključa provajdera (`POST /api/providers/validate`) prolazi kroz `runWithProxyContext`, poštujući postavke proxy-ja na nivou provajdera i globalno - **undici Dispatcher Fix** — Proxy dispatcheri koriste undici-jevu vlastitu fetch implementaciju umjesto Node-ovog ugrađenog fetch-a, rješavajući `invalid onRequestStart method` greške na Node.js 22 - **Node.js Version Detection** — Stranica za prijavu proaktivno detektuje nekompatibilne Node.js verzije (24+) i prikazuje baner upozorenja sa uputama za korištenje Node 22 LTS --- ## 📧 Email Privacy Masking _(v3.5.6+)_ OAuth e-mail adrese računa su podrazumijevano maskirane (npr. `di*****@g****.com`) kako bi se spriječilo slučajno otkrivanje prilikom dijeljenja snimaka ekrana ili snimanja demo prezentacija. Koristite Settings → Appearance → Account email visibility da biste globalno otkrivali ili maskirali pune e-mail adrese računa kroz provajdere, kombine, logove, kvote i playground ekrane. --- ## 👁️ Model Visibility Toggle _(v3.5.6+)_ Lista modela na stranici provajdera sada uključuje: - **Real-time search/filter bar** — Brzo pronađite specifične modele - **Per-model visibility toggle** (ikona 👁) — Sakriveni modeli su sivi i isključeni iz `/v1/models` kataloga - **Active-count badge** (`N/M active`) — Na prvi pogled pokazuje koliko je modela omogućeno u odnosu na ukupan broj --- ## 🔧 Popravka OAuth okruženja _(v3.6.1+)_ Akcija "Repair env" na jedan klik za OAuth provajdere koja vraća nedostajuće varijable okruženja i popravlja narušen auth status. Dostupno putem `Dashboard → Providers → [OAuth Provider] → Repair env`. Automatski detektuje i popravlja: - Nedostajuće OAuth klijentske vjerovatnosti (credentials) - Korumpirane unose u env datoteci - Sanitizaciju putanja za backup --- ## 🗑️ Deinstalacija / Potpuna deinstalacija _(v3.6.2+)_ Skripte za čisto uklanjanje za sve metode instalacije: | Komanda | Akcija | | ------------------------ | --------------------------------------------------------------------------------------- | | `npm run uninstall` | Uklanja sistemsku aplikaciju ali **zadržava vašu DB i konfiguracije** u `~/.omniroute`. | | `npm run uninstall:full` | Uklanja aplikaciju I trajno **briše sve konfiguracije, ključeve i baze podataka**. | --- ## 🖼️ Mediji _(v2.0.3+)_ Generišite slike, video zapise i muziku iz kontrolne table. Podržava OpenAI, xAI, Together, Hyperbolic, SD WebUI, ComfyUI, AnimateDiff, Stable Audio Open i MusicGen. --- ## 📝 Logovi zahtjeva Praćenje zahtjeva u stvarnom vremenu uz filtriranje po provajderu, modelu, nalogu i API ključu. Prikazuje statusne kodove, potrošnju tokena, latenciju i detalje odgovora. ![Usage Logs](../screenshots/08-usage.png) --- ## 🌐 API Endpoint Vaš jedinstveni API endpoint sa pregledom mogućnosti: Chat Completions, Responses API, Embeddings, Image Generation, Reranking, Audio Transcription, Text-to-Speech, Moderations i registrovani API ključevi. Cloudflare Quick Tunnel, Tailscale Funnel, ngrok Tunnel i podrška za cloud proxy su dostupni za udaljeni pristup. ![Endpoint Dashboard](../screenshots/09-endpoint.png) --- ## 🔑 Upravljanje API ključevima Kreirajte, ograničite opseg i opozovite API ključeve. Svaki ključ se može ograničiti na specifične modele/provajdere sa punim pristupom ili dozvolama samo za čitanje. Vizuelno upravljanje ključevima uz praćenje upotrebe. --- ## 📋 Audit Log Praćenje administrativnih akcija uz filtriranje po tipu akcije, izvršiocu, cilju, IP adresi i vremenskom žigu. Potpuna historija sigurnosnih događaja. --- ## 🖥️ Desktop aplikacija Native Electron desktop aplikacija za Windows, macOS i Linux. Pokrenite OmniRoute kao samostalnu aplikaciju sa integracijom u sistemski tray, offline podrškom, automatskim ažuriranjem i instalacijom na jedan klik. Ključne značajke: - Polling spremnosti servera (nema praznog ekrana pri hladnom startu) - System tray sa upravljanjem portovima - Content Security Policy - Single-instance lock - Automatsko ažuriranje prilikom ponovnog pokretanja - UI uslovljen platformom (macOS traffic lights, Windows/Linux default titlebar) - Hardened Electron build packaging — symlinked `node_modules` u samostalnom paketu se detektuje i odbija prije pakovanja, sprječavajući runtime zavisnost od build mašine (v2.5.5+) - **Graceful shutdown** — Electron `before-quit` čisto gasi Next.js, sprječavajući SQLite WAL zaključavanje baze podataka (v3.6.2+) 📖 Pogledajte [`electron/README.md`](../../electron/README.md) za punu dokumentaciju. --- ## 🌐 V1 WebSocket Bridge _(v3.6.6+)_ OmniRoute sada podržava **OpenAI-kompatibilne WebSocket klijente** putem `/v1/ws` upgrade endpointa. Prilagođeni `scripts/dev/v1-ws-bridge.mjs` server omotava Next.js i nadograđuje WS konekcije u pune sesije dvosmjernog strimovanja. Autentifikacija koristi isti API ključ ili session cookie kao i HTTP zahtjevi. Ključna ponašanja: - WS upgrade se validira putem `src/lib/ws/handshake.ts` prije nego što se konekcija uspostavi - Strimovi se čisto terminiraju pri zatvaranju sesije ili upstream grešci - Radi istovremeno uz postojeći HTTP+SSE strimovanje put --- ## 🔑 Sync Tokens & Config Bundle _(v3.6.6+)_ Pristup putem više uređaja i eksternih operatera sada je moguć putem **opsežnih (scoped) sync tokena**: - **`POST /api/sync/tokens`** — Izdaje novi sync token (opsežan, sa opcionalnim istekom) - **`DELETE /api/sync/tokens/:id`** — Opoziva token - **`GET /api/sync/bundle`** — Preuzima verzionalni JSON snapshot svih neosjetljivih postavki (lozinke su sakrivene) sa ETag ključem Config bundle kreira `src/lib/sync/bundle.ts`. Korisnici upoređuju `ETag` response header kako bi otkrili promjene bez ponovnog preuzimanja cijelog payload-a. --- ## 🧠 GLM Thinking Preset _(v3.6.6+)_ **GLM Thinking (`glmt`)** je sada registrovani first-class provider: 65 536 max output tokena, 24 576 thinking budžet, 900 s default timeout, Claude-kompatibilan API format i zajednička sinhronizacija upotrebe sa GLM porodicom. **Hibridno brojanje tokena** također dolazi u v3.6.6: kada Claude-kompatibilni provider izloži `/messages/count_tokens`, OmniRoute ga poziva prije velikih zahtjeva uz elegantan fallback na procjenu. --- ## 🛡️ Safe Outbound Fetch & SSRF Guard _(v3.6.6+)_ Svi pozivi za validaciju providera i otkrivanje modela sada prolaze kroz dvoslojni outbound guard: 1. **URL guard** (`src/shared/network/outboundUrlGuard.ts`) — Blokira privatne/loopback/link-local IP opsege prije nego što se socket otvori. 2. **Safe fetch wrapper** (`src/shared/network/safeOutboundFetch.ts`) — Primjenjuje URL guard, normalizuje timeout-e i ponavlja privremene greške uz exponential backoff. Kršenja guard-a se pojavljuju kao HTTP 422 (`URL_GUARD_BLOCKED`) i zapisuju se u compliance audit log putem `providerAudit.ts`. --- ## 🔄 Cooldown-Aware Retries _(v3.6.6+)_ Chat zahtjevi sada **automatski pokušavaju ponovo** (retry) kada upstream provider vrati model-scoped cooldown. Konfigurišljivo putem `REQUEST_RETRY` (default: 2) i `MAX_RETRY_INTERVAL_SEC` (default: 30 s). Učenje rate-limit headera je poboljšano kroz `x-ratelimit-reset-requests`, `x-ratelimit-reset-tokens` i `Retry-After` — stanje cooldown-a po modelu je vidljivo u Resilience dashboardu. --- ## 📋 Compliance Audit v2 _(v3.6.6+)_ Audit log je proširen sa cursor-based paginacijom, obogaćivanjem konteksta zahtjeva (request ID, user agent, IP), strukturiranim auth događajima, provider CRUD događajima sa diff kontekstom i logovanjem validacije za blokirane SSRF pokušaje. Novi događaji se emituju putem `src/lib/compliance/providerAudit.ts`.