OmniRoute/docs/i18n/bg/CHANGELOG.md
2026-04-06 18:11:09 -03:00

289 KiB
Raw Blame History

Changelog (Български)

🌐 Languages: 🇺🇸 English · 🇪🇸 es · 🇫🇷 fr · 🇩🇪 de · 🇮🇹 it · 🇷🇺 ru · 🇨🇳 zh-CN · 🇯🇵 ja · 🇰🇷 ko · 🇸🇦 ar · 🇮🇳 hi · 🇮🇳 in · 🇹🇭 th · 🇻🇳 vi · 🇮🇩 id · 🇲🇾 ms · 🇳🇱 nl · 🇵🇱 pl · 🇸🇪 sv · 🇳🇴 no · 🇩🇰 da · 🇫🇮 fi · 🇵🇹 pt · 🇷🇴 ro · 🇭🇺 hu · 🇧🇬 bg · 🇸🇰 sk · 🇺🇦 uk-UA · 🇮🇱 he · 🇵🇭 phi · 🇧🇷 pt-BR · 🇨🇿 cs · 🇹🇷 tr


[Unreleased]


[3.5.3] - 2026-04-05

Fixed

-**Middleware:**Разрешен безкраен цикъл на пренасочване на таблото за нови екземпляри, когато requireLogin е деактивиран.---

[3.5.2] — 2026-04-05

New Features

-**Qoder API Native Integration:**Напълно преработи Qoder Executor, за да заобиколи наследения COZY AES/RSA алгоритъм за криптиране, насочвайки директно към родния DashScope OpenAi-съвместим URL. Елиминира сложните зависимости от крипто модулите на Node, като същевременно подобрява прецизността на потока. -**Основен ремонт на Resilience Engine:**Интегрирани грациозни резервни преливания на контекста, проактивно откриване на OAuth токен и предотвратяване на излъчване на празно съдържание (#990). -**Контекстно-оптимизирана стратегия за маршрутизиране:**Добавена е нова възможност за интелигентно маршрутизиране за естествено увеличаване на контекстните прозорци при автоматизирани комбинирани внедрявания (#990).### 🐛 Bug Fixes

-**Повреда на потока на API за отговори:**Коригирана повреда при дълбоко клониране, при която границите на превода на Anthropic/OpenAI лишаваха специфични SSE префикси за response. от границите на поточно предаване (#992). -**Claude Cache Passthrough Alignment:**Подравнени CC-съвместими кеш маркери последователно с режим на преминаване на клиента нагоре по веригата, запазвайки бързото кеширане. -**Изтичане на памет на Turbopack:**Прикачен Next.js към стриктно 16.0.10, предотвратявайки изтичане на памет и неработоспособност на компилация от скорошни регресии на хеширани модули на Turbopack (#987).---

[3.5.1] — 2026-04-04

New Features

-**Интегриране на Models.dev:**Интегриран models.dev като авторитетен източник на време за изпълнение за ценообразуване, възможности и спецификации на модела, заменящ твърдо кодирани цени. Включва потребителски интерфейс с настройки за управление на интервали на синхронизиране, низове за превод за всичките 30 езика и надеждно тестово покритие. -**Собствени възможности на доставчика:**Добавена е поддръжка за деклариране и проверка на естествени функции на API (напр. systemInstructions_supported), предотвратяващи грешки чрез дезинфекция на невалидни роли. В момента е конфигуриран за Gemini Base и Antigravity OAuth доставчици. -**Разширени настройки на доставчика на API:**Добавени са персонализирани заменки на User-Agent за всяка връзка за връзки с доставчик на API ключ. Замяната се съхранява в providerSpecificData.customUserAgent и сега се прилага за проверки за валидиране и заявки за изпълнение нагоре.### 🐛 Bug Fixes

-**Надеждност на Qwen OAuth:**Решени са поредица от проблеми с интегрирането на OAuth, включително блокер за 400 лоши заявки за изтекли токени, резервно генериране за анализиране на свойствата на OIDC access_token, когато id_token е пропуснато, грешки при откриване на каталог на модели и стриктно филтриране на заглавки X-Dashscope-*, за да се избегне 400 отхвърляне от OpenAI-съвместими крайни точки.## [3.5.0] — 2026-04-03

New Features

-**Auto-Combo & Routing:**Завършена собствена интеграция на жизнения цикъл на CRUD за усъвършенствания Auto-Combo двигател (#955). -**Основни операции:**Коригирани липсващи преводи за нови собствени опции за автоматични комбинации (#955). -**Проверка на сигурността:**Деактивирани задачи за автоматично архивиране на SQLite по време на изпълнение на CI на модулен тест, за изрично разрешаване на висящи течове на памет на Node 22 Event Loop (#956). -**Екосистемни проксита:**Завършени планировчици за синхронизиране на модели за изрично картографиране на интеграция, OAuth цикли и Token Check се опресняват безопасно чрез собствените проксита на системата нагоре по веригата на OmniRoute (#953). -**MCP Extensibility:**Добавен и успешно регистриран новият инструмент за MCP рамка omniroute_web_search извън бета версия в производствени схеми (#951). -**Tokens Buffer Logic:**Добавени лимити за конфигурация по време на изпълнение, разширяващи конфигурируемите входно/изходни буфери за токени за прецизни показатели за проследяване на използването (#959).### 🐛 Bug Fixes

-**CodeQL Remediation:**Напълно разрешени и защитени критични операции за индексиране на низове, предотвратяващи евристични индексиращи масиви от фалшифициране на заявки от страна на сървъра (SSRF), заедно с полиномиално алгоритмично проследяване (ReDoS) в модулите за дълбок диспечер на прокси. -**Крипто хешове:**Заменени са слабите непроверени наследени хешове на OAuth 1.0 със стабилни стандартни примитиви за валидиране HMAC-SHA-256, осигуряващи строг контрол на достъпа. -**API Boundary Protection:**Правилно проверени и картографирани структурни защити на маршрута, налагащи стриктна isAuthenticated() логика на междинния софтуер, покриваща по-нови динамични крайни точки, насочени към манипулиране на настройките и зареждане на собствени умения. -**CLI Ecosystem Compat:**Разрешени повредени нативни обвързвания на парсера по време на изпълнение, сриващи детекторите за среда where стриктно над крайните случаи .cmd/.exe грациозно за външни плъгини (#969). -**Архитектура на кеша:**Рефакторинг на точните параметри на таблото за управление на анализите и системните настройки, кеширане на структурата на оформлението, за да се поддържат стабилни цикли на устойчивост на повторна хидратация, разрешаващи мигания на визуално неподравнено състояние (#952). -**Стандарти за кеширане на Claude:**Нормализирани и точно запазени критични ефимерни блокови маркери „ефимерни“ кеширащи TTL поръчки за възли надолу по веригата, налагащи стандартно съвместими CC заявки, картографирани чисто без изпуснати показатели (#948). -**Вътрешни псевдоними Auth:**Опростени вътрешни съпоставяния по време на изпълнение, нормализиране на търсенето на полезни данни за идентификационни данни на Codex в глобалните параметри за превод, разрешаващи 401 неудостоверени изпускания (#958).### 🛠️ Maintenance

-**Откриваемост на потребителския интерфейс:**Правилно коригирани категоризации на оформлението, изрично разделящи логиката на доставчиците на безплатни нива, подобряващи потоците за UX сортиране в общите страници на регистъра на API (#950). -**Топология на внедряване:**Унифицирани артефакти за внедряване на Docker, гарантиращи, че основният fly.toml съвпада с очакваните параметри на екземпляра на облака извън кутията, като нативно управлява автоматично мащабиране на автоматизираните внедрявания. -**Инструменти за разработка:**Отделени параметри за изпълнение на LKGP в експлицитни помощни програми за кеширане на абстракция на DB слой, осигуряващи безопасно покритие на стриктна изолация на теста за основните кеширащи слоеве.---

[3.4.9] — 2026-04-03

Features & Refactoring

-**Панел за автоматично комбиниране на таблото:**Напълно преработен потребителският интерфейс на /dashboard/auto-combo, за да се интегрира безпроблемно с оригиналните карти на таблото и стандартизираните визуални подложки/заглавки. Добавени динамични визуални ленти за напредък, картографиращи механизми за тегло на избора на модел. -**Синхронизиране на маршрутизирането на настройките:**Напълно разкрити приоритетни и претеглени цели на схемата за разширено маршрутизиране вътрешно в резервните списъци с глобални настройки.### Bug Fixes

-**Locale Nodes за памет и умения:**Разрешени празни тагове за изобразяване за опциите за памет и умения директно в изгледите на глобалните настройки чрез свързване на всички стойности на settings.* вътрешно картографиране в en.json (също картографирано имплицитно за инструменти за кръстосано превеждане).### Internal Integrations

  • Интегриран PR #946 — поправка: запазване на съвместимостта на Claude Code при преобразуването на отговорите
  • Интегриран PR #944 — fix(gemini): запазване на сигнатури на мисли при извиквания на антигравитационни инструменти
  • Интегриран PR #943 — поправка: възстановяване на тялото на GitHub Copilot
  • Интегриран PR #942 - Коригиране на cc-съвместими кеш маркери
  • Интегриран PR #941 — refactor(auth): подобряване на търсенето на псевдоним на NVIDIA + добавяне на LKGP регистриране на грешки
  • Интегриран PR #939 — Възстановяване на Claude OAuth обработка на обратно извикване на локален хост
  • (Забележка: PR #934 беше пропуснат от цикъла 3.4.9, за да се предотвратят основни конфликтни регресии)---

[3.4.8] — 2026-04-03

Сигурност

  • Напълно коригирани всички неизпълнени констатации на Github Advanced Security (CodeQL) и предупреждения на Dependabot.
  • Коригирани несигурни уязвимости на случаен принцип чрез мигриране от Math.random към crypto.randomUUID().
  • Защитени команди на обвивката в автоматизирани скриптове от инжектиране на низове.
  • Мигрирани уязвими катастрофални обратно проследяване на RegEx модели за анализиране в канали за чат/превод.
  • Подобрени контроли за дезинфекция на изхода в компонентите на потребителския интерфейс на React и инжектиране на тагове за изпратени от сървъра събития (SSE).---

[3.4.7] — 2026-04-03

Функции

  • Добавен възел Криптография към проверките на състоянието за наблюдение и MCP (#798)

  • Подсилено съпоставяне на разрешения за маршрут на модел-каталог (/models) (#781)### Bug Fixes

  • Коригирани опреснявания на токени на Claude OAuth, които не успяват да запазят контекстите на кеша (#937)

  • Коригирани грешки на CC-съвместим доставчик, които правят кешираните модели недостъпни (#937)

  • Коригирани грешки на GitHub Executor, свързани с невалидни контекстни масиви (#937)

  • Коригирани грешки при проверка на изправността на CLI инструменти, инсталирани на NPM в Windows (#935)

  • Коригиран превод на полезен товар, изпускащ валидно съдържание поради невалидни API полета (#927)

  • Коригиран срив по време на изпълнение във възел 25 по отношение на изпълнението на API ключ (#867)

  • Коригирано разрешаване на самостоятелен модул на MCP (ERR_MODULE_NOT_FOUND) чрез esbuild (#936)

  • Коригирано несъответствие на псевдоним на разрешаване на идентификационни данни за NVIDIA NIM (#931)### Сигурност

  • Добавена безопасна стриктна защита на входните граници срещу необработени инжекции за изпълнение на дистанционен код shell: true.---

[3.4.6] - 2026-04-02

New Features

-**Доставчици:**Регистрирани нови доставчици за генериране на изображения, видео и аудио от списъка, поискан от общността (#926). -**Потребителски интерфейс на таблото:**Добавена е самостоятелна навигация в страничната лента за новите модули памет и умения (#926). -**i18n:**Добавени низове за превод и съпоставяне на оформлението на 30 езика за пространствата от имена на паметта и уменията.### 🐛 Bug Fixes

-**Устойчивост:**Предотвратено засядане на прокси прекъсвача в ОТВОРЕНО състояние за неопределено време чрез обработка на директни преходи към ЗАТВОРЕНО състояние в резервни комбинирани пътища (#930). -**Превод на протоколи:**Извършен е корекция на трансформатора за поточно предаване, за да дезинфекцира блоковете за отговор въз основа на очаквания source протокол, а не на target протокола на доставчика, коригирайки модели на Anthropics, обвити в полезни натоварвания на OpenAI, сриващи Claude Code (#929). -**API спецификации и Gemini:**Коригирано анализиране на thought_signature в преводачите openai-to-gemini и claude-to-gemini, предотвратявайки HTTP 400 грешки във всички Gemini 3 API извиквания на инструменти. -**Доставчици:**Изчистени крайни точки, които не са съвместими с OpenAI, предотвратявайки валидни връзки нагоре (#926). -**Тенденции в кеша:**Поправено е несъответствие на данни за картографиране на невалидни свойства, причиняващо срив на диаграмите на потребителския интерфейс на тенденциите в кеша, и извлечени излишни джунджурии за показатели на кеша (#926).---

[3.4.5] - 2026-04-02

New Features

-**CLIProxyAPI екосистемна интеграция:**Добавен е изпълнителят cliproxyapi с вградено кеширане на ниво модул и прокси маршрутизиране. Въведена е цялостна услуга за управление на версиите за автоматично тестване на изправността, изтегляне на двоични файлове от GitHub, създаване на изолирани фонови процеси и чисто управление на жизнения цикъл на външни CLI инструменти директно през потребителския интерфейс. Включва DB таблици за прокси конфигурация, за да се даде възможност за автоматично SSRF-зависимо кръстосано маршрутизиране на външни OpenAI заявки чрез локалния CLI инструмент слой (#914, #915, #916). -**Поддръжка на Qoder PAT:**Поддръжка на интегрирани токени за персонален достъп (PAT) директно чрез локалния транспорт qodercli вместо наследените отдалечени .cn конфигурации на браузъра (#913). -**Gemini 3.1 Pro Preview (GitHub):**Добавена е gemini-3.1-pro-preview канонична изрична поддръжка на модел в GitHub Copilot доставчик, като същевременно се запазват по-стари псевдоними за маршрутизиране (#924).### 🐛 Bug Fixes

-**Стабилност на GitHub Copilot Token:**Поправен е цикълът за опресняване на Copilot token, където остарелите токени не са били дълбоко обединени в DB, ​​и премахнати полета reasoning_text, които фатално нарушаваха блоковите преобразувания на Anthropic надолу по веригата за многооборотни чатове (#923). -**Глобална матрица на изчакване:**Централизирани и параметризирани изчаквания на заявка изрично от REQUEST_TIMEOUT_MS за предотвратяване на скрити (~300 s) буфери за извличане по подразбиране, които преждевременно прекъсват дълготрайните SSE поточни отговори от тежки модели на разсъждение (#918). -**Cloudflare Quick Tunnels State:**Поправено е сериозно несъответствие на състоянието, при което рестартирани екземпляри на OmniRoute погрешно показват унищожени тунели като активни и тунелиране по подразбиране на cloudflared към HTTP/2, за да елиминира нежелана поща в буфера за получаване на UDP (#925). -**i18n Преработка на превода (чешки и хинди):**Фиксиран код на хинди от ОТСТАРЯЛ in.json към каноничен hi.json, преработени съпоставяния на чешки текст, извлечен untranslatable-keys.json за коригиране на фалшиво положителни валидации на CI/CD и генерирани изчерпателни I18N.md документи за насочване на преводачите (#912). -**Възстановяване на доставчик на токени:**Поправено е Qwen, губейки специфични крайни точки на resourceUrl след автоматично опресняване на маркера за проверка на състоянието поради липсващи дълбоки сливания на DB (#917). -**CC Съвместим UX & Streaming:**Унифицира Добавяне на CC/OpenAI/Anthropic съвместими действия около обработката на Anthropic UI, принудени CC-съвместими заявки нагоре да използват SSE, като същевременно връщат стрийминг или не-стрийминг отговори въз основа на клиентската заявка, премахна CC конфигурация на списък с модели/поддръжка за импортиране в полза на изрична грешка в списъка с неподдържани модели и направи CC-съвместим Наличните модели отразяват списъка на регистъра на OAuth Claude Code (#921).---

[3.4.4] - 2026-04-02

🐛 Bug Fixes

-**Responses API Token Reporting:**Излъчва response.completed с правилни полета input_tokens/output_tokens за клиенти на Codex CLI, коригирайки показването на използването на токени (#909 — благодаря @christopher-s). -**Проверка на SQLite WAL при изключване:**Промиване на WAL промените в основния файл на базата данни по време на грациозно изключване/рестартиране, предотвратявайки загуба на данни при спиране на Docker контейнер (#905 — благодаря @rdself). -**Изящен сигнал за изключване:**Променени са маршрутите /api/restart и /api/shutdown от process.exit(0) на process.kill(SIGTERM), като се гарантира, че манипулаторът за изключване работи преди изход. -**Гратисен период на спиране на Docker:**Добавен е stop_grace_period: 40s към файловете за съставяне на Docker и --stop-timeout 40 към примерите за изпълнение на Docker.### 🛠️ Maintenance

  • Затворени 5 решени/не-бъг проблема (#872, #814, #816, #890, #877).
  • Разпределени 6 проблема с искания за информация за нуждите (#892, #887, #886, #865, #895, #870).
  • Отговор на проблем с проследяване на откриване на CLI (#863) с насоки на сътрудници.---

[3.4.3] - 2026-04-02

New Features

-**Памет и умения за Antigravity:**Завършено дистанционно инжектиране на памет и умения за доставчика на Antigravity на ниво прокси мрежа. -**Съвместимост с Claude Code:**Създаден естествен скрит мост за съвместимост за Claude Code, като прехвърля инструменти и форматиране чисто. -**MCP за търсене в мрежата:**Добавен е инструментът omniroute_web_search с обхвата execute:search. -**Кеш компоненти:**Внедрени динамични кеш компоненти, използващи TDD. -**Потребителски интерфейс и персонализиране:**Добавена персонализирана поддръжка на favicon, раздели за външен вид, бели етикети с кабел към страничната лента и добавени стъпки за ръководство за Windsurf на всички 33 езика. -**Запазване на регистрационни файлове:**Унифицирано запазване на регистрационни файлове на заявки и първоначално артефакти. -**Подобрения на модела:**Добавено е изрично contextLength за всички opencode-zen модели. -**i18n & преводи:**Интегрирани нативни преводи на 33 езика, включително CI валидации на контейнер и актуализации на документация на китайски (#873, #869).### 🐛 Bug Fixes

-**Qwen OAuth Mapping:**Възстановена зависимостта на id_token към access_token и активирано динамично инжектиране на крайна точка на API resource_url за правилно регионално маршрутизиране (#900). -**Model Sync Engine:**Съхранява стриктния вътрешен идентификатор на доставчика в рутинните процедури за синхронизиране на getCustomModels() вместо във формата на псевдонима на UI канал, предотвратявайки грешки при вмъкване на SQLite каталог (#903). -**Claude Code & Codex:**Стандартизирани непоточно предавани празни отговори на Anthropic-форматиран (празен отговор) за предотвратяване на сривове на CLI прокси (#866). -**CC Съвместимо маршрутизиране:**Разрешен дублиран сблъсък на крайни точки /v1 по време на конкатенация на пътя за генерични шлюзове на Claude Code (#904). -**Антигравитационни табла за управление:**Блокирани модели с неограничена квота от фалшиво регистриране като изчерпани гранични състояния на 100% използване в потребителския интерфейс за използване на доставчика (#857). -**Claude Image Passthrough:**Коригирани модели на Claude с липсващи пропуски на блокове на изображения (#898). -**Gemini CLI Routing:**Разрешени са 403 блокировки на авторизация и проблеми с натрупването на съдържание чрез опресняване на ID на проекта чрез loadCodeAssist (#868). -**Стабилност на антигравитацията:**Коригирани списъци за достъп на модела, наложени 404 блокирания, поправени 429 каскади, блокиращи стандартни връзки, и ограничени изходни токени gemini-3.1-pro (#885). -**Каданс на синхронизиране на доставчика:**Поправен е ритъмът на синхронизиране на ограниченията на доставчика чрез вътрешния планировчик (#888). -**Оптимизация на таблото за управление:**Решено замразяване на потребителския интерфейс на /dashboard/limits при обработка на 70+ акаунта чрез паралелизиране на парчета (#784). -**SSRF Hardening:**Наложи стриктно филтриране на SSRF IP обхвата и блокира ::1 loopback интерфейса. -**MIME типове:**Стандартизиран mime_type към snake_case, за да съответства на спецификациите на Gemini API. -**CI стабилизиране:**Коригирани неуспешни анализи/настройки Playwright селектори и твърдения за заявки, така че GitHub Actions E2E изпълнява надеждно през локализирани потребителски интерфейси и базирани на превключватели контроли. -**Детерминистични тестове:**Премахнати чувствителни към датата квоти от тестовете за използване на Copilot и съгласувани тестове за идемпотентност/моделен каталог с обединеното поведение по време на изпълнение. -**MCP Type Hardening:**Премахнати явни регресии с нулев бюджет от „никакви“ регресии от регистрационния път на MCP сървърния инструмент. -**Model Sync Engine:**Прескочени разрушителни replace замени, когато автоматичното синхронизиране на доставчика дава празен списък с модели, поддържайки стабилност за динамични каталози (#899).### 🛠️ Maintenance

-**Регистриране на тръбопроводи:**Подобрени артефакти за регистриране на тръбопроводи и налагане на ограничения за задържане (#880). -**AGENTS.md Основен ремонт:**Съкратено от 297→153 реда. Добавени са насоки за изграждане/тест/стил, работни потоци на код (Prettier, TypeScript, ESLint) и изрязани подробни таблици (#882). -**Интегриране на клонове на изданието:**Консолидира клоновете на активните функции в release/v3.4.2 върху текущото main и валидира клона с изпълнения на lint, unit, coverage, build и CI-mode E2E. -**Тестване:**Добавена конфигурация на vitest за тестване на компоненти и спецификации на Playwright за превключвания на настройките. -**Актуализации на документи:**Разширено root readme, преведени оригинални китайски документи и изчистени остарели файлове.## [3.4.1] - 2026-03-31

[!ПРЕДУПРЕЖДЕНИЕ] ВЪЗЛОЖНА ПРОМЯНА: променливите на средата за регистриране на заявки, задържане и регистриране са преработени. При първото стартиране след надграждане OmniRoute архивира наследени журнали на заявки от DATA_DIR/logs/, наследени DATA_DIR/call_logs/ и DATA_DIR/log.txt в DATA_DIR/log_archives/*.zip, след което премахва остарялото оформление и превключва към новия обединен артефакт формат под DATA_DIR/call_logs/.### New Features

-**.ENV Migration Utility:**Включен scripts/migrate-env.mjs за безпроблемно мигриране на <v3.3 конфигурации към v3.4.x строги ограничения за проверка на сигурността (FASE-01), поправяне на сривове при стартиране, причинени от кратки JWT_SECRET екземпляри. -**Kiro AI Cache Optimization:**Внедрено детерминистично генериране на conversationId (uuidv5), за да се даде възможност на AWS Builder ID Prompt Caching правилно при извиквания (#814). -**Възстановяване и консолидиране на потребителския интерфейс на таблото за управление:**Разрешена е логиката на страничната лента, пропускаща раздела за отстраняване на грешки, и са изчистени предупрежденията за маршрутизиране на Nextjs чрез преместване на самостоятелни страници /dashboard/mcp и /dashboard/a2a изрично във вградени компоненти на потребителския интерфейс на прокси крайната точка. -**Unified Request Log Artifacts:**Регистрирането на заявки вече съхранява един SQLite индексен ред плюс един JSON артефакт на заявка под DATA_DIR/call_logs/, с незадължително улавяне на конвейер, вградено в същия файл. -**Език:**Подобрен китайски превод (#855) -**Opencode-Zen модели:**Добавени са 4 безплатни модела към opencode-zen регистър (#854) -**Тестове:**Добавени единици и E2E тестове за превключване на настройките и корекции на грешки (#850)### 🐛 Bug Fixes

-**429 Анализ на квота:**Анализирани дълги времена за нулиране на квота от тела на грешки, за да се спазват правилните отстъпки и да се предотвратят забрани на акаунти с ограничен процент (#859) -**Промптиране на кеширане:**Запазени клиентски cache_control заглавки за всички доставчици на Claude-протокол (като Minimax, GLM и Bailian), правилно разпознаване на поддръжката за кеширане (#856) -**Model Sync Logs:**Намален спам в регистрационните файлове чрез записване на sync-models само когато каналът действително променя списъка (#853) -**Анализ на квота и токен на доставчика:**Превключени ограничения на Antigravity за използване на retrieveUserQuota естествено и правилно нанесени полезни товари за опресняване на токени на Claude към URL-кодирани форми (#862) -**Стабилност при ограничаване на скоростта:**Универсализира архитектурата за анализиране на 429 Retry-After, за да ограничи индуцираните от доставчика охлаждания до 24 часа максимум (#862) -**Рендиране на ограничение на таблото за управление:**Реархитектирано съпоставяне на квоти /dashboard/limits за изобразяване незабавно вътре в парчета, коригирайки голямо забавяне на замразяване на потребителския интерфейс на акаунти, надвишаващи 70 активни връзки (#784) -**QWEN OAuth Authorization:**Картографира OIDC id_token като основен API Bearer token за заявки на Dashscope, коригирайки незабавно 401 Unauthorized грешки след свързване на акаунти или опресняване на токени (#864) -**ZAI API Стабилност:**Засилен компилатор на изпратени от сървъра събития за елегантно връщане към празни низове, когато доставчиците на DeepSeek предават математически нулево съдържание по време на фазите на разсъждение (#871) -**Claude Code/Codex Translations:**Защитени преобразувания на полезен товар без поточно предаване срещу празни отговори от инструменти на Codex нагоре по веригата, като се избягват катастрофални TypeErrors (#866) -**NVIDIA NIM Rendering:**Условно премахнати идентични префикси на доставчици, динамично изтласкани от аудио модели, елиминирайки дублирани nim/nim тагове структури, хвърлящи 404 на Media Playground (#872)### ⚠️ Breaking Changes

-**Оформление на регистрационния файл на заявката:**Премахнати са старите многофайлови DATA_DIR/logs/ регистрационни сесии на заявки и обобщения файл DATA_DIR/log.txt. Новите заявки се записват като единични JSON артефакти в DATA_DIR/call_logs/YYYY-MM-DD/. -**Променливи на средата за регистриране:**Заменени LOG_*, ENABLE_REQUEST_LOGS, CALL_LOGS_MAX, CALL_LOG_PAYLOAD_MODE и PROXY_LOG_MAX_ENTRIES с новия APP_LOG_* и CALL_LOG_RETENTION_DAYS конфигурационен модел. -**Настройка за превключване на тръбопровода:**Замени наследената настройка detailed_logs_enabled с call_log_pipeline_enabled. Новите подробности за конвейера са вградени в артефакта на заявката, вместо да се съхраняват като отделни записи request_detail_logs.### 🛠️ Maintenance

-**Резервно копие на надстройка на регистрационния файл на наследени заявки:**Надстройките вече архивират стари оформления data/logs/, наследени data/call_logs/ и data/log.txt в DATA_DIR/log_archives/*.zip, преди да премахнат отхвърлената структура. -**Устойчивост на използването на поточно предаване:**Заявките за поточно предаване вече записват единичен ред usage_history при завършване, вместо да излъчват дублиран ред за текущо използване с празни метаданни за състоянието. -**Последващо почистване на регистрационните файлове:**Регистрационните файлове на тръбопровода вече не улавят SOURCE REQUEST, записите на артефакти на заявки вече зачитат CALL_LOG_MAX_ENTRIES, а архивите на регистрационните файлове на приложенията вече зачитат APP_LOG_MAX_FILES.---

[3.4.0] - 2026-03-31

Функции

-**Анализ на използването на абонамента:**Добавено проследяване на времеви серии с моментна снимка на квота, раздели Използване на доставчик и Комбинирано здраве с визуализации на повторни графики и съответните крайни точки на API (#847) -**SQLite Backup Control:**Нов OMNIROUTE_DISABLE_AUTO_BACKUP env флаг за деактивиране на автоматичното SQLite архивиране (#846) -**Актуализация на системния регистър на модела:**Инжектиран gpt-5.4-mini в масива от модели на доставчика на Codex (#756) -**Проследяване на лимита на доставчика:**Проследявайте и показвайте кога лимитите на тарифите на доставчика са били последно опреснявани за акаунт (#843)### 🐛 Bug Fixes

-**Qwen Auth Routing:**пренасочва завършванията на Qwen OAuth от DashScope API към Web Inference API (chat.qwen.ai), разрешавайки неуспешни авторизации (#844, #807, #832) -**Qwen Auto-Retry Loop:**Добавена целенасочена 429 Quota Exceeded backoff обработка в chatCore, защитаваща пакетни заявки -**Codex OAuth Fallback:**Модерното блокиране на изскачащи прозорци на браузъра вече не прихваща потребителя; автоматично се връща към ръчно въвеждане на URL (#808) -**Claude Token Refresh:**строгите граници на Anthropic application/json вече се спазват по време на генерирането на токени вместо кодирани URL адреси (#836) -**Codex Messages Schema:**Изчистени пуристични „съобщения“ се инжектират от собствени заявки за преминаване, за да се избегнат структурни отхвърляния от ChatGPT нагоре (#806) -**Ограничение на размера на откриване на CLI:**Безопасно превишава горната граница на двоичното сканиране на Node от 100MB на 350MB, което позволява тежки самостоятелни инструменти като Claude Code (229MB) и OpenCode (153MB) да бъдат правилно открити от VPS runtime (#809) -**CLI Runtime Environment:**Възстановена способност за CLI конфигурациите да зачитат пътеките за отмяна на потребителя (CLI_{PROVIDER}_BIN), заобикаляйки строги правила за откриване, свързани с пътя -**Nvidia Header Conflicts:**Премахнати свойства prompt_cache_key от upstream заглавки при извикване на не-антропични доставчици (#848) -**Codex Fast Tier Toggle:**Възстановен контраст на превключването на нивото на услугата Codex в светъл режим (#842) -**Тестова инфраструктура:**Актуализиран тест t28-model-catalog-updates, който неправилно очакваше остарялата крайна точка DashScope за собствения регистър на Qwen---

[3.3.9] - 2026-03-31

🐛 Bug Fixes

-**Custom Provider Rotation:**Интегриран getRotatingApiKey вътрешно в DefaultExecutor, гарантирайки, че extraApiKeys ротацията се задейства правилно за персонализирани и съвместими доставчици нагоре (#815)---

[3.3.8] - 2026-03-30

Функции

-**Филтриране на API за модели:**Крайната точка /v1/models сега динамично филтрира списъка си въз основа на разрешенията, свързани с Authorization: Bearer <token>, когато е включен ограничен достъп (#781) -**Интеграция на Qoder:**Вградена интеграция за Qoder AI, която естествено заменя картите на наследената платформа iFlow (#660) -**Проследяване на бърз кеш:**Добавени възможности за проследяване и визуализация на интерфейса (карта със статистика) за семантично и бързо кеширане в потребителския интерфейс на таблото### 🐛 Bug Fixes

-**Оразмеряване на таблото за управление на кеша:**Подобрени са размерите на оформлението на потребителския интерфейс и контекстните заглавки за разширените страници на кеша (#835) -**Видимост на страничната лента за отстраняване на грешки:**Коригиран проблем, при който превключвателят за отстраняване на грешки не показваше/скрива правилно детайлите за отстраняване на грешки в страничната лента (#834) -**Префикс на Gemini Model:**Променено резервното пространство на имената, за да се маршрутизира правилно чрез gemini-cli/ вместо gc/, за да се спазват спецификациите нагоре (#831) -**OpenRouter Sync:**Подобрена синхронизация на съвместимостта за автоматично приемане на каталога с налични модели правилно от OpenRouter (#830) -**Картографиране на полезни натоварвания за поточно предаване:**Ресериализацията на полетата за разсъждение естествено разрешава конфликтни пътища на псевдоними, когато изходът се предава към крайни устройства---

[3.3.7] - 2026-03-30

🐛 Bug Fixes

-**OpenCode Config:**Преструктуриран генериран opencode.json, за да използва схемата, базирана на записи @ai-sdk/openai-compatible с options и models като карти на обекти вместо плоски масиви, поправяйки грешки при валидиране на конфигурацията (#816) -**i18n Missing Keys:**Добавен липсващ ключ за превод cloudflaredUrlNotice във всичките 30 езикови файла, за да се предотвратят грешки в конзолата MISSING_MESSAGE в страницата Endpoint (#823)---

[3.3.6] - 2026-03-30

🐛 Bug Fixes

-**Отчитане на токени:**Включени токени за бързо кеширане безопасно в изчисленията на входните данни за историческо използване за правилни удръжки от квоти (PR #822) -**Комбинирани тестови сонди:**Коригирани фалшиви негативи на логиката на комбо тестване чрез разрешаване на синтактичния анализ за отговори само с разсъждения и активиране на масивна паралелизация чрез Promise.all (PR #828) -**Docker Quick Tunnels:**Вградени задължителни ca-сертификати в основния контейнер за изпълнение за разрешаване на грешки при стартиране на Cloudflared TLS и открити stdout мрежови грешки, заместващи общи кодове за изход (PR #829)---

[3.3.5] - 2026-03-30

New Features

-**Проследяване на квота на Gemini:**Добавено проследяване на квота на Gemini CLI в реално време чрез API retrieveUserQuota (PR #825) -**Табло за управление на кеша:**Подобрено таблото за управление на кеша, за да показва бързи показатели на кеша, 24-часови тенденции и очаквани икономии на разходи (PR #824)### 🐛 Bug Fixes

-**Потребителско изживяване:**Премахнати инвазивни автоматично отварящи се OAuth модални цикли на безплодни страници с подробни данни за доставчик (PR #820) -**Актуализации на зависимостите:**Подобрени и заключени зависимости за разработка и производствени дървета, включително Next.js 16.2.1, Recharts и TailwindCSS 4.2.2 (PR #826, #827)---

[3.3.4] - 2026-03-30

New Features

-**A2A работни потоци:**Добавен детерминистичен FSM оркестратор за многоетапни работни потоци на агенти. -**Изящна деградация:**Добавена е нова многослойна резервна рамка за запазване на основната функционалност по време на частични прекъсвания на системата. -**Одит на конфигурация:**Добавена е одитна пътека с откриване на разлика за проследяване на промените и активиране на връщане назад на конфигурацията. -**Здраве на доставчика:**Добавено проследяване на срока на валидност на доставчика с проактивни известия за потребителския интерфейс за изтичащи API ключове. -**Адаптивно маршрутизиране:**Добавен е адаптивен детектор за обем и сложност, за да замени стратегиите за маршрутизиране динамично въз основа на натоварването. -**Разнообразие на доставчиците:**Внедрено оценяване на разнообразието на доставчиците чрез ентропията на Шанън за подобряване на разпределението на натоварването. -**Граници за автоматично деактивиране:**Добавено е превключване на настройка за автоматично деактивиране на забранени акаунти към таблото за управление на устойчивостта.### 🐛 Bug Fixes

-**Съвместимост с Codex & Claude:**Фиксирани резервни потребителски интерфейси, коригирани проблеми с интегрирането на Codex без поточно предаване и разрешено откриване на време за изпълнение на CLI в Windows. -**Автоматизация на пускането:**Изискват се разширени разрешения за изграждането на приложението Electron в GitHub Actions. -**Cloudflare Runtime:**Обърнато е внимание на правилните изходни кодове за изолация по време на изпълнение за тунелни компоненти на Cloudflared.### 🧪 Tests

-**Актуализации на пакета за тестване:**Разширено тестово покритие за детектори за обем, разнообразие на доставчици, одит на конфигурация и FSM.---

[3.3.3] - 2026-03-29

🐛 Bug Fixes

-**CI/CD Надеждност:**Пачирани действия на GitHub към стабилни версии на зависимости (actions/checkout@v4, actions/upload-artifact@v4) за смекчаване на необявени отписвания на среда за изграждане. -**Резервни изображения:**Заменени произволни резервни вериги в ProviderIcon.tsx с изрично валидиране на активи, за да се предотврати зареждането на UI компоненти <Image> компоненти за файлове, които не съществуват, елиминирайки 404 грешки в регистрационните файлове на конзолата на таблото (#745). -**Програма за актуализация на администратора:**Динамично откриване на инсталация на източник за програмата за актуализация на таблото. Безопасно деактивира бутона „Актуализиране сега“, когато OmniRoute е изграден локално, а не чрез npm, подканвайки за „git pull“ (#743). -**Грешка при актуализиране на ERESOLVE:**Инжектира package.json замени за react/react-dom и активира --legacy-peer-deps във вътрешните скриптове за автоматична актуализация за разрешаване на нарушаващи конфликти на дървото на зависимости с @lobehub/ui.---

[3.3.2] - 2026-03-29

New Features

-**Cloudflare Tunnels:**Cloudflare Quick Tunnel интеграция с контроли на таблото (PR #772). -**Диагностика:**Семантичен байпас на кеша за комбо тестове на живо (PR #773).### 🐛 Bug Fixes

-**Стабилност на поточно предаване:**Приложете FETCH_TIMEOUT_MS към първоначалното извикване fetch() на исканията за поточно предаване, за да предотвратите 300s Node.js TCP таймаут, причиняващ неуспешни неуспешни задачи (#769). -**i18n:**Добавяне на липсващи записи windsurf и copilot към toolDescriptions във всичките 33 локални файла (#748). -**Одит на GLM кодиране:**Пълен одит на доставчика, коригиращ ReDoS уязвимости, оразмеряване на контекстния прозорец (128k/16k) и синхронизиране на системния регистър на модела (PR #778).---

[3.3.1] - 2026-03-29

🐛 Bug Fixes

-**OpenAI Codex:**Корекция на резервна обработка за елементи type: "text", носещи нулеви или празни набори от данни, които причиняват отхвърляне 400 (#742). -**Отворен код:**Актуализирайте подравняването на схемата към единствения „доставчик“, за да съответства на официалната спецификация (#774). -**Gemini CLI:**Инжектиране на липсващи заглавки на квоти за крайни потребители, предотвратяващи блокиране на авторизация 403 (#775). -**Възстановяване на DB:**Рефакторинг импортиране на полезен товар от много части в необработени двоични буферирани масиви, за да се заобиколят ограниченията за максимален обем на обратния прокси (#770).---

[3.3.0] - 2026-03-29

Enhancements & Refactoring

-Стабилизиране на изданието— Финализирано издание v3.2.9 (комбинирана диагностика, порти за качество, корекция на инструмента Gemini) и създаден липсващ git таг. Консолидирани всички поетапни промени в едно атомарно освобождаване.### 🐛 Bug Fixes

-Auto-Update Test— Коригирано buildDockerComposeUpdateScript тестово твърдение, за да съответства на неразширени препратки към променливи на обвивката ($TARGET_TAG, ${TARGET_TAG#v}) в генерирания скрипт за внедряване, подравнявайки се с преработения шаблон от v3.2.8. -Circuit Breaker Test— Укрепен combo-circuit-breaker.test.mjs чрез инжектиране на maxRetries: 0, за да се предотврати увеличаването на повторния опит от изкривяване на твърденията за броя на неизправностите по време на преходите на състоянието на прекъсвача.---

[3.2.9] - 2026-03-29

Enhancements & Refactoring

-Комбинирана диагностика— Въведен е флаг за байпас на теста на живо (forceLiveComboTest), позволяващ на администраторите да изпълняват реални проверки на здравето нагоре, които байпасират всички локални механизми за прекъсване на веригата и състояние на охлаждане, което позволява прецизна диагностика по време на прекъсвания (PR #759) -Quality Gates— Добавено автоматизирано валидиране на качеството на отговора за комбинации и официално интегрирана поддръжка на модела claude-4.6 в основните схеми за маршрутизиране (PR #762)### 🐛 Bug Fixes

-Проверка на дефиницията на инструмента— Поправена интеграция на API на Gemini чрез нормализиране на типовете enum в дефинициите на инструмента, предотвратявайки грешки на HTTP 400 параметри нагоре (PR #760)---

[3.2.8] - 2026-03-29

Enhancements & Refactoring

-Docker Auto-Update UI— Интегриран отделен процес на фоново актуализиране за разполагания на Docker Compose. Потребителският интерфейс на таблото за управление вече безпроблемно проследява събития от жизнения цикъл на актуализацията, комбинирайки JSON REST отговори с наслагвания за напредък на SSE поточно предаване за стабилна надеждност в различни среди. -Cache Analytics— Поправено картографиране на визуализация с нулеви показатели чрез мигриране на телеметрични регистрационни файлове на Semantic Cache директно в модула за централизирано проследяване SQLite.### 🐛 Bug Fixes

-Authentication Logic— Коригирана грешка, при която запазването на настройките на таблото за управление или добавянето на модели се провали с грешка 401 Unauthorized, когато requireLogin беше деактивирано. Крайните точки на API вече оценяват правилно превключвателя за глобално удостоверяване. Разрешено е глобалното пренасочване чрез повторно активиране на src/middleware.ts. -CLI Tool Detection (Windows)— Предотвратени са фатални изключения при инициализация по време на откриване на среда на CLI чрез правилно улавяне на ENOENT грешки cross-spawn. Добавя изрични пътища за откриване за \AppData\Local\droid\droid.exe. -Codex Native Passthrough— Нормализирани параметри за превод на модела, предотвратяващи отравяне на контекста в прокси режим на преминаване, налагайки общи ограничения store: false изрично за всички заявки, създадени от Codex. -SSE Token Reporting— Нормализирано откриване на finish_reason на част от извикването на инструмента на доставчика, коригиране на 0% Анализ на използването за отговори само за поток, при които липсват стриктни индикатори <DONE>. -DeepSeek тагове— Внедрено е изрично картографиране на извличане на <think> вътре в responsesHandler.ts, като се гарантира, че потоците от разсъждения на DeepSeek се картографират еквивалентно на собствените антропни <thinking> структури.---

[3.2.7] - 2026-03-29

Fixed

-Безпроблемни актуализации на потребителския интерфейс: Функцията „Актуализиране сега“ на таблото за управление вече осигурява жива, прозрачна обратна връзка с помощта на изпратени от сървъра събития (SSE). Той извършва инсталиране на пакети, преустройване на родния модул (better-sqlite3) и PM2 се рестартира надеждно, докато показва зареждащи програми в реално време, вместо безшумно да виси.---

[3.2.6] — 2026-03-29

Enhancements & Refactoring

-API Key Reveal (#740)— Добавен поток на копиране на API ключ с обхват в API Manager, защитен от променливата на средата ALLOW_API_KEY_REVEAL. -Контроли за видимост на страничната лента (#739)— Администраторите вече могат да скриват всяка навигационна връзка в страничната лента чрез настройките за външен вид, за да намалят визуалния безпорядък. -Строго комбо тестване (#735)— Втвърди крайната точка за проверка на изправността на комбо, за да изисква текстови отговори на живо от моделите вместо само меки сигнали за достижимост. -Поточно предавани подробни регистрационни файлове (#734)— Превключено регистриране на подробни заявки за SSE потоци, за да се реконструира крайният полезен товар, спестявайки огромни количества от размера на базата данни на SQLite и значително почиствайки потребителския интерфейс.### 🐛 Bug Fixes

-OpenCode Go MiniMax Auth (#733)— Коригирана е логиката на хедъра за удостоверяване за моделите minimax на OpenCode Go, за да се използва x-api-key вместо стандартни токени за носител през протокола /messages.---

[3.2.5] — 2026-03-29

Enhancements & Refactoring

-Void Linux Deployment Support (#732)— Интегриран xbps-src шаблон за опаковане и инструкции за естествено компилиране и инсталиране на OmniRoute с better-sqlite3 свързвания чрез цел за кръстосано компилиране.## [3.2.4] — 2026-03-29

Enhancements & Refactoring

-Qoder AI Migration (#660)— Напълно мигрира наследения основен доставчик на iFlow към Qoder AI, поддържайки стабилни възможности за маршрутизиране на API.### 🐛 Bug Fixes

-Gemini Tools HTTP 400 Payload Invalid Argument (#731)— Предотвратени инжекции на масиви thoughtSignature в стандартните последователности Gemini functionCall, блокиращи потоците на агентно маршрутизиране.---

[3.2.3] — 2026-03-29

Enhancements & Refactoring

-Потребителски интерфейс на квоти за граници на доставчика (#728)— Нормализирана логика за ограничаване на квоти и етикетиране на данни в интерфейса за ограничения.### 🐛 Bug Fixes

-Core Routing Schemas & Leaks— Разширена comboStrategySchema за естествена поддръжка на fill-first и p2c стратегии за деблокиране на сложни комбо редактиране нативно. -Извличане на мислещи етикети (CLI)— Преструктуриран инструмент за дезинфекция на отговорите на токени на CLI RegEx, улавящ структурите на разсъжденията на модела вътре в потоците, избягвайки повредени извличания на <мислене>, нарушаващи изходния формат на текста на отговора. -Налагане на строги формати— Засилено изпълнение на дезинфекция на тръбопровода, което го прави универсално приложим към цели в режим на превод.---

[3.2.2] — 2026-03-29

New Features

-Тръбопровод на регистрационен файл с четири етапа на заявка (#705)— Рефакторинг на постоянството на регистрационния файл, за да се запазят изчерпателни полезни натоварвания на четири отделни етапа на тръбопровода: заявка на клиент, заявка на преведен доставчик, отговор на доставчик и преведен отговор на клиент. Въведен е streamPayloadCollector за стабилно съкращаване на SSE поток и сериализация на полезния товар.### 🐛 Bug Fixes

-Поправки на потребителския интерфейс за мобилни устройства (#659)— Предотвратява компонентите на таблицата на таблото за управление да нарушават оформлението на тесни прозорци за изглед чрез добавяне на правилно хоризонтално превъртане и ограничаване на препълването към DashboardLayout. -Claude Prompt Cache Fixes (#708)— Гарантирани блокове cache_control в резервните вериги Claude-to-Claude са вярно запазени и предадени безопасно обратно към моделите на Anthropic. -Дефиниции на инструмента Gemini (#725)— Коригирани грешки при превод на схема при деклариране на прости типове параметри „обект“ за извикване на функция Gemini.## [3.2.1] — 2026-03-29

New Features

-Глобален резервен доставчик (#689)— Когато всички комбинирани модели са изчерпани (502/503), OmniRoute сега опитва конфигурируем глобален резервен модел, преди да върне грешката. Задайте globalFallbackModel в настройките, за да активирате.### 🐛 Bug Fixes

-Коригиране #721— Коригирано заобикаляне на закрепването на контекста по време на отговорите на извикване на инструмент. Маркирането без поточно предаване използва грешен JSON път (json.messagesjson.choices[0].message). Инжектирането на поточно предаване вече се задейства на парчета finish_reason за потоци само за извикване на инструменти. injectModelTag() вече добавя синтетични пин съобщения за съдържание, което не е низ. -Коригиране #709— Потвърдено, че вече е коригирано (v3.1.9) — system-info.mjs създава директории рекурсивно. Затворено. -Коригиране #707— Потвърдено, че вече е коригирано (v3.1.9) — празно дезинфекция на името на инструмента в chatCore.ts. Затворено.### 🧪 Tests

  • Добавени са 6 модулни теста за закрепване на контекста с отговори на извикване на инструмент (нулево съдържание, съдържание на масив, двупосочно пътуване, повторно инжектиране)## [3.2.0] — 2026-03-28

New Features

-Потребителски интерфейс за управление на кеша— Добавено е специално табло за управление на семантичното кеширане в `/dashboard/cache` с целенасочено обезсилване на API и поддръжка на i18n на 31 езика (PR #701 от @oyi77) -Проследяване на GLM квота— Добавено е проследяване на използването в реално време и квотата на сесиите за доставчика на GLM кодиране (Z.AI) (PR #698 от @christopher-s) -Подробни полезни натоварвания в регистрационния файл— Кабелно пълно улавяне на полезния товар в четири етапа на тръбопровода (оригинал, превод, отговор на доставчика, поточно предавани делта) директно в потребителския интерфейс (PR #705 от @rdself)### 🐛 Bug Fixes

-Коригиране #708— Предотвратено изтичане на токени за потребители на Claude Code, маршрутизиращи през OmniRoute чрез правилно запазване на родните заглавки `cache_control` по време на преминаване от Claude към Claude (PR #708 от @tombii) -Коригиране #719— Настройте вътрешни граници за удостоверяване за `ModelSyncScheduler`, за да предотвратите грешки на неудостоверен демон при стартиране (PR #719 от @rdself) -Коригиране #718— Възстановено изобразяване на значки в потребителския интерфейс на ограниченията на доставчика, предотвратяващо припокриване на лоши граници на квотите (PR #718 от @rdself) -Коригиране #704— Коригирани Combo Fallbacks, нарушаващи HTTP 400 грешки в правилата за съдържание, предотвратяващи мъртвото маршрутизиране на ротацията на модела (PR #704 от @rdself)### 🔒 Security & Dependencies

  • Ударен `path-to-regexp` към `8.4.0`, разрешаващ dependabot уязвимости (PR #715)## [3.1.10] — 2026-03-28

🐛 Bug Fixes

-Коригиране #706— Коригирано резервно изобразяване на икони, причинено от замяна на font-sans на Tailwind V4 чрез прилагане на !important към .material-symbols-outlined. -Коригиране #703— Коригирани повредени потоци на GitHub Copilot чрез активиране на responses за превод на формат openai за всякакви персонализирани модели, използващи apiFormat: "responses". -Коригиране #702— Заменено проследяване на използването на фиксирана ставка с точни изчисления на ценообразуването на DB както за поточни, така и за непоточно предавани отговори. -Коригиране #716— Почистено състояние на транслация на Claude tool-call, правилно анализиране на поточни аргументи и предотвратяване на OpenAI tool_calls части от повтаряне на полето id.## [3.1.9] — 2026-03-28

New Features

-Schema Coercion— Автоматично принуждаване на низово кодирани цифрови ограничения на JSON схема (напр. "минимум": "1") към правилните типове, предотвратявайки 400 грешки от Cursor, Cline и други клиенти, изпращащи неправилно формирани схеми на инструменти. -Дезинизиране на описанието на инструмента— Уверете се, че описанията на инструментите винаги са низове; преобразува null, undefined или цифрови описания в празни низове, преди да ги изпрати до доставчиците. -Бутон за изчистване на всички модели— Добавени преводи на i18n за действието на доставчика „Изчистване на всички модели“ във всички 30 езика. -Codex Auth Export— Добавени са бутони за експортиране на Codex auth.json и локално прилагане за безпроблемна CLI интеграция. -Бележки за Windsurf BYOK— Добавени са официални предупреждения за ограничения към картата с инструменти на Windsurf CLI, документиращи ограниченията на BYOK.### 🐛 Bug Fixes

-Коригиране #709system-info.mjs вече не се срива, когато изходната директория не съществува (добавен mkdirSync с рекурсивен флаг). -Коригиране #710— A2A TaskManager singleton вече използва globalThis, за да предотврати изтичане на състояние през повторно компилиране на маршрута на Next.js API в режим за разработка. Пакетът от тестове E2E е актуализиран, за да се справя елегантно с 401. -Коригиране #711— Добавено е специфично за доставчика ограничение на max_tokens за заявки нагоре. -Коригиране #605 / #592— Премахване на префикса proxy_ от имената на инструменти в не-стрийминг отговори на Claude; фиксиран URL за валидиране на LongCat. -Call Logs Max Cap— Надстроен getMaxCallLogs() с кеширащ слой, поддръжка на env var (CALL_LOGS_MAX) и интегриране на настройките на DB.### 🧪 Tests

  • Наборът от тестове е разширен от 964 → 1027 теста (63 нови теста)
  • Добавен schema-coercion.test.mjs — 9 теста за принуда на цифрово поле и саниране на описанието на инструмента
  • Добавен t40-opencode-cli-tools-integration.test.mjs — OpenCode/Windsurf CLI интеграционни тестове
  • Подобрен клон за тестове на функции с цялостен инструментариум за покритие### 📁 New Files
Файл Цел
open-sse/translator/helpers/schemaCoercion.ts Принуждаване на схема и помощни програми за саниране на описание на инструмента
tests/unit/schema-coercion.test.mjs Единични тестове за принуда на схема
tests/unit/t40-opencode-cli-tools-integration.test.mjs Тестове за интегриране на CLI инструменти
COVERAGE_PLAN.md Документ за планиране на тестовото покритие ### 🐛 Bug Fixes

-Claude Prompt Caching Passthrough— Коригирани маркери за cache_control, които се премахват в режим на преминаване на Claude (Claude → OmniRoute → Claude), което накара потребителите на Claude Code да изчерпят своята квота за Anthropic API 5-10 пъти по-бързо от директните връзки. OmniRoute вече запазва маркерите cache_control на клиента, когато sourceFormat и targetFormat са Claude, гарантирайки, че бързото кеширане работи правилно и драстично намалява потреблението на токени.## [3.1.8] - 2026-03-27

🐛 Bug Fixes & Features

-**Ядро на платформата:**Внедрено глобално управление на състоянието за скрити модели и комбинации, което им предотвратява претрупването на каталога или изтичане в свързани MCP агенти (#681). -**Стабилност:**Коригирани сривове на поточно предаване, свързани с неуспешна интеграция на доставчика на Antigravity поради необработени масиви с недефинирани състояния (#684). -**Синхронизиране на локализацията:**Внедрено е напълно обновен синхронизатор i18n, откриващ липсващи вложени JSON свойства и пренастройване на 30 локализации последователно (#685).## [3.1.7] - 2026-03-27### 🐛 Bug Fixes

-**Стабилност на поточно предаване:**Коригирано hasValuableContent, връщащо undefined за празни парчета в SSE потоци (#676). -**Извикване на инструмент:**Коригиран проблем в sseParser.ts, при който непоточно предаваните отговори на Claude с множество извиквания на инструмента отпадаха id на последващите извиквания на инструмента поради неправилно дедупликиране, базирано на индекс (#671).---

[3.1.6] — 2026-03-27

🐛 Bug Fixes

-Възстановяване на името на родния инструмент на Claude— Имената на инструменти като TodoWrite вече не са с префикс proxy_ в отговорите за предаване на Claude (както стрийминг, така и без стрийминг). Включва покритие на единичен тест (PR #663 от @coobabm) -Clear All Models Alias Cleanup— Бутонът "Clear All Models" вече премахва и свързаните псевдоними на моделите, предотвратявайки призрачни модели в потребителския интерфейс (PR #664 от @rdself)---

[3.1.5] — 2026-03-27

🐛 Bug Fixes

-Backoff Auto-Decay— Акаунтите с ограничена скорост вече се възстановяват автоматично, когато изтече прозорецът им за охлаждане, коригирайки блокиране, при което високото backoffLevel трайно деприоритизира акаунти (PR #657 от @brendandebeasi)### 🌍 i18n

-Ревизия на превода на китайски— Изчерпателно пренаписване на zh-CN.json с подобрена точност (PR #658 от @only4copilot)---

[3.1.4] — 2026-03-27

🐛 Bug Fixes

-Коригиране на поточно предаване— Явният stream: true в тялото на заявката вече има приоритет пред Accept: application/json заглавка. Клиентите, изпращащи и двете, ще получат коректно SSE поточно предаване (#656)### 🌍 i18n

-Подобрения на чешки низове— Усъвършенствана терминология в cs.json (PR #655 от @zen0bit)---

[3.1.3] — 2026-03-26

🌍 i18n & Community

-~70 липсващи ключа за преводдобавени към en.json и 12 езика (PR #652 от @zen0bit) -Актуализирана чешка документация— ръководства за CLI-TOOLS, API_REFERENCE, VM_DEPLOYMENT (PR #652) -Скриптове за проверка на преводаcheck_translations.py и validate_translation.py за CI/QA (PR #651 от @zen0bit)---

[3.1.2] — 2026-03-26

🐛 Bug Fixes

-Критично: Регресия при извикване на инструмент— Коригирани грешки proxy_Bash чрез деактивиране на префикса на името на инструмента proxy_ в пътя за преминаване на Claude. Инструменти като Bash, Read, Write бяха преименувани на proxy_Bash, proxy_Read и т.н., което накара Клод да ги отхвърли (#618) -Документация за забрана на акаунт в Kiro— Документирано като фалшиво положително действие срещу AWS срещу измами, а не проблем с OmniRoute (#649)### 🧪 Tests

-936 теста, 0 неуспеха---

[3.1.1] — 2026-03-26

New Features

-Метаданни за зрителни възможности: Добавени са capabilities.vision, input_modalities и output_modalities към записи в /v1/models за модели с възможност за зрение (PR #646) -Модели Gemini 3.1: Добавени са gemini-3.1-pro-preview и gemini-3.1-flash-lite-preview към доставчика на Antigravity (#645)### 🐛 Bug Fixes

-Ollama Cloud 401 Error: Фиксиран неправилен базов URL адрес на API — променен от api.ollama.com на официален ollama.com/v1/chat/completions (#643) -Повторен опит с изтекъл токен: Добавен ограничен повторен опит с експоненциално забавяне (5→10→20 минути) за изтекли OAuth връзки, вместо постоянното им пропускане (PR #647)### 🧪 Tests

-936 теста, 0 неуспеха---

[3.1.0] — 2026-03-26

New Features

-Шаблони за проблеми с GitHub: Добавен стандартизиран доклад за грешка, заявка за функция и шаблони за проблеми с конфигурация/прокси (#641) -Изчистване на всички модели: Добавен е бутон "Изчистване на всички модели" към страницата с подробности за доставчика с поддръжка на i18n на 29 езика (#634)### 🐛 Bug Fixes

-Конфликт на локализация (in.json): Преименува файла с локализация на хинди от in.json (индонезийски ISO код) на hi.json, за да коригира конфликтите при превод в Weblate (#642) -Празни имена на инструменти на Codex: Преместена дезинфекция на името на инструмента преди естественото преминаване на Codex, коригиране на 400 грешки от доставчици нагоре по веригата, когато инструментите са имали празни имена (#637) -Поточно предаване на нови редове: Добавено е collapseExcessiveNewlines към дезинфекциращото средство за отговор, свиване на серии от 3+ последователни нови реда от мислещи модели в стандартен двоен нов ред (#638) -Claude Reasoning Effort: Преобразуван параметър OpenAI reasoning_effort в собствения бюджетен блок thinking на Клод във всички пътища на заявка, включително автоматично регулиране на max_tokens (#627) -Qwen Token Refresh: Внедрено проактивно опресняване на OAuth токена преди изтичане (5-минутен буфер), за да се предотврати неуспех на заявки при използване на краткотрайни токени (#631)### 🧪 Tests

-936 теста, 0 неуспеха(+10 теста от 3.0.9)---

[3.0.9] — 2026-03-26

🐛 Bug Fixes

-NaN токени в Claude Code/клиентски отговори (#617):

  • sanitizeUsage() вече кръстосва input_tokensprompt_tokens и output_tokenscompletion_tokens преди филтъра за белия списък, коригирайки отговорите, показващи броя на токените NaN/0, когато доставчиците връщат имена на полета за използване в стил Claude### Сигурност

  • Актуализиран пакет yaml за коригиране на уязвимостта при препълване на стека (GHSA-48c2-rrv3-qjmp)### 📋 Issue Triage

  • Затворен #613 (Кодестрално — решено със заобиколно решение на персонализирания доставчик)

  • Коментирано на #615 (OpenCode двойна крайна точка — предоставено заобиколно решение, проследено като заявка за функция)

  • Коментирано на #618 (видимост на извикването на инструмента — искане на тест v3.0.9)

  • Коментирано на #627 (ниво на усилие — вече се поддържа)---

[3.0.8] — 2026-03-25

🐛 Bug Fixes

-Неуспешни преводи за доставчици на OpenAI-формат в Claude CLI (#632):

  • Обработка на формата на масива reasoning_details[] от StepFun/OpenRouter — преобразува се в reasoning_content
  • Обработване на псевдоним на полето reasoning от някои доставчици → нормализирано до reasoning_content
  • Имена на полета за използване на различни карти: input_tokensprompt_tokens, output_tokenscompletion_tokens във filterUsageForFormat
  • Коригирайте extractUsage, за да приемете както input_tokens/output_tokens, така и prompt_tokens/completion_tokens като валидни полета за използване
  • Прилага се както към стрийминг (sanitizeStreamingChunk, openai-to-clau.ts translator), така и към не-стрийминг (sanitizeMessage) пътища---

[3.0.7] — 2026-03-25

🐛 Bug Fixes

-**Antigravity Token Refresh:**Коригирана грешка client_secret is missing за потребители с инсталиран npm — clientSecretDefault беше празен в providerRegistry, карайки Google да отхвърля заявките за опресняване на токена (#588) -**OpenCode Zen Models:**Добавен е modelsUrl към записа в системния регистър на OpenCode Zen, така че "Импортиране от /models" работи правилно (#612) -**Артефакти на поточно предаване:**Поправени са прекомерните нови редове, оставени в отговорите след премахване на подписа на мислещ етикет (#626) -**Резервен прокси:**Добавен е автоматичен повторен опит без прокси, когато релето SOCKS5 не успее -**Прокси тест:**Крайната точка на теста вече разрешава реални идентификационни данни от DB чрез proxyId### New Features

-**Playground Account/Key Selector:**Постоянно, винаги видимо падащо меню за избор на конкретни акаунти/ключове на доставчик за тестване — извлича всички връзки при стартиране и филтрира по избран доставчик -**CLI Tools Dynamic Models:**Изборът на модел вече се извлича динамично от /v1/models API — доставчици като Kiro вече показват пълния си каталог с модели -**Списък с антигравитационни модели:**Актуализиран с Claude Sonnet 4.5, Claude Sonnet 4, GPT 5, GPT 5 Mini; активиран passthroughModels за динамичен достъп до модела (#628)### 🔧 Maintenance

  • Обединен PR #625 — Корекция на фона на светъл режим на доставчика---

[3.0.6] — 2026-03-25

🐛 Bug Fixes

-**Ограничения/Прокси:**Коригирано извличане на ограничения на Codex за акаунти зад SOCKS5 прокси сървъри — опресняването на токена вече се изпълнява в контекста на прокси сървъра -**CI:**Фиксиран интеграционен тест v1/models неуспешно твърдение в CI среди без връзки с доставчик -**Настройки:**Бутонът за тест на прокси сървъра вече показва незабавно резултати за успех/неуспех (преди скрит зад здравни данни)### New Features

-**Playground:**Добавено падащо меню за избор на акаунти — тествайте конкретни връзки поотделно, когато доставчикът има множество акаунти### 🔧 Maintenance

  • Обединен PR #623 — Корекция на основния URL път на LongCat API---

[3.0.5] — 2026-03-25

New Features

-**Потребителски интерфейс с ограничения:**Добавена функция за групиране на тагове към таблото за управление на връзките, за да се подобри визуалната организация за акаунти с персонализирани тагове.---

[3.0.4] — 2026-03-25

🐛 Bug Fixes

-**Поточно предаване:**Коригирано повреда в състоянието на TextDecoder вътре в комбо sanitize TransformStream, което причиняваше SSE деформиран изход, съответстващ на многобайтови знаци (PR #614) -**Потребителски интерфейс на доставчиците:**Безопасно изобразяване на HTML тагове в подсказките за грешка при свързване на доставчика с помощта на dangerouslySetInnerHTML -**Настройки на прокси сървъра:**Добавени са липсващи свойства на полезен товар потребителско име и парола, позволяващи удостоверените прокси сървъри да бъдат успешно потвърдени от таблото за управление. -**API на доставчика:**Обвързаното меко изключение се връща към getCodexUsage, предотвратявайки грешки на API HTTP 500, когато извличането на токена е неуспешно---

[3.0.3] — 2026-03-25

New Features

-**Автоматично синхронизиране на модели:**Добавен е превключвател на потребителския интерфейс и крайна точка на sync-models за автоматично синхронизиране на списъците с модели за всеки доставчик с помощта на планировчик на планирани интервали (PR #597)### 🐛 Bug Fixes

-**Изчаквания:**Повишени проксита по подразбиране FETCH_TIMEOUT_MS и STREAM_IDLE_TIMEOUT_MS до 10 минути, за да поддържат правилно модели за дълбоко разсъждение (като o1) без прекъсване на заявки (Поправки #609) -**CLI Tool Detection:**Подобрено междуплатформено откриване, обработващо NVM пътеки, Windows PATHEXT (предотвратяване на проблем с .cmd обвивки) и персонализирани NPM префикси (PR #598) -**Регистрационни файлове за поточно предаване:**Внедрено натрупване на делта tool_calls в регистрационните файлове за отговор на поточно предаване, така че извикванията на функции се проследяват и поддържат точно в DB (PR #603) -**Каталог на модели:**Премахнато изключение за удостоверяване, правилно скриване на моделите comfyui и sdwebui, когато няма изрично конфигуриран доставчик (PR #599)### 🌐 Translations

-**cs:**Подобрени низове за превод на чешки в приложението (PR #601)## [3.0.2] — 2026-03-25

🚀 Enhancements & Features

feat(ui): Connection Tag Grouping

  • Добавено е поле за етикет/група към EditConnectionModal (съхранено в providerSpecificData.tag) без да се изискват миграции на DB схема.
  • Връзките в изгледа на доставчика вече се групират динамично по етикет с визуални разделители.
  • Немаркираните връзки се появяват първо без заглавка, последвани от маркирани групи по азбучен ред.
  • Групирането на тагове автоматично се прилага към секцията Codex/Copilot/Antigravity Limits, тъй като превключвателите съществуват в редовете за връзка.### 🐛 Bug Fixes

fix(ui): Proxy Management UI Stabilization

-**Липсващи значки на картите за връзка:**Коригирано чрез използване на resolveProxyForConnection() вместо статично картографиране. -**Тестовата връзка е деактивирана в запазен режим:**Бутонът Тест е активиран чрез разрешаване на прокси конфигурация от запазения списък. -**Модално замразяване на конфигурацията:**Добавени са onClose() извиквания след запазване/изчистване, за да се предотврати замразяването на потребителския интерфейс. -Двойно отчитане на употребата:ProxyRegistryManager сега зарежда употребата нетърпеливо при монтиране с дедупликация чрез scope + scopeId. Броят на употребата беше заменен с тестов бутон, показващ IP/закъснение в линия.#### fix(translator): function_call prefix stripping

  • Поправена е непълна корекция от PR #607, където само блоковете tool_use премахват префикса на инструмента proxy_ на Claude. Сега клиентите, използващи формата на OpenAI Responses API, също така правилно ще получават инструменти за инструменти без префикса proxy_.---

[3.0.1] — 2026-03-25

🔧 Hotfix Patch — Critical Bug Fixes

Три критични регресии, докладвани от потребители след стартирането на v3.0.0, са разрешени.#### fix(translator): strip proxy_ prefix in non-streaming Claude responses (#605)

Префиксът „proxy_“, добавен от Claude OAuth, беше премахнат само от отговорите запоточно предаване. В режимnon-streaming, translateNonStreamingResponse нямаше достъп до toolNameMap, карайки клиентите да получават деформирани имена на инструменти като proxy_read_file вместо read_file.

**Коригиране:**Добавен незадължителен параметър toolNameMap към translateNonStreamingResponse и приложено отстраняване на префикса в манипулатора на блок Claude tool_use. chatCore.ts сега преминава през картата.#### fix(validation): add LongCat specialty validator to skip /models probe (#592)

LongCat AI не излага GET /v1/models. Генеричният валидатор validateOpenAICompatibleProvider преминава към резервен вариант за завършване на чат само ако е зададен validationModelId, който LongCat не конфигурира. Това доведе до неуспешно валидиране на доставчика с подвеждаща грешка при добавяне/запазване.

**Коригиране:**Добавен е longcat към картата на специалните валидатори, като проучва директно /chat/completions и третира всеки неупълномощен отговор като пропуск.#### fix(translator): normalize object tool schemas for Anthropic (#595)

MCP инструменти (напр. молив, компютър_употреба) препращат дефиниции на инструменти с {type:"object"}, но без поле свойства. API на Anthropic ги отхвърля с: „липсващи свойства на схемата на обекта“.

**Коригиране:**В openai-to-claude.ts инжектирайте properties: {} като безопасна настройка по подразбиране, когато type е "object" и properties отсъства.---

🔀 Community PRs Merged (2)

PR Автор Резюме
#589 @flobo3 docs(i18n): коригиране на руския превод за Playground и Testbed
#591 @rdself fix(ui): подобряване на контраста на светлинния режим на доставчика и планиране на ниво на показване ---

Issues Resolved

#592 #595 #605---

🧪 Tests

-926 теста, 0 грешки(непроменено от v3.0.0)---

[3.0.0] — 2026-03-24

🎉 OmniRoute v3.0.0 — The Free AI Gateway, Now with 67+ Providers

Най-голямото издание досега.От 36 доставчици във v2.9.5 до67+ доставчицивъв v3.0.0 — с MCP сървър, A2A протокол, машина за автоматично комбиниране, икони на доставчици, API за регистрирани ключове, 926 теста и принос от12 членове на общносттав10 обединени PRs.

Консолидиран от v3.0.0-rc.1 до rc.17 (17 кандидати за издание за 3 дни интензивно развитие).---

🆕 New Providers (+31 since v2.9.5)

Доставчик Псевдоним Ниво Бележки
OpenCode Zen opencode-zen Безплатно 3 модела чрез opencode.ai/zen/v1 (PR #530 от @kang-heewon)
OpenCode Go opencode-go Платено 4 модела чрез opencode.ai/zen/go/v1 (PR #530 от @kang-heewon)
LongCat AI lc Безплатно 50 милиона токена/ден (Flash-Lite) + 500K/ден (чат/мислене) по време на публична бета версия
Опрашвания AI pol Безплатно Не е необходим API ключ — GPT-5, Claude, Gemini, DeepSeek V3, Llama 4 (1 req/15s)
Cloudflare Workers AI cf Безплатно 10K неврони/ден — ~150 LLM отговора или 500 s Whisper аудио, извод по ръба
Scaleway AI scw Безплатно 1 милион безплатни токени за нови акаунти — съвместими с ЕС/GDPR (Париж)
AI/ML API aiml Безплатно $0,025/ден безплатни кредити — 200+ модела чрез една крайна точка
Puter AI pu Безплатно 500+ модела (GPT-5, Claude Opus 4, Gemini 3 Pro, Grok 4, DeepSeek V3)
Alibaba Cloud (DashScope) али Платено Международни + китайски крайни точки чрез alicode/alicode-intl
План за кодиране на Alibaba bcp Платено Alibaba Model Studio с API, съвместим с Anthropic
Kimi кодиране (API ключ) kmca Платено Специализиран Kimi достъп, базиран на API ключ (отделно от OAuth)
MiniMax кодиране минимакс Платено Международна крайна точка
MiniMax (Китай) минимакс-cn Платено Специфична за Китай крайна точка
Z.AI (GLM-5) зай Платено Zhipu AI следващо поколение GLM модели
Vertex AI връх Платено Google Cloud — акаунт за услуга JSON или OAuth access_token
Ollama Cloud ollamacloud Платено Хоствана API услуга на Ollama
Синтетичен синтетичен Платено Шлюз за преминаващи модели
Kilo Gateway кг Платено Шлюз за преминаващи модели
Търсене на объркване pplx-търсене Платено Специализирана крайна точка, базирана на търсене
Serper Search serper-търсене Платено Интегриране на API за уеб търсене
Смело търсене смело търсене Платено Интегриране на API на Brave Search
Exa Търсене exa-търсене Платено Интеграция на API за невронно търсене
Търсене на Tavily tavily-търсене Платено Интегриране на API за AI търсене
Нанобанан nb Платено API за генериране на изображения
ElevenLabs el Платено Гласов синтез от текст към говор
Картезия картезия Платено Изключително бърз TTS гласов синтез
PlayHT playht Платено Гласово клониране и TTS
Вътрешен свят вътрешен свят Платено AI герой гласов чат
SD WebUI sdwebui Самостоятелен хостинг Генериране на стабилно дифузионно локално изображение
ComfyUI comfyui Самостоятелен хостинг ComfyUI базирано на възел локално генериране на работен поток
GLM кодиране glm Платено Крайна точка, специфична за кодиране на BigModel/Zhipu Общо: 67+ доставчици(4 безплатни, 8 OAuth, 55 API ключа) + неограничен брой потребителски доставчици, съвместими с OpenAI/Anthropic.---

Major Features

🔑 Registered Keys Provisioning API (#464)

Автоматично генериране и издаване на OmniRoute API ключове програмно с налагане на квоти за всеки доставчик и всеки акаунт.

Крайна точка Метод Описание
/api/v1/registered-keys ПУБЛИКУВАНЕ Издайте нов ключ — необработеният ключ се връщасамо веднъж
/api/v1/registered-keys ВЗЕМЕТЕ Списък на регистрирани ключове (маскирани)
/api/v1/registered-keys/{id} GET/DELETE Получаване на метаданни / Отмяна
/api/v1/квоти/проверка ВЗЕМЕТЕ Предварително потвърдете квотата преди издаване
/api/v1/providers/{id}/limits GET/PUT Конфигуриране на лимити за издаване за всеки доставчик
/api/v1/accounts/{id}/limits GET/PUT Конфигуриране на лимити за издаване за всеки акаунт
/api/v1/issues/report ПУБЛИКУВАНЕ Докладвайте събития с квота на GitHub Issues

**Сигурност:**Ключовете се съхраняват като SHA-256 хешове. Необработеният ключ се показва веднъж при създаване, никога не може да се извлече отново.#### 🎨 Provider Icons via @lobehub/icons (#529)

130+ лога на доставчици, използващи @lobehub/icons React компоненти (SVG). Резервна верига:Lobehub SVG → съществуващ PNG → обща икона. Прилага се върху страниците Табло за управление, Доставчици и Агенти със стандартизиран компонент „Икона на доставчик“.#### 🔄 Model Auto-Sync Scheduler (#488)

Автоматично опреснява списъците с модели за свързани доставчици на всеки24 часа. Работи при стартиране на сървъра. Може да се конфигурира чрез MODEL_SYNC_INTERVAL_HOURS.#### 🔀 Per-Model Combo Routing (#563)

Картирайте моделите на името на модела (glob) към конкретни комбинации за автоматично маршрутизиране:

  • claude-sonnet* → code-combo, gpt-4o* → openai-combo, gemini-* → google-combo
  • Нова таблица model_combo_mappings със съвпадение на glob-to-regex
  • Секция на потребителския интерфейс на таблото: „Правила за маршрутизиране на модели“ с вградено добавяне/редактиране/превключване/изтриване#### 🧭 API Endpoints Dashboard

Интерактивен каталог, управление на уеб кукички, преглед на OpenAPI — всичко това в една страница с раздели на /dashboard/endpoint.#### 🔍 Web Search Providers

5 нови интеграции на доставчик на търсене:Perplexity Search,Serper,Brave Search,Exa,Tavily— позволяващи базирани AI отговори с уеб данни в реално време.#### 📊 Search Analytics

Нов раздел в /dashboard/analytics — разбивка на доставчика, честота на попадение в кеша, проследяване на разходите. API: GET /api/v1/search/analytics.#### 🛡️ Per-API-Key Rate Limits (#452)

Колони max_requests_per_day и max_requests_per_minute с прилагане на плъзгащ се прозорец в паметта, връщащо HTTP 429.#### 🎵 Media Playground

Пълна площадка за генериране на мултимедия в /dashboard/media: Генериране на изображения, видео, музика, транскрипция на аудио (ограничение за качване от 2 GB) и текст-към-говор.---

🔒 Security & CI/CD

-Коригиране на CodeQL— Коригирани 10+ предупреждения: 6 повторения на полином, 1 несигурна произволност (Math.random()crypto.randomUUID()), 1 инжектиране на shell-command -Проверка на маршрута— Zod схеми + validateBody() на176/176 API маршрути— Наложен CI -CVE fix— dompurify XSS уязвимост (GHSA-v2wj-7wpq-c8vv) разрешена чрез npm overrides -Плосък— Ударен 3.3.3 → 3.4.2 (CWE-1321 прототипно замърсяване) -Docker— Надстроено docker/setup-buildx-action v3 → v4---

🐛 Bug Fixes (40+)

OAuth & Auth

-#537— Gemini CLI OAuth: изчистване на възможна грешка, когато GEMINI_OAUTH_CLIENT_SECRET липсва в Docker -#549— Маршрутите за настройки на CLI вече разрешават реален API ключ от keyId (не маскирани низове) -#574— Входът вече не замръзва след пропускане на настройката на паролата на съветника -#506machineId за различни платформи е пренаписан (Windows REG.exe → macOS ioreg → Linux → резервно име на хост)#### Providers & Routing

-#536— LongCat AI: коригирани baseUrl и authHeader -#535— Замяна на фиксиран модел: body.model е правилно зададен на pinnedModel -#570— Моделите Claude без префикс вече се преобразуват в Anthropic доставчик -#585— Вътрешните маркери <omniModel> вече не изтичат към клиентите в SSE поточно предаване -#493— Наименуването на потребителски модел на доставчик вече не се нарушава от премахването на префикса -#490— Поточно предаване + защита на контекстния кеш чрез инжектиране на TransformStream -#511— таг <omniModel>, инжектиран в първата част от съдържанието (не след [DONE])#### CLI & Tools

-#527— Claude Code + Codex цикъл: блоковете tool_result вече се преобразуват в текст -#524— Конфигурацията на OpenCode е запазена правилно (XDG_CONFIG_HOME, TOML формат) -#522— API Manager: премахнат подвеждащия бутон „Копиране на маскиран ключ“. -#546--version връща unknown на Windows (PR от @k0valik) -#544— Сигурно откриване на CLI инструмент чрез известни инсталационни пътища (PR от @k0valik) -#510— Windows MSYS2/Git-Bash пътища се нормализират автоматично -#492— CLI открива mise/nvm-managed Node, когато app/server.js липсва#### Streaming & SSE

-PR #587— Възстановяване на импортирането на resolveDataDir в responsesTransformer за Cloudflare Workers compat (@k0valik) -PR #495— Тясно място 429 безкрайно изчакване: премахване на чакащи задания при ограничение на скоростта (@xandr0s) -#483— Спиране на завършването на data: null след сигнала [DONE] -#473— Zombie SSE потоци: времето за изчакване е намалено с 300s → 120s за по-бързо възстановяване#### Media & Transcription

-Транскрипция— Deepgram video/mp4audio/mp4 MIME картографиране, автоматично откриване на език, пунктуация -TTS— показване на грешка [object Object] коригирано за вложени грешки в стил ElevenLabs -Ограничения за качване— Медийната транскрипция е увеличена до 2GB (nginx client_max_body_size 2g + maxDuration=300)---

🔧 Infrastructure & Improvements

Sub2api Gap Analysis (T01T15 + T23T42)

-T01— колона requested_model в дневниците на повикванията (миграция 009) -T02— Премахване на празни текстови блокове от вложен tool_result.content -T03— Разбор на x-codex-5h-* / x-codex-7d-* заглавки на квоти -T04X-Session-Id хедър за външно лепкаво маршрутизиране -T05— Устойчивост на DB с ограничение на скоростта със специален API -T06— Деактивиран акаунт → постоянен блок (1 година изчакване) -T07— X-Forwarded-For IP валидиране (extractClientIp()) -T08— Ограничения на сесията на API ключ с налагане на плъзгащ се прозорец -T09— Codex vs Spark обхвати на ограничение на скоростта (отделни пулове) -T10— Кредитите са изчерпани → отделно 1 час възстановяване на времето за изчакване -T11max усилие за разсъждение → 131072 бюджетни токена -T12— Ценообразуване на MiniMax M2.7 -T13— Корекция на показване на остаряла квота (нулиране на осведомеността за прозореца) -T14— TCP проверка за бърз отказ на прокси (≤2s, кеширани 30s) -T15— Нормализация на съдържанието на масива за Anthropic -T23— Интелигентно резервно нулиране на квота (извличане на заглавка) -T24503 изчакване + 406 картографиране -T25— Резервно валидиране на доставчик -T29— Vertex AI Service Account JWT auth -T33— Ниво на мислене към преобразуване на бюджета -T36— Класификация на грешките 403 срещу 429 -T38— Централизирани спецификации на модела (modelSpecs.ts) -T39— Резервна крайна точка за fetchAvailableModels -T41— Автоматично пренасочване на фонови задачи към флаш модели -T42— Картографиране на пропорциите на генериране на изображение#### Other Improvements

-Персонализирани заглавки нагоре за всеки модел— чрез потребителски интерфейс за конфигурация (PR #575 от @zhangqiang8vip) -Дължина на контекста на модела— конфигурируема в метаданните на модела (PR #578 от @hijak) -Отстраняване на префикса на модела— опция за премахване на префикса на доставчика от имената на моделите (PR #582 от @jay77721) -Отказ от Gemini CLI— маркиран като остарял с предупреждение за ограничение на Google OAuth -YAML анализатор— заменен персонализиран анализатор с js-yaml за правилно анализиране на спецификациите на OpenAPI -ZWS v5— корекция на изтичане на HMR (485 DB връзки → 1, памет 2,4 GB → 195 MB) -Експортиране на регистрационни файлове— Нов бутон за експортиране на JSON на таблото за управление с падащо меню за диапазон от време -Банер за известия за актуализиране— началната страница на таблото за управление показва кога са налични нови версии---

🌐 i18n & Documentation

-30 езикапри 100% паритет — синхронизирани 2788 липсващи ключа -Чешки— Пълен превод: 22 документа, 2606 UI низа (PR от @zen0bit) -китайски (zh-CN)— пълен превод (PR от @only4copilot) -Ръководство за разполагане на VM— Преведено на английски като изходен документ -API Reference— Добавени крайни точки /v1/embeddings и /v1/audio/speech -Брой доставчици— Актуализиран от 36+/40+/44+ на**67+**в README и всички 30 i18n README---

🔀 Community PRs Merged (10)

PR Автор Резюме
#587 @k0valik fix(sse): възстановяване на импортирането на resolveDataDir за Cloudflare Workers compat
#582 @jay77721 feat(прокси): опция за премахване на префикс за име на модел
#581 @jay77721 fix(npm): свързване на освобождаването на електрони към работния процес на npm-publish
#578 @hijak feat: конфигурируема дължина на контекста в метаданните на модела
#575 @zhangqiang8vip feat: заглавки нагоре по модел, съвместим PATCH, чат подравняване
#562 @coobabm поправка: управление на MCP сесии, преминаване на Claude, detectFormat
#561 @zen0bit fix(i18n): корекции на превод на чешки
#555 @k0valik fix(sse): централизиран resolveDataDir() за разрешаване на пътя
#546 @k0valik fix(cli): --version връща unknown на Windows
#544 @k0valik fix(cli): сигурно откриване на CLI инструмент чрез инсталационни пътища
#542 @rdself fix(ui): светъл режим контраст CSS тема променливи
#530 @kang-heewon feat: доставчици на OpenCode Zen + Go с OpencodeExecutor
#512 @zhangqiang8vip feat: съвместимост на модела на протокол (compatByProtocol)
#497 @zhangqiang8vip поправка: течове на HMR ресурси в режим на разработка (ZWS v5)
#495 @xandr0s поправка: Bottleneck 429 безкрайно чакане (отпадане на чакащи задания)
#494 @zhangqiang8vip feat: MiniMax разработчик→корекция на системна роля
#480 @prakersh поправка: извличане на използването на потока
#479 @prakersh feat: Codex 5.3/5.4 и записи за ценообразуване на Anthropic
#475 @only4copilot feat(i18n): подобрен китайски превод

Благодарим на всички сътрудници!🙏---

📋 Issues Resolved (50+)

#452 #458 #462 #464 #466 #473 #474 #481 #483 #487 #488 #489 #490 #491 #492 #493 #506 #508 #509 #510 #511 #513 #520 #521 #522 #524 #525 #527 #529 #531 #532 #535 #536 #537 #541 #546 #549 #563 #570 #574 #585---

🧪 Tests

-926 теста, 0 грешки(от 821 във v2.9.5)

  • +105 нови теста, обхващащи: съпоставяне на модел-комбо, регистрирани ключове, OpencodeExecutor, доставчик на Bailian, валидиране на маршрут, класификация на грешки, картографиране на съотношение на страните и др.---

📦 Database Migrations

Миграция Описание
008 таблици registered_keys, provider_key_limits, account_key_limits
009 колона requested_model в call_logs
010 Таблица model_combo_mappings за комбо маршрутизиране по модел ---

⬆️ Upgrading from v2.9.5

# npm
npm install -g omniroute@3.0.0

# Docker
docker pull diegosouzapw/omniroute:3.0.0

# Migrations run automatically on first startup

**Взломни промени:**Няма. Всички съществуващи конфигурации, комбинации и API ключове се запазват. Миграциите на бази данни 008-010 се изпълняват автоматично при стартиране.---

[3.0.0-rc.17] — 2026-03-24

🔒 Security & CI/CD

-Коригиране на CodeQL— Коригирани 10+ предупреждения:

  • 6 повторения на полином в provider.ts / chatCore.ts (заменени модели за редуване на (?:^|/) с базирано на сегмент съвпадение)
  • 1 несигурна случайност в acp/manager.ts (Math.random()crypto.randomUUID())
  • 1 инжектиране на командна обвивка в prepublish.mjs (JSON.stringify() екраниране на пътя) -Валидиране на маршрута— Добавени Zod схеми + validateBody() към 5 маршрута без валидиране:
  • model-combo-mappings (POST, PUT), webhooks (POST, PUT), openapi/try (POST)
  • CI check:route-validation:t06 вече преминава:176/176 валидирани маршрута### 🐛 Bug Fixes

-#585— Вътрешните етикети <omniModel> вече не изтичат към клиентите в отговорите на SSE. Добавена е изходяща дезинфекция „TransformStream“ в „combo.ts“.### ⚙️ Infrastructure

-Docker— Надстроено docker/setup-buildx-action от v3 → v4 (Node.js 20 корекция за оттегляне) -CI cleanup— Изтрити 150+ неуспешни/анулирани изпълнения на работен поток### 🧪 Tests

  • Тестов пакет:926 теста, 0 неуспеха(+3 нови)---

[3.0.0-rc.16] — 2026-03-24

New Features

  • Повишени лимити за транскрипция на медии
  • Добавена дължина на контекста на модела към метаданните на регистъра
  • Добавени персонализирани заглавки за модел нагоре по веригата чрез потребителски интерфейс за конфигурация
  • Поправени са множество грешки, проверка на Zod за корекции и разрешени различни проблеми на общността.## [3.0.0-rc.15] — 2026-03-24

New Features

-#563— Комбинирано маршрутизиране за модел: картографирайте моделите на името на модела (glob) към конкретни комбинации за автоматично маршрутизиране

  • Нова таблица model_combo_mappings (миграция 010) с модел, combo_id, приоритет, активиран
  • resolveComboForModel() DB функция със съвпадение на glob-to-regex (нечувствителен към регистър, * и ? заместващи знаци)
  • getComboForModel() в model.ts: допълва getCombo() с резервен модел на модел
  • chat.ts: решението за маршрутизиране вече проверява съпоставянията на модел-комбо преди обработка на единичен модел
  • API: GET/POST /api/model-combo-mappings, GET/PUT/DELETE /api/model-combo-mappings/:id
  • Табло за управление: разделът „Правила за маршрутизиране на модела“ е добавен към страницата с комбинации с вградено добавяне/редактиране/превключване/изтриване
  • Примери: claude-sonnet* → code-combo, gpt-4o* → openai-combo, gemini-* → google-combo### 🌐 i18n

-Пълна i18n синхронизация: 2788 липсващи ключа, добавени в 30 езикови файла — всички езици вече са на 100% равенство с en.json -Страница на агенти i18n: Разделът за интегриране на OpenCode е напълно интернационализиран (заглавие, описание, сканиране, етикети за изтегляне) -6 нови ключадобавени към пространството на имената на агентите за секцията OpenCode### 🎨 UI/UX

-Икони на доставчик: добавени са 16 липсващи икони на доставчик (3 копирани, 2 изтеглени, 11 създадени SVG) -Резервен SVG: Компонентът ProviderIcon актуализиран с 4-степенна стратегия: Lobehub → PNG → SVG → Обща икона -Агентни пръстови отпечатъци: Синхронизирано с CLI инструменти — добавен дроид, отворен нокът, втори пилот, отворен код към списък с пръстови отпечатъци (общо 14)### Сигурност

-CVE fix: Разрешена XSS уязвимост на dompurify (GHSA-v2wj-7wpq-c8vv) чрез npm замени, принуждавайки dompurify@^3.3.2

  • npm audit вече отчита0 уязвимости### 🧪 Tests

  • Пакет от тестове:923 теста, 0 неуспеха(+15 нови теста за картографиране на комбинация от модели)---

[3.0.0-rc.14] — 2026-03-23

🔀 Community PRs Merged

PR Автор Резюме
#562 @coobabm fix(ux): управление на MCP сесии, нормализация на Claude passthrough, модален OAuth, detectFormat
#561 @zen0bit fix(i18n): корекции на чешки превод — имена на HTTP методи и актуализации на документацията ### 🧪 Tests
  • Тестов пакет:908 теста, 0 неуспеха---

[3.0.0-rc.13] — 2026-03-23

🔧 Bug Fixes

-**config:**разрешава реален API ключ от keyId в маршрути за настройки на CLI (codex-settings, droid-settings, kilo-settings), за да се предотврати писането на маскирани низове (#549)---

[3.0.0-rc.12] — 2026-03-23

🔀 Community PRs Merged

PR Автор Резюме
#546 @k0valik fix(cli): --version връща unknown в Windows — използвайте JSON.parse(readFileSync) вместо импортиране на ESM
#555 @k0valik fix(sse): централизиран resolveDataDir() за разрешаване на пътя в идентификационни данни, autoCombo, регистратор на отговори и регистратор на заявки
#544 @k0valik fix(cli): сигурно откриване на CLI инструмент чрез известни инсталационни пътища (8 инструмента) с валидиране на символна връзка, проверки на типа на файла, граници на размера, минимално env в проверката на състоянието
#542 @rdself fix(ui): подобряване на контраста на светлия режим — добавяне на липсващи променливи на CSS тема (bg-primary, bg-subtle, text-primary) и коригиране на тъмните само цветове в детайлите на регистрационния файл ### 🔧 Bug Fixes

-TDZ корекция в cliRuntime.tsvalidateEnvPath беше използван преди инициализацията при стартиране на модула от getExpectedParentPaths(). Пренаредени декларации за коригиране на „ReferenceError“. -Поправки на компилация— Добавени са pino и pino-pretty към serverExternalPackages, за да се предотврати Turbopack да наруши вътрешното работно зареждане на Pino.### 🧪 Tests

  • Тестов пакет:905 теста, 0 неуспеха---

[3.0.0-rc.10] — 2026-03-23

🔧 Bug Fixes

-#509 / #508— Регресия на изграждането на Electron: Next.js е понижен от 16.1.x до 16.0.10, за да се елиминира нестабилността на хеширането на модула Turbopack, която причинява празни екрани в пакета за настолен компютър Electron. -Поправки на модулни тестове— Коригирани са две остарели тестови твърдения (nanobanana-image-handler съотношение/резолюция, thinking-budget Gemini thinkingConfig картографиране на полето), които са се отклонили след скорошни промени в изпълнението. -#541— Отговорено на отзивите на потребителите относно сложността на инсталацията; не са необходими промени в кода.---

[3.0.0-rc.9] — 2026-03-23

New Features

-T29— Vertex AI SA JSON Executor: внедрява се с помощта на библиотеката jose за обработка на удостоверяване на JWT/Service Account, заедно с конфигурируеми региони в потребителския интерфейс и автоматично изграждане на URL модел на партньор. -T42— Картографиране на аспектното съотношение на генериране на изображение: създаде логика sizeMapper за общи OpenAI формати (size), добавено естествено управление на imagen3 и актуализирани крайни точки на NanoBanana, за да се използват автоматично картографираните аспектни съотношения. -T38— Централизирани спецификации на модела: modelSpecs.ts, създаден за ограничения и параметри на модел.### 🔧 Improvements

-T40— Интеграция на OpenCode CLI инструменти: собствена интеграция opencode-zen и opencode-go, завършена в по-ранен PR.---

[3.0.0-rc.8] — 2026-03-23

🔧 Bug Fixes & Improvements (Fallback, Quota & Budget)

-T24503 изчакване за изчакване на корекция + 406 съпоставяне: съпоставено 406 Неприемливо към 503 Услугата е недостъпна с подходящи интервали за изчакване. -T25— Резервно валидиране на доставчик: грациозно резервно връщане към стандартни модели за валидиране, когато конкретен validationModelId не присъства. -T36403 срещу 429 усъвършенстване на обработката на доставчика: извлечено в errorClassifier.ts, за да се разделят правилно неуспешните твърди разрешения (403) от ограниченията на скоростта (429). -T39— Резервна крайна точка за fetchAvailableModels: имплементиран механизъм от три нива (/models -> /v1/models -> локален общ каталог) + list_models_catalog актуализации на MCP инструмента, за да отрази source и warning. -T33— Ниво на мислене към преобразуване на бюджета: превръща нивата на качествено мислене в точни бюджетни разпределения. -T41— Автоматично пренасочване на фонови задачи: насочва автоматично тежките задачи за оценка на фона към флаш/ефективни модели. -T23— Резервен вариант за интелигентно нулиране на квота: точно извлича стойностите на заглавката x-ratelimit-reset / retry-after или картографира статични времена за охлаждане.---

[3.0.0-rc.7] — 2026-03-23 (What's New vs v2.9.5 — will be released as v3.0.0)

**Надстройка от v2.9.5:**16 решени проблема · 2 PR-а на общността са обединени · 2 нови доставчика · 7 нови крайни точки на API · 3 нови функции · Миграция на DB 008+009 · 832 преминали теста · 15 подобрения на пропуски в sub2api (T01T15 завършени).### 🆕 New Providers

Доставчик Псевдоним Ниво Бележки
OpenCode Zen opencode-zen Безплатно 3 модела чрез opencode.ai/zen/v1 (PR #530 от @kang-heewon)
OpenCode Go opencode-go Платено 4 модела чрез opencode.ai/zen/go/v1 (PR #530 от @kang-heewon)

И двата доставчика използват новия OpencodeExecutor с многоформатно маршрутизиране (/chat/completions, /messages, /responses, /models/{model}:generateContent).---

New Features

🔑 Registered Keys Provisioning API (#464)

Автоматично генериране и издаване на OmniRoute API ключове програмно с налагане на квоти за всеки доставчик и всеки акаунт.

Крайна точка Метод Описание
/api/v1/registered-keys ПУБЛИКУВАНЕ Издайте нов ключ — необработеният ключ се връщасамо веднъж
/api/v1/registered-keys ВЗЕМЕТЕ Списък на регистрирани ключове (маскирани)
/api/v1/registered-keys/{id} ВЗЕМЕТЕ Вземете ключови метаданни
/api/v1/registered-keys/{id} ИЗТРИВАНЕ Отмяна на ключ
/api/v1/registered-keys/{id}/revoke ПУБЛИКУВАНЕ Отмяна (за клиенти без поддръжка на DELETE)
/api/v1/квоти/проверка ВЗЕМЕТЕ Предварително потвърдете квотата преди издаване
/api/v1/providers/{id}/limits GET/PUT Конфигуриране на лимити за издаване за всеки доставчик
/api/v1/accounts/{id}/limits GET/PUT Конфигуриране на лимити за издаване за всеки акаунт
/api/v1/issues/report ПУБЛИКУВАНЕ Докладвайте събития с квота на GitHub Issues

**DB — Миграция 008:**Три нови таблици: registered_keys, provider_key_limits, account_key_limits. **Сигурност:**Ключовете се съхраняват като SHA-256 хешове. Необработеният ключ се показва веднъж при създаване, никога не може да се извлече отново. Типове квоти:maxActiveKeys, dailyIssueLimit, hourlyIssueLimit за доставчик и за акаунт. **Idempotency:**полето idempotency_key предотвратява дублиране на издаване. Връща „409 IDEMPOTENCY_CONFLICT“, ако ключът вече е бил използван. Бюджет на ключ:dailyBudget / hourlyBudget — ограничава колко заявки ключът може да насочи на прозорец. **Отчитане на GitHub:**По избор. Задайте GITHUB_ISSUES_REPO + GITHUB_ISSUES_TOKEN за автоматично създаване на проблеми с GitHub при превишена квота или неуспешно издаване.#### 🎨 Provider Icons — @lobehub/icons (#529)

Всички икони на доставчици в таблото за управление вече използват @lobehub/icons React компоненти (130+ доставчици със SVG). Резервна верига:Lobehub SVG → съществуващ /providers/{id}.png → обща икона. Използва подходящ модел на React ErrorBoundary.#### 🔄 Model Auto-Sync Scheduler (#488)

OmniRoute вече автоматично опреснява списъците с модели за свързани доставчици на всеки24 часа.

  • Работи при стартиране на сървъра чрез съществуващата кука /api/sync/initialize
  • Може да се конфигурира чрез променливата на средата MODEL_SYNC_INTERVAL_HOURS
  • Обхваща 16 основни доставчици
  • Записва времето за последно синхронизиране в базата данни с настройки---

🔧 Bug Fixes

OAuth & Auth

-**#537 — Gemini CLI OAuth:**Изчистване на възможна грешка, когато GEMINI_OAUTH_CLIENT_SECRET липсва в Docker/самостоятелно хоствани внедрявания. По-рано показваше загадъчно „client_secret is missing“ от Google. Вече предоставя конкретни инструкции за docker-compose.yml и ~/.omniroute/.env.#### Providers & Routing

-#536 — LongCat AI:Фиксиран baseUrl (api.longcat.chat/openai) и authHeader (Authorization: Bearer). -#535 — Отмяна на фиксиран модел:body.model вече е правилно настроен на pinnedModel, когато защитата на контекстния кеш е активна. -**#532 — Проверка на ключа на OpenCode Go:**Сега използва крайната точка на теста zen/v1 (testKeyBaseUrl) — един и същ ключ работи и за двете нива.#### CLI & Tools

-**#527 — Claude Code + Codex цикъл:блоковете tool_result вече се преобразуват в текст, вместо да се изпускат, спирайки безкрайните цикли на резултата от инструмента. -#524 — Запазване на OpenCode config:Добавен манипулатор saveOpenCodeConfig() (съзнава XDG_CONFIG_HOME, пише TOML). -#521 — Входът блокира:Входът вече не замръзва след пропускане на настройката на паролата — пренасочва правилно към onboarding. -#522 — API Manager:Премахнат подвеждащ бутон „Копиране на маскиран ключ“ (заменен с подсказка за икона на заключване). -#532 — Конфигурация на OpenCode Go:**Манипулаторът на настройките на ръководството вече обработва opencode toolId.#### Developer Experience

-#489 — Antigravity:Липсващият googleProjectId връща структурирана грешка 422 с указания за повторно свързване вместо загадъчен срив. -#510 — Пътища на Windows:Пътищата на MSYS2/Git-Bash (/c/Program Files/...) вече се нормализират автоматично до C:\Program Files\.... -#492 — CLI стартиране:omniroute CLI вече открива mise/nvm-managed Node, когато app/server.js липсва и показва насочени инструкции за корекция.---

📖 Documentation Updates

-#513— Нулиране на парола за Docker: документирано заобиколно решение на INITIAL_PASSWORD env var -#520— pnpm: стъпката pnpm approve-builds better-sqlite3 е документирана---

Issues Resolved in v3.0.0

#464 #488 #489 #492 #510 #513 #520 #521 #522 #524 #527 #529 #532 #535 #536 #537---

🔀 Community PRs Merged

PR Автор Резюме
#530 @kang-heewon Доставчици на OpenCode Zen + Go с OpencodeExecutor и подобрени тестове ---

[3.0.0-rc.7] - 2026-03-23

🔧 Improvements (sub2api Gap Analysis — T05, T08, T09, T13, T14)

-T05— Устойчивост на база данни с ограничение на скоростта: setConnectionRateLimitUntil(), isConnectionRateLimited(), getRateLimitedConnections() в providers.ts. Съществуващата колона „rate_limited_until“ вече е изложена като специален API — опресняването на токена на OAuth НЕ трябва да докосва това поле, за да се предотвратят цикли на ограничаване на скоростта. -T08— Ограничение за сесията на API ключ: max_sessions INTEGER DEFAULT 0, добавено към api_keys чрез автоматична миграция. sessionManager.ts печели registerKeySession(), unregisterKeySession(), checkSessionLimit() и getActiveSessionCountForKey(). Обаждащите се в chatCore.js могат да наложат ограничението и да намалят req.close. -T09— Обхвати на ограничение на скоростта на Codex срещу Spark: getCodexModelScope() и getCodexRateLimitKey() в codex.ts. Стандартните модели (gpt-5.x-codex, codex-mini) получават обхват "codex"; искровите модели (codex-spark*) получават обхват "искра". Ключовете за ограничаване на скоростта трябва да бъдат ${accountId}:${scope}, така че изчерпването на единия пул да не блокира другия. -T13— Корекция на показване на остаряла квота: getEffectiveQuotaUsage(used, resetAt) връща 0, когато прозорецът за нулиране е преминал; formatResetCountdown(resetAt) връща четим от човека низ за обратно отброяване (напр. "2h 35m"). И двете са експортирани от providers.ts + localDb.ts за потребление на таблото за управление. -T14— Прокси бърз отказ: нов src/lib/proxyHealth.ts с isProxyReachable(proxyUrl, timeoutMs=2000) (TCP проверка, ≤2s вместо 30s изчакване), getCachedProxyHealth(), invalidateProxyHealth() и getAllProxyHealthStatuses(). Резултатите се кешират 30s по подразбиране; може да се конфигурира чрез PROXY_FAST_FAIL_TIMEOUT_MS / PROXY_HEALTH_CACHE_TTL_MS.### 🧪 Tests

  • Тестов пакет:832 теста, 0 неуспеха---

[3.0.0-rc.6] - 2026-03-23

🔧 Bug Fixes & Improvements (sub2api Gap Analysis — T01T15)

-T01— колона requested_model в call_logs (миграция 009): проследяване на модела, който клиентът първоначално е поискал спрямо действително маршрутизирания модел. Позволява анализ на резервния процент. -T02— Премахване на празни текстови блокове от вложен tool_result.content: предотвратява грешки на Anthropic 400 (блоковете с текстово съдържание не трябва да са празни), когато резултатите от инструмента на Claude Code са вериги. -T03— Разбор на x-codex-5h-* / x-codex-7d-* заглавки: parseCodexQuotaHeaders() + getCodexResetTime() извличане на прозорци на квоти на Codex за прецизно планиране на изчакване вместо общ 5-минутен резерв. -T04— Заглавка X-Session-Id за външно лепкаво маршрутизиране: extractExternalSessionId() в sessionManager.ts чете x-session-id / x-omniroute-session заглавки с префикс ext:, за да се избегне сблъсък с вътрешни идентификатори на SHA-256 сесии. Съвместим с Nginx (заглавка с тире). -T06— Акаунтът е деактивиран → постоянно блокиране: isAccountDeactivated() в accountFallback.ts открива 401 сигнала за деактивиране и прилага 1-годишно изчакване, за да предотврати повторни опити за постоянно мъртви акаунти. -T07— X-Forwarded-For IP валидиране: нов src/lib/ipUtils.ts с extractClientIp() и getClientIpFromRequest() — пропуска unknown/non-IP записи във веригите X-Forwarded-For (Nginx/прокси-препратени заявки). -T10— Изчерпани кредити → различен резервен вариант: isCreditsExhausted() в accountFallback.ts връща 1 час изчакване с флаг creditsExhausted, различен от общото ограничаване на скоростта 429. -T11max усилие за разсъждение → 131072 бюджетни токена: EFFORT_BUDGETS и THINKING_LEVEL_MAP актуализирани; обратното картографиране вече връща „max“ за отговори с пълен бюджет. Единичният тест е актуализиран. -T12— Добавени са цени за MiniMax M2.7: minimax-m2.7, MiniMax-M2.7, minimax-m2.7-highspeed добавени към таблицата с цените (sub2api PR #1120). Цените на M2.5/GLM-4.7/GLM-5/Kimi вече съществуват. -T15— Нормализиране на съдържанието на масива: помощникът normalizeContentToString() в openai-to-claude.ts правилно свива форматираните в масив съобщения от системата/инструмента към низ преди изпращане до Anthropic.### 🧪 Tests

  • Тестов пакет:832 теста, 0 неуспеха(непроменен от rc.5)---

[3.0.0-rc.5] - 2026-03-22

New Features

-#464— API за предоставяне на регистрирани ключове: автоматично издаване на API ключове с налагане на квота за всеки доставчик и за всеки акаунт

  • POST /api/v1/registered-keys — издаване на ключове с поддръжка на идемпотентност
  • GET /api/v1/registered-keys — списък (маскирани) регистрирани ключове
  • GET /api/v1/registered-keys/{id} — вземете ключови метаданни
  • DELETE /api/v1/registered-keys/{id} / POST ../{id}/revoke — отмяна на ключове
  • GET /api/v1/quotas/check — предварителна проверка преди издаване
  • PUT /api/v1/providers/{id}/limits — задаване на лимити за издаване на доставчик
  • PUT /api/v1/accounts/{id}/limits — задайте лимити за издаване на акаунт
  • POST /api/v1/issues/report — незадължително отчитане на проблеми с GitHub
  • DB миграция 008: таблици registered_keys, provider_key_limits, account_key_limits---

[3.0.0-rc.4] - 2026-03-22

New Features

-#530 (PR)— Добавени доставчици на OpenCode Zen и OpenCode Go (от @kang-heewon)

  • Нов OpencodeExecutor с многоформатно маршрутизиране (/chat/completions, /messages, /responses)
  • 7 модела в двете нива---

[3.0.0-rc.3] - 2026-03-22

New Features

-#529— Иконите на доставчиците вече използват @lobehub/icons с елегантен резервен PNG и компонент ProviderIcon (поддържат се 130+ доставчици) -#488— Автоматично актуализиране на списъците с модели на всеки 24 часа чрез modelSyncScheduler (може да се конфигурира чрез MODEL_SYNC_INTERVAL_HOURS)### 🔧 Bug Fixes

-#537— Gemini CLI OAuth: вече показва ясна грешка, която може да се предприеме, когато GEMINI_OAUTH_CLIENT_SECRET липсва в Docker/самостоятелно хоствани внедрявания---

[3.0.0-rc.2] - 2026-03-22

🔧 Bug Fixes

-#536— Проверка на ключа на LongCat AI: фиксиран baseUrl (api.longcat.chat/openai) и authHeader (Authorization: Bearer) -#535— Замяна на фиксиран модел: body.model вече е настроен на pinnedModel, когато защитата на контекстния кеш открие фиксиран модел -#524— Конфигурацията на OpenCode вече е запазена правилно: добавен манипулатор saveOpenCodeConfig() (съзнава XDG_CONFIG_HOME, пише TOML)---

[3.0.0-rc.1] - 2026-03-22

🔧 Bug Fixes

-#521— Влизането вече не се блокира след пропускане на настройката на парола (пренасочва към onboarding) -#522— API Manager: Премахнат подвеждащ бутон „Копиране на маскиран ключ“ (заменен с подсказка за икона на заключване) -#527— Цикъл със суперсили на Claude Code + Codex: блоковете tool_result вече се преобразуват в текст, вместо да бъдат премахнати -#532— Проверката на OpenCode GO API ключ вече използва правилната крайна точка zen/v1 (testKeyBaseUrl) -#489— Антигравитация: липсващ googleProjectId връща структурирана грешка 422 с указания за повторно свързване -#510— Windows: MSYS2/Git-Bash пътищата (/c/Program Files/...) вече са нормализирани към C:\Program Files\... -#492omniroute CLI вече открива mise/nvm, когато app/server.js липсва и показва насочена корекция### Документация

-#513— Нулиране на парола за Docker: документирано заобиколно решение на INITIAL_PASSWORD env var -#520— pnpm: pnpm approve-builds better-sqlite3 документиран### Closed Issues

#489, #492, #510, #513, #520, #521, #522, #525, #527, #532---

[2.9.5] — 2026-03-22

Sprint: Нови доставчици на OpenCode, корекция на идентификационни данни за вграждане, грешка в CLI маскиран ключ, корекция на CACHE_TAG_PATTERN.### 🐛 Bug Fixes

-CLI инструментите запазват маскиран API ключ към конфигурационни файловеclaude-settings, cline-settings и openclaw-settings POST маршрутите вече приемат параметър keyId и разрешават истинския API ключ от DB преди запис на диск. „ClaudeToolCard“ е актуализиран, за да изпраща „keyId“ вместо маскирания низ за показване. Коригира #523, #526. -Персонализирани доставчици на вграждане: Грешка Няма идентификационни данни/v1/embeddings вече проследява credentialsProviderId отделно от префикса за маршрутизиране, така че идентификационните данни се извличат от съвпадащия ID на възела на доставчика, а не от обществения префиксен низ. Коригира регресия, при която google/gemini-embedding-001 и подобни модели на персонализирани доставчици винаги се провалят с грешка в идентификационните данни. Поправки, свързани с #532. (PR #528 от @jacob2826) -Регулярният израз за защита на контекстния кеш пропуска префиксCACHE_TAG_PATTERN в comboAgentMiddleware.ts актуализиран, за да съответства на двата литерала (обратна наклонена черта-n) и действителен нов ред U+000A, който combo.ts стрийминг инжектира около тага <omniModel> след корекция #515. Поправки #531.### New Providers

-OpenCode Zen— Безплатен шлюз на ниво в opencode.ai/zen/v1 с 3 модела: minimax-m2.5-free, big-pickle, gpt-5-nano -OpenCode Go— Абонаментна услуга на адрес opencode.ai/zen/go/v1 с 4 модела: glm-5, kimi-k2.5, minimax-m2.7 (формат Claude), minimax-m2.5 (формат Claude)

  • И двата доставчика използват новия OpencodeExecutor, който насочва динамично към /chat/completions, /messages, /responses или /models/{model}:generateContent въз основа на искания модел. (PR #530 от @kang-heewon)---

[2.9.4] — 2026-03-21

Спринт: Корекции на грешки — запазване на кеша на подканите на Codex, коригиране на екранирането на tagContent JSON, синхронизиране на състоянието на изтекъл токен с DB.### 🐛 Bug Fixes

-fix(translator): Запазване на prompt_cache_key в Responses API → Chat Completions превод (#517) — Полето е сигнал за афинитет на кеша, използван от Codex; отстраняването му предотвратяваше бързите посещения на кеша. Коригирано в openai-responses.ts и responsesApiHelper.ts.

-fix(combo): Escape в tagContent, така че инжектираният JSON низ е валиден (#515) — Новите редове на шаблонния литерал (U+000A) не се допускат неекранирани в стойностите на JSON низове. Заменен с последователности от литерали „\n“ в „open-sse/services/combo.ts“.

-fix(usage): Синхронизиране на статуса на изтекъл токен обратно към DB при отказ на удостоверяване на живо (#491) — Когато проверката на живо за ограничения и квоти върне 401/403, връзката „testStatus“ вече се актуализира на "изтекъл" в базата данни, така че страницата Доставчици отразява същото влошено състояние. Коригирано в src/app/api/usage/[connectionId]/route.ts.---

[2.9.3] — 2026-03-21

Sprint: Добавете 5 нови безплатни доставчици на AI — LongCat, Pollinations, Cloudflare AI, Scaleway, AI/ML API.### New Providers

-feat(providers/longcat): Добавете LongCat AI (lc/) — 50 милиона токена/ден безплатно (Flash-Lite) + 500K/ден (чат/мислене) по време на публична бета версия. Съвместим с OpenAI, стандартно удостоверяване на носителя. -feat(providers/pollinations): Добавяне на AI за опрашвания (pol/) — не се изисква API ключ. Прокси GPT-5, Claude, Gemini, DeepSeek V3, Llama 4 (1 req/15s безплатно). Персонализираният изпълнител обработва незадължително удостоверяване. -feat(providers/cloudflare-ai): Добавете Cloudflare Workers AI (cf/) — 10K неврона/ден безплатно (~150 LLM отговора или 500s Whisper аудио). 50+ модела в световен мащаб. Персонализираният изпълнител изгражда динамичен URL адрес с „accountId“ от идентификационни данни. -feat(providers/scaleway): Добавяне на Scaleway Generative APIs (scw/) — 1 милион безплатни жетони за нови акаунти. Съвместим с ЕС/GDPR (Париж). Qwen3 235B, Llama 3.1 70B, Mistral Small 3.2. -feat(providers/aimlapi): Добавяне на AI/ML API (aiml/) — $0,025/ден безплатен кредит, 200+ модела (GPT-4o, Claude, Gemini, Llama) чрез единична крайна точка на агрегатора.### 🔄 Provider Updates

-feat(providers/together): Добавяне на hasFree: true + 3 постоянно безплатни идентификатора на модел: Llama-3.3-70B-Instruct-Turbo-Free, Llama-Vision-Free, DeepSeek-R1-Distill-Llama-70B-Free -feat(providers/gemini): Добавете hasFree: true + freeNote (1500 req/ден, не е необходима кредитна карта, aistudio.google.com) -chore(providers/gemini): Преименувайте показваното име на Gemini (Google AI Studio) за яснота### ⚙️ Infrastructure

-feat(executors/pollinations): Нов PollinationsExecutor — пропуска заглавката Authorization, когато не е предоставен API ключ -feat(executors/cloudflare-ai): Нов CloudflareAIExecutor — изграждането на динамичен URL изисква accountId в идентификационните данни на доставчика -feat(executors): Регистрирайте pollinations, pol, cloudflare-ai, cf съпоставяния на изпълнители### Документация

-docs(readme): Разширен безплатен комбиниран стек до 11 доставчика ($0 завинаги) -docs(readme): Добавени са 4 нови безплатни раздела за доставчици (LongCat, Pollinations, Cloudflare AI, Scaleway) с таблици с модели -docs(readme): Актуализирана ценова таблица с 4 нови реда за безплатни нива -docs(i18n/pt-BR): Актуализирана ценова таблица + добавени секции LongCat/Pollinations/Cloudflare AI/Scaleway на португалски -docs(new-features/ai): 10 файла със спецификация на задачи + главен план за внедряване в docs/new-features/ai/### 🧪 Tests

  • Тестов пакет:821 теста, 0 неуспеха(непроменени)---

[2.9.2] — 2026-03-21

Спринт: Коригиране на медийна транскрипция (Deepgram/HuggingFace Content-Type, откриване на език) и TTS показване на грешки.### 🐛 Bug Fixes

-fix(transcription): Аудио транскрипцията на Deepgram и HuggingFace вече правилно картографира video/mp4audio/mp4 и други медийни MIME типове чрез нов помощник resolveAudioContentType(). Преди това качването на .mp4 файлове постоянно връщаше „Няма открита реч“, защото Deepgram получаваше Content-Type: video/mp4. -fix(transcription): Добавено е detect_language=true към заявките на Deepgram — автоматично разпознава аудио езика (португалски, испански и т.н.) вместо английски по подразбиране. Коригира неанглийски транскрипции, връщащи празни или ненужни резултати. -fix(transcription): Добавено е punctuate=true към заявките на Deepgram за по-висококачествен транскрипционен изход с правилна пунктуация. -fix(tts): показване на грешка [object Object] в отговорите на Text-to-Speech, коригирано както в audioSpeech.ts, така и в audioTranscription.ts. Функцията upstreamErrorResponse() вече извлича правилно вложени низови съобщения от доставчици като ElevenLabs, които връщат { грешка: { съобщение: "...", status_code: 401 } } вместо плосък низ за грешка.### 🧪 Tests

  • Тестов пакет:821 теста, 0 неуспеха(непроменени)### Triaged Issues

-#508— Регресия на формат на извикване на инструмента: заявени прокси регистрационни файлове и информация за веригата на доставчика (needs-info) -#510— Windows CLI път за проверка на състоянието: поискана информация за версията на обвивката/възела (needs-info) -#485— Извиквания на инструмента Kiro MCP: затворени като външен проблем с Kiro (не OmniRoute) -#442— Крайна точка на Baseten /models: затворено (документирано ръчно решение) -#464— API за предоставяне на ключове: потвърдено като елемент от пътната карта---

[2.9.1] — 2026-03-21

Спринт: Коригиране на загубата на данни на SSE omniModel, съвместимост на модела на сливане на протокол.### Bug Fixes

-#511— Критично: Етикетът <omniModel> беше изпратен след finish_reason:stop в SSE потоци, причинявайки загуба на данни. Етикетът вече се инжектира в първата непразна част от съдържанието, гарантирайки доставка, преди SDK да затвори връзката.### Merged PRs

-PR #512(@zhangqiang8vip): Съвместимост на модел на протокол — normalizeToolCallId и preserveOpenAIDeveloperRole вече могат да бъдат конфигурирани за клиентски протокол (OpenAI, Claude, Responses API). Ново поле compatByProtocol в конфигурацията на модела с Zod валидиране.### Triaged Issues

-#510— Windows CLI healthcheck_failed: поискана информация за PATH/версия -#509— Turbopack Electron регресия: грешка в Next.js нагоре по веригата, документирани заобиколни решения -#508— черен екран на macOS: предложено заобиколно решение --disable-gpu---

[2.9.0] — 2026-03-20

Спринт: Корекция на machineId за различни платформи, ограничения за скоростта на ключ за API, кеш на контекста на поточно предаване, Alibaba DashScope, анализ на търсенето, ZWS v5 и 8 приключени проблема.### New Features

-feat(search): раздел Анализ за търсене в /dashboard/analytics — разбивка на доставчика, процент на попадения в кеша, проследяване на разходите. Нов API: GET /api/v1/search/analytics (#feat/search-provider-routing) -feat(provider): Alibaba Cloud DashScope е добавен с персонализирано валидиране на пътя на крайната точка — конфигурируеми chatPath и modelsPath на възел (#feat/custom-endpoint-paths) -feat(api): Ограничения за брой заявки за ключ на API — колони max_requests_per_day и max_requests_per_minute с прилагане на плъзгащ се прозорец в паметта, връщащо HTTP 429 (#452) -feat(dev): ZWS v5 — корекция на изтичане на HMR (485 DB връзки → 1), памет 2,4GB → 195MB, globalThis единични елементи, корекция на предупреждение за Edge Runtime (@zhangqiang8vip)### 🐛 Bug Fixes

-fix(#506): Междуплатформен machineIdgetMachineIdRaw() пренаписан с try/catch каскада (Windows REG.exe → macOS ioreg → четене на Linux файл → име на хост → os.hostname()). Елиминира разклоняването на process.platform, което Next.js bundler елиминира мъртъв код, коригирайки 'head' не се разпознава в Windows. Също така коригира #466. -fix(#493): Персонализирано именуване на модела на доставчика — премахнато е премахването на неправилни префикси в DefaultExecutor.transformRequest(), което обезобразява идентификаторите на модели с обхват на организация като zai-org/GLM-5-FP8. -fix(#490): Поточно предаване + защита на кеша на контекста — TransformStream прихваща SSE, за да инжектира тага <omniModel> преди маркера [DONE], като активира защитата на кеша на контекста за поточно предаване на отговори. -fix(#458): Валидиране на комбинирана схема — полетата system_message, tool_filter_regex, context_cache_protection вече преминават валидиране на Zod при запазване. -fix(#487): Почистване на KIRO MITM карта — премахнат ZWS_README, генериран AntigravityToolCard за използване на динамични метаданни на инструмента.### 🧪 Tests

  • Добавени единични тестове за филтриране на инструменти в антропичен формат (PR #397) — 8 регресионни теста за tool.name без обвивка .function
  • Набор от тестове:821 теста, 0 неуспеха(от 813)### 📋 Issues Closed (8)

-#506— Windows machineId head не е разпознат (коригиран) -#493— Наименуване на потребителски модел на доставчик (коригирано) -#490— Кеш на контекста на поточно предаване (коригиран) -#452— Ограничения на заявките за ключ на API (въведени) -#466— Грешка при влизане в Windows (същата основна причина като #506) -#504— MITM неактивен (очаквано поведение) -#462— Gemini CLI PSA (решено) -#434— Срив на приложението Electron (дубликат на #402)## [2.8.9] — 2026-03-20

Спринт: Обединяване на PR на общността, коригиране на KIRO MITM карта, актуализации на зависимости.### Merged PRs

-PR #498(@Sajid11194): Коригиране на срив на ID на Windows машина (undefined\REG.exe). Заменя node-machine-id със заявки за собствен регистър на OS.Затваря #486. -PR #497(@zhangqiang8vip): Коригиране на течове на HMR ресурси в режим за разработка — 485 изтекли DB връзки → 1, памет 2,4 GB → 195 MB. globalThis сингълтони, корекция на предупреждение за Edge Runtime, стабилност при тестване на Windows. (+1168/-338 в 22 файла) -PRs #499-503(Dependabot): Актуализации на GitHub Actions — docker/build-push-action@7, actions/checkout@6, peter-evans/dockerhub-description@5, docker/setup-qemu-action@4, docker/login-action@4.### Bug Fixes

-#505— Картата KIRO MITM вече показва специфични за инструмента инструкции (api.anthropic.com) вместо специфичен за Antigravity текст. -#504— Отговорено с UX пояснение (MITM „Неактивен“ е очаквано поведение, когато проксито не работи).---

[2.8.8] — 2026-03-20

Спринт: Коригирайте срива при партиден тест на OAuth, добавете бутона „Тествай всички“ към отделните страници на доставчика.### Bug Fixes

-Срив на партиден тест на OAuth(ERR_CONNECTION_REFUSED): Заменен последователен for-loop с ограничение за паралелност от 5 връзки + 30 секунди изчакване на връзка чрез Promise.race() + Promise.allSettled(). Предотвратява срив на сървъра при тестване на големи групи доставчици на OAuth (~30+ връзки).### Функции

-Бутон „Тествай всички“ на страниците на доставчика: Страниците на отделни доставчици (напр. /providers/codex) вече показват бутон „Тествай всички“ в заглавката на връзките, когато има 2+ връзки. Използва POST /api/providers/test-batch с {mode: "provider", providerId}. Резултатите се показват в модален режим с обобщение за преминаване/неуспех и диагностика за всяка връзка.---

[2.8.7] — 2026-03-20

Спринт: Обединяване на PR #495 (отпадане на Bottleneck 429), корекция #496 (персонализирани доставчици на вграждане), функции за сортиране.### Bug Fixes

-Bottleneck 429 безкрайно чакане(PR #495 от @xandr0s): На 429, limiter.stop({ dropWaitingJobs: true }) незабавно проваля всички заявки на опашка, така че повикващите нагоре по веригата могат да задействат резервен вариант. Limiter се изтрива от картата, така че следващата заявка създава нов екземпляр. -Неразрешими модели за персонализирано вграждане(#496): POST /v1/embeddings вече разрешава потребителски модели за вграждане от ВСИЧКИ provider_nodes (не само localhost). Активира модели като google/gemini-embedding-001, добавени чрез таблото за управление.### Issues Responded

-#452— Ограничения за броя на заявките за API ключ (потвърдено, в пътна карта) -#464— Автоматично издаване на API ключове с ограничения за доставчик/акаунт (има нужда от повече подробности) -#488— Автоматично актуализиране на списъци с модели (потвърдено, на пътна карта) -#496— Персонализирана резолюция на доставчика на вграждане (коригирана)---

[2.8.6] — 2026-03-20

Спринт: Обединяване на PR #494 (корекция на ролята на MiniMax), коригиране на таблото за управление на KIRO MITM, сортиране на 8 проблема.### Функции

-MiniMax разработчик→корекция на системна роля(PR #494 от @zhangqiang8vip): Превключване на preserveDeveloperRole за всеки модел. Добавя потребителски интерфейс „Съвместимост“ в страницата на доставчиците. Коригира 422 „грешка в параметъра на ролята“ за MiniMax и подобни шлюзове. -roleNormalizer: normalizeDeveloperRole() вече приема параметър preserveDeveloperRole с поведение в три състояния (undefined=keep, true=keep, false=convert). -DB: Нови getModelPreserveOpenAIDeveloperRole() и mergeModelCompatOverride() в models.ts.### Bug Fixes

-Табло за управление на KIRO MITM(#481/#487): CLIToolsPageClient сега насочва всеки инструмент configType: "mitm" към AntigravityToolCard (контроли за стартиране/спиране на MITM). Преди само Antigravity беше твърдо кодирана. -AntigravityToolCard generic: Използва tool.image, tool.description, tool.id вместо твърдо кодирани стойности на Antigravity. Предпазва от липсващи defaultModels.### Cleanup

  • Премахнат ZWS_README_V2.md (документи само за разработка от PR #494).### Issues Triaged (8)

-#487— Затворен (KIRO MITM е коригиран в тази версия) -#486— информация за нуждите (проблем с Windows REG.exe PATH) -#489— информация за нуждите (Antigravity projectId липсва, необходимо е повторно свързване с OAuth) -#492— информация за нуждите (липсва app/server.js на неправилно управляван възел) -#490— Потвърдено (поточно предаване + блокиране на контекстния кеш, планирана корекция) -#491— Потвърдено (несъответствие на състоянието на удостоверяване на Codex) -#493— Потвърдено (префикс на името на модела на модален доставчик, предоставено заобиколно решение) -#488— Натрупване на заявки за функции (списъци с модели за автоматично актуализиране)---

[2.8.5] — 2026-03-19

Спринт: Коригиране на зомби SSE потоци, първи ход на контекстния кеш, KIRO MITM и сортиране на 5 външни проблеми.### Bug Fixes

-Зомби SSE потоци(#473): Намаляване на STREAM_IDLE_TIMEOUT_MS от 300s → 120s за по-бързо комбо резервно връщане, когато доставчиците висят по средата на потока. Може да се конфигурира чрез env var. -Context Cache Tag(#474): Коригирайте injectModelTag() за обработка на заявки за първи ход (без помощни съобщения) — защитата на контекстния кеш вече работи от първия отговор. -KIRO MITM(#481): Променете KIRO configType от guidemitm, така че таблото за управление да изобразява MITM Start/Stop контроли. -E2E Test(CI): Коригирайте providers-bailian-coding-plan.spec.ts — отхвърлете съществуващото модално наслагване, преди да щракнете върху бутона Добавяне на API ключ.### Closed Issues

  • #473 — Zombie SSE потоците заобикалят комбо резервния вариант
  • #474 — Липсва етикет <omniModel> на контекстния кеш при първо завъртане
  • #481 — MITM за KIRO не може да се активира от таблото за управление
  • #468 — Gemini CLI отдалечен сървър (заменен от #462 оттегляне)
  • #438 — Клод не може да записва файлове (проблем с външен CLI)
  • #439 — AppImage не работи (документирано решение на libfuse2)
  • #402 — ARM64 DMG "повреден" (документирано xattr -cr решение)
  • #460 — CLI не може да се изпълнява на Windows (документирана корекция на PATH)---

[2.8.4] — 2026-03-19

Sprint: Отмяна на Gemini CLI, корекция на i18n за VM ръководство, корекция на сигурността на dependabot, разширяване на схемата на доставчика.### Функции

-Отмяна на Gemini CLI(#462): Маркирайте доставчика на gemini-cli като отхвърлен с предупреждение — Google ограничава използването на OAuth от трети страни от март 2026 г. -Схема на доставчика(#462): Разширете валидирането на Zod с незадължителни полета deprecated, deprecationReason, hasFree, freeNote, authHint, apiHint### Bug Fixes

-VM Guide i18n(#471): Добавяне на VM_DEPLOYMENT_GUIDE.md към конвейера за превод на i18n, повторно генериране на всички 30 локални превода от английски източник (бяха заседнали на португалски)### Сигурност

-deps: Bump flatted 3.3.3 → 3.4.2 — поправя CWE-1321 прототипно замърсяване (#484, @dependabot)### Closed Issues

  • #472 — Регресия на псевдонимите на модела (коригирана във v2.8.2)

  • #471 — Преводите на ръководството за VM са повредени

  • #483 — Завършващо data: null след [DONE] (коригирано във v2.8.3)### Merged PRs

  • #484 — deps: изравняване от 3.3.3 на 3.4.2 (@dependabot)---

[2.8.3] — 2026-03-19

Спринт: чешки i18n, корекция на SSE протокол, превод на ръководство за VM.### Функции

-Чешки език(#482): Пълен чешки (cs) i18n — 22 документа, 2606 UI низа, актуализации за превключване на език (@zen0bit) -Ръководство за внедряване на VM: Преведено от португалски на английски като изходен документ (@zen0bit)### Bug Fixes

-SSE Protocol(#483): Спрете да изпращате крайни data: null след [DONE] сигнал — коригира AI_TypeValidationError в стриктни AI SDK клиенти (Zod-базирани валидатори)### Merged PRs

  • #482 — Добавяне на чешки език + Коригиране на VM_DEPLOYMENT_GUIDE.md английски източник (@zen0bit)---

[2.8.2] — 2026-03-19

Спринт: 2 обединени PR, коригиране на маршрута на псевдоними на модела, експортиране на регистрационни файлове и сортиране на проблеми.### Функции

-Експортиране на регистрационни файлове: Нов бутон за експортиране на /dashboard/logs с падащо меню за времеви диапазон (1h, 6h, 12h, 24h). Изтегля JSON на регистрационни файлове на заявки/прокси/обаждания чрез /api/logs/export API (#user-request)### Bug Fixes

-Маршрутизиране на псевдонимите на модела(#472): Настройки → Псевдонимите на модела вече засягат правилно маршрутизирането на доставчика, а не само откриването на формат. Преди това изходът на resolveModelAlias() се използваше само за getModelTargetFormat(), но оригиналният ID на модела беше изпратен на доставчика -Използване на поток за промиване(#480): Данните за използване от последното SSE събитие в буфера вече се извличат правилно по време на промиване на поток (обединени от @prakersh)### Merged PRs

  • #480 — Извличане на използването от оставащия буфер в манипулатора за промиване (@prakersh)
  • #479 — Добавяне на липсващи записи за ценообразуване на Codex 5.3/5.4 и Anthropic модел (@prakersh)---

[2.8.1] — 2026-03-19

Спринт: Пет PR-а на общността — корекции на регистъра на обажданията за поточно предаване, съвместимост с Kiro, анализ на кеш токени, превод на китайски и конфигурируеми идентификатори на обаждания с инструменти.### Функции

-feat(logs): Съдържанието на отговора на регистъра на обажданията вече се натрупва правилно от необработени части на доставчика (OpenAI/Claude/Gemini) преди превод, коригирайки празните полезни товари на отговора в режим на поточно предаване (#470, @zhangqiang8vip) -feat(providers): Нормализиране на идентификатора на повикване на инструмент с 9 символа за всеки модел (в стил Mistral) — само модели с активирана опция получават съкратени идентификатори (#470) -feat(api): Key PATCH API е разширен, за да поддържа полета allowedConnections, name, autoResolve, isActive и accessSchedule (#470) -feat(dashboard): Оформление за първи отговор в потребителския интерфейс с детайли на регистрационния файл на заявката (#470) -feat(i18n): Подобрен китайски (zh-CN) превод — пълен повторен превод (#475, @only4copilot)### 🐛 Bug Fixes

-fix(kiro): Премахване на инжектирано поле model от тялото на заявката — Kiro API отхвърля неизвестни полета от най-високо ниво (#478, @prakersh) -fix(usage): Включете жетони за четене на кеша + токени за създаване на кеш в сумите за въвеждане на хронологията на използване за точни анализи (#477, @prakersh) -fix(callLogs): Поддържа полета за използване на формат Claude (input_tokens/output_tokens) заедно с OpenAI формат, включва всички варианти на кеш токени (#476, @prakersh)---

[2.8.0] — 2026-03-19

Sprint: Доставчик на Bailian Coding Plan с редактируеми основни URL адреси, плюс принос на общността за Alibaba Cloud и Kimi Coding.### Функции

-feat(providers): Добавен план за кодиране на Bailian (bailian-coding-plan) — Alibaba Model Studio с API, съвместим с Anthropic. Статичен каталог от 8 модела, включително Qwen3.5 Plus, Qwen3 Coder, MiniMax M2.5, GLM 5 и Kimi K2.5. Включва персонализирано валидиране на удостоверяване (400=валидно, 401/403=невалидно) (#467, @Mind-Dragon) -feat(admin): Редактируем URL адрес по подразбиране в потоците за създаване/редактиране на администратора на доставчика — потребителите могат да конфигурират персонализирани базови URL адреси за всяка връзка. Съхраняван в „providerSpecificData.baseUrl“ с валидиране на Zod схема, отхвърлящо не-http(s) схеми (#467)### 🧪 Tests

  • Добавени са 30+ модулни теста и 2 e2e сценария за доставчик на план за кодиране на Bailian, обхващащ валидиране на удостоверяване, втвърдяване на схемата, поведение на ниво маршрут и интеграция на различни слоеве---

[2.7.10] — 2026-03-19

Sprint: Два нови доставчици, предоставени от общността (Alibaba Cloud Coding, Kimi Coding API-key) и Docker pino fix.### Функции

-feat(providers): Добавена поддръжка на Alibaba Cloud Coding Plan с две OpenAI-съвместими крайни точки — alicode (Китай) и alicode-intl (международен), всеки с 8 модела (#465, @dtk1985) -feat(providers): Добавен е специален път на доставчика kimi-coding-apikey — достъпът до Kimi Coding, базиран на API ключ, вече не е принудителен чрез OAuth-само маршрут kimi-coding. Включва регистър, константи, API за модели, конфигурация и тест за валидиране (#463, @Mind-Dragon)### 🐛 Bug Fixes

-fix(docker): Добавена липсваща зависимост split2 към изображението на Docker — pino-abstract-transport го изисква по време на изпълнение, но не се копира в самостоятелния контейнер, причинявайки сривове Не може да се намери модул 'split2' (#459)---

[2.7.9] — 2026-03-18

Спринт: Преминаването на подпътеката на отговорите на Codex се поддържа естествено, сривът на Windows MITM е коригиран и схемите на Combos агент са коригирани.### Функции

-feat(codex): Преминаване на подпътеката на естествените отговори за Codex — нативно маршрутизира POST /v1/responses/compact към Codex нагоре по веригата, поддържайки съвместимост с Claude Code без премахване на суфикса /compact (#457)### 🐛 Bug Fixes

-fix(combos): Схемите на Zod (updateComboSchema и createComboSchema) вече включват system_message, tool_filter_regex и context_cache_protection. Коригира грешка, при която специфичните за агент настройки, създадени чрез таблото за управление, бяха тихо отхвърлени от слоя за валидиране на бекенда (#458) -fix(mitm): Коригиран срив на профила на Kiro MITM в Windows — node-machine-id се провали поради липсващ REG.exe env, а резервният вариант хвърли фатална грешка crypto is not defined. Резервният вариант вече безопасно и правилно импортира крипто (#456)---

[2.7.8] — 2026-03-18

Спринт: Грешка при спестяване на бюджет + потребителски интерфейс с функции на комбо агент + корекция на сигурността на етикета omniModel.### 🐛 Bug Fixes

-fix(budget): "Save Limits" вече не връща 422 — warningThreshold вече се изпраща правилно като дроб (01) вместо процент (0100) (#451) -fix(combos): Вътрешният таг на <omniModel> вече е премахнат преди препращане на заявки към доставчици, предотвратявайки прекъсвания на кеш сесии (#454)### Функции

-feat(combos): Секцията с функции на агента е добавена към мода за създаване/редактиране на комбо — показване на system_message override, tool_filter_regex и context_cache_protection директно от таблото за управление (#454)---

[2.7.7] — 2026-03-18

Спринт: Срив на Docker pino, корекция на работния отговор на Codex CLI, синхронизиране на заключване на пакет.### 🐛 Bug Fixes

-fix(docker): pino-abstract-transport и pino-pretty вече изрично копирани в етапа на изпълнение на Docker — Самостоятелното проследяване на Next.js пропуска тези peer deps, причинявайки Cannot find module pino-abstract-transport срив при стартиране (#449) -fix(responses): Премахване на initTranslators() от маршрута /v1/responses — сриваше Next.js работник с работникът е излязъл uncaughtException на Codex CLI заявки (#450)### 🔧 Maintenance

-chore(deps): package-lock.json вече се ангажира при всяка грешка на версията, за да се гарантира, че Docker npm ci използва точни версии на зависимости---

[2.7.5] — 2026-03-18

Спринт: Подобрения на UX и корекция на Windows CLI проверка на състоянието.### 🐛 Bug Fixes

-fix(ux): Показване на подсказка за парола по подразбиране на страницата за вход — новите потребители вече виждат „Парола по подразбиране: 123456“ под въвеждането на парола (#437) -fix(cli): Claude CLI и други инструменти, инсталирани на npm, вече са правилно открити като работещи в Windows — spawn използва shell:true, за да разреши .cmd обвивки чрез PATHEXT (#447)---

[2.7.4] — 2026-03-18

Sprint: Табло за инструменти за търсене, корекции на i18n, ограничения на Copilot, корекция за валидиране на Serper.### Функции

-feat(search): Добавяне на Playground за търсене (10-та крайна точка), страница с инструменти за търсене със Сравняване на доставчици/тръбопровод за прекласиране/хронология на търсенето, маршрутизиране на локално прекласиране, охрана на автентичността при API за търсене (#443 от @Regis-RCR)

  • Нов маршрут: /dashboard/search-tools
  • Запис в страничната лента под секцията за отстраняване на грешки
  • GET /api/search/providers и GET /api/search/stats с защита на удостоверяването
  • Местно маршрутизиране на доставчик_възли за /v1/rerank
  • 30+ i18n ключа в пространството на имената за търсене### 🐛 Bug Fixes

-fix(search): Коригиране на нормализатора на Brave news (връщаше 0 резултата), налагане на съкращаване на max_results след нормализиране, коригиране на URL за извличане на страница на крайни точки (#443 от @Regis-RCR) -fix(analytics): Локализирайте етикетите за ден/дата на анализа — заменете твърдо кодираните португалски низове с Intl.DateTimeFormat(locale) (#444 от @hijak) -fix(copilot): Правилно показване на типа акаунт на GitHub Copilot, филтриране на подвеждащи редове за неограничени квоти от таблото за управление на ограниченията (#445 от @hijak) -fix(providers): Спрете да отхвърляте валидни Serper API ключове — третирайте не-4xx отговорите като валидно удостоверяване (#446 от @hijak)---

[2.7.3] — 2026-03-18

Спринт: Резервна корекция на Codex Direct API квота.### 🐛 Bug Fixes

-fix(codex): Блокиране на седмично изчерпани акаунти в директен резервен API (#440)

  • resolveQuotaWindow() съвпадение на префикса: "weekly" вече съвпада с "weekly (7d)" кеш ключове
  • applyCodexWindowPolicy() налага useWeekly/use5h превключва правилно
  • 4 нови регресионни теста (общо 766)---

[2.7.2] — 2026-03-18

Спринт: Корекции на контраста на потребителския интерфейс в светъл режим.### 🐛 Bug Fixes

-fix(logs): Коригиране на контраста на светъл режим в бутоните за филтър на регистрационните файлове на заявките и комбинираната значка (#378)

  • Бутоните за филтър за грешка/успех/комбинирани вече могат да се четат в лек режим
  • Значката за комбиниран ред използва по-силно виолетово в светъл режим---

[2.7.1] — 2026-03-17

Sprint: Унифицирано маршрутизиране на уеб търсене (POST /v1/search) с 5 доставчика + корекции на сигурността Next.js 16.1.7 (6 CVE).### New Features

-feat(search): Унифицирано маршрутизиране на уеб търсене — POST /v1/search с 5 доставчика (Serper, Brave, Perplexity, Exa, Tavily)

  • Автоматично прехвърляне на грешки между доставчици, 6500+ безплатни търсения/месец
  • Кеш в паметта с обединяване на заявки (конфигурируем TTL)
  • Табло за управление: раздел Анализ на търсенето в /dashboard/analytics с разбивка на доставчика, честота на попадения в кеша, проследяване на разходите
  • Нов API: GET /api/v1/search/analytics за статистика на заявките за търсене
  • Миграция на DB: колона request_type в call_logs за проследяване на заявки без чат
  • Валидиране на Zod (v1SearchSchema), удостоверено, цената се записва чрез recordCost()### Сигурност

-deps: Next.js 16.1.6 → 16.1.7 — коригира 6 CVE: -Критично: CVE-2026-29057 (контрабанда на HTTP заявки чрез http-прокси) -Високо: CVE-2026-27977, CVE-2026-27978 (WebSocket + действия на сървъра) -Среден: CVE-2026-27979, CVE-2026-27980, CVE-2026-jcc7### 📁 New Files

Файл Цел
open-sse/handlers/search.ts Манипулатор за търсене с маршрутизиране на 5 доставчика
open-sse/config/searchRegistry.ts Регистър на доставчика (авторизация, цена, квота, TTL)
open-sse/services/searchCache.ts Кеш в паметта с обединяване на заявки
src/app/api/v1/search/route.ts Next.js маршрут (POST + GET)
src/app/api/v1/search/analytics/route.ts API за статистика за търсене
src/app/(табло за управление)/табло за управление/analytics/SearchAnalyticsTab.tsx Табло за управление на Анализ
src/lib/db/migrations/007_search_request_type.sql DB миграция
tests/unit/search-registry.test.mjs 277 реда модулни тестове ---

[2.7.0] — 2026-03-17

Sprint: Вдъхновени от ClawRouter функции — флаг за toolCalling, многоезично откриване на намерения, резервен вариант, управляван от бенчмарк, дедупликация на заявки, pluggable RouterStrategy, Grok-4 Fast + GLM-5 + MiniMax M2.5 + Kimi K2.5 ценообразуване.### New Models & Pricing

-feat(pricing): xAI Grok-4 Fast — $0,20/$0,50 за 1M токени, 1143ms p50 латентност, поддържа се извикване на инструмент -feat(pricing): xAI Grok-4 (стандартен) — $0,20/$1,50 за 1M токени, разсъждаващ флагман -feat(pricing): GLM-5 чрез Z.AI — $0.5/1M, 128K изходен контекст -feat(pricing): MiniMax M2.5 — $0.30/1M input, разсъждения + агентски задачи -feat(pricing): DeepSeek V3.2 — актуализирана цена $0,27/$1,10 за 1M -feat(pricing): Kimi K2.5 чрез Moonshot API — директен достъп до Moonshot API -feat(providers): добавен Z.AI доставчик (псевдоним „zai“) — семейство GLM-5 с 128K изход### 🧠 Routing Intelligence

-feat(registry): флаг toolCalling за модел в регистъра на доставчика — комбинациите вече могат да предпочитат/изискват модели с възможност за извикване на инструменти -feat(scoring): Откриване на многоезично намерение за AutoCombo точкуване — PT/ZH/ES/AR скрипт/езикови модели влияят върху избора на модел за контекст на заявка -feat(fallback): Резервни вериги, управлявани от бенчмарк — реални данни за латентност (p50 от comboMetrics), използвани за динамично пренареждане на приоритета на резервния вариант -feat(dedup): Заявка за дедупликация чрез content-hash — 5-секунден прозорец за идемпотентност предотвратява дублиращи се обаждания на доставчика от повторен опит на клиенти -feat(router): Pluggable RouterStrategy интерфейс в autoCombo/routerStrategy.ts — персонализирана логика за маршрутизиране може да бъде инжектирана без модифициране на ядрото### 🔧 MCP Server Improvements

-feat(mcp): 2 нови усъвършенствани схеми на инструменти: omniroute_get_provider_metrics (p50/p95/p99 на доставчик) и omniroute_explain_route (обяснение на решението за маршрутизиране) -feat(mcp): обхватите за удостоверяване на MCP инструмента са актуализирани — добавен е обхватът на metrics:read за инструментите за показатели на доставчика -feat(mcp): omniroute_best_combo_for_task вече приема параметър languageHint за многоезично маршрутизиране### 📊 Observability

-feat(metrics): comboMetrics.ts разширен с проследяване на процента на латентност в реално време за доставчик/акаунт -feat(health): Health API (/api/monitoring/health) вече връща полета p50Latency и errorRate за всеки доставчик -feat(usage): Миграция на историята на използването за проследяване на латентността на модела### 🗄️ DB Migrations

-feat(migrations): Нова колона latency_p50 в таблицата combo_metrics — нулиране, безопасно за съществуващи потребители### 🐛 Bug Fixes / Closures

-close(#411): по-добра-sqlite3 хеширана разделителна способност на модула в Windows — коригирано във v2.6.10 (f02c5b5) -close(#409): Завършванията на чат GitHub Copilot се провалят с Claude модели, когато са прикачени файлове — коригирано във v2.6.9 (838f1d6) -close(#405): Дубликат на #411 — решен## [2.6.10] — 2026-03-17

Поправка за Windows: изтегляне на предварително изграден по-добър sqlite3 без node-gyp/Python/MSVC (#426).### 🐛 Bug Fixes

-fix(install/#426): В Windows, npm install -g omniroute се проваляше с better_sqlite3.node не е валидно Win32 приложение, тъй като комплектът нативния двоичен файл беше компилиран за Linux. ДобавяСтратегия 1.5към scripts/postinstall.mjs: използва @mapbox/node-pre-gyp install --fallback-to-build=false (включен в better-sqlite3), за да изтегли правилния предварително изграден двоичен файл за текущата OS/arch, без да са необходими инструменти за изграждане (без node-gyp, без Python, без MSVC). Връща се към npm rebuild само ако изтеглянето е неуспешно. Добавя специфични за платформата съобщения за грешка с ясни инструкции за ръчно коригиране.---

[2.6.9] — 2026-03-17

Корекции на CI (t11 за всякакъв бюджет), корекция на грешка #409 (прикачени файлове чрез Copilot+Claude), корекция на работния процес на издание.### 🐛 Bug Fixes

-fix(ci): Премахнете думата "any" от коментари в openai-responses.ts и chatCore.ts, които не са преминали проверката на t11 any бюджет (фалшиво положително от коментари за преброяване на regex) -fix(chatCore): Нормализиране на неподдържаните типове части на съдържанието преди препращане към доставчици (#409 — Курсорът изпраща {type:"file"}, когато .md файлове са прикачени; Copilot и други доставчици, съвместими с OpenAI, отхвърлят с "type трябва да бъде или 'image_url', или 'text'"; корекцията преобразува file/document блокове в text и изпуска неизвестни типове)### 🔧 Workflow

-chore(generate-release): Добавяне на ПРАВИЛО ЗА ATOMIC COMMIT — промяна на версията (npm версия patch) ТРЯБВА да се случи преди ангажиране на файлове с функции, за да се гарантира, че етикетът винаги сочи към ангажиране, съдържащо всички промени на версията заедно---

[2.6.8] — 2026-03-17

Спринт: Комбо като агент (системна подкана + филтър за инструменти), защита на контекстно кеширане, автоматично актуализиране, подробни регистрационни файлове, MITM Kiro IDE.### 🗄️ DB Migrations (zero-breaking — safe for existing users)

-005_combo_agent_fields.sql: ALTER TABLE combos ADD COLUMN system_message TEXT DEFAULT NULL, tool_filter_regex TEXT DEFAULT NULL, context_cache_protection INTEGER DEFAULT 0 -006_detailed_request_logs.sql: Нова таблица request_detail_logs със задействане на ринг-буфер с 500 записа, включване чрез превключване на настройките### Функции

-feat(combo): Замяна на системно съобщение за комбо (#399 — полето system_message замества или инжектира системна подкана преди препращане към доставчика) -feat(combo): Tool Filter Regex за Combo (#399 — tool_filter_regex запазва само инструменти, съответстващи на модела; поддържа OpenAI + Anthropic формати) -feat(combo): Защита от кеширане на контекста (#401 — context_cache_protection маркира отговорите с <omniModel>доставчик/модел</omniModel> и закрепва модела за непрекъснатост на сесията) -feat(settings): Автоматично обновяване чрез настройки (#320 — GET /api/system/version + POST /api/system/update — проверява npm регистъра и обновява във фонов режим с рестартиране на pm2) -feat(logs): Подробни регистрационни файлове на заявки (#378 — улавя пълните тела на конвейера на 4 етапа: клиентска заявка, преведена заявка, отговор на доставчика, отговор на клиента — превключване за включване, 64KB изрязване, 500-влизащ пръстен буфер) -feat(mitm): MITM Kiro IDE профил (#336 — src/mitm/targets/kiro.ts е насочен към api.anthropic.com, използва повторно съществуващата MITM инфраструктура)---

[2.6.7] — 2026-03-17

Спринт: подобрения на SSE, локални разширения provider_nodes, прокси регистър, корекции на Claude passthrough.### Функции

-feat(health): Проверка на изправността на фона за локални provider_nodes с експоненциално забавяне (30s→300s) и Promise.allSettled за избягване на блокиране (#423, @Regis-RCR) -feat(embeddings): Насочете /v1/embeddings към локални provider_nodesbuildDynamicEmbeddingProvider() с валидиране на име на хост (#422, @Regis-RCR) -feat(audio): Насочете TTS/STT към локални provider_nodesbuildDynamicAudioProvider() със SSRF защита (#416, @Regis-RCR) -feat(proxy): Прокси регистър, API за управление и обобщаване на лимита на квотата (#429, @Regis-RCR)### 🐛 Bug Fixes

-fix(sse): Премахване на специфични за Claude полета (metadata, anthropic_version), когато целта е OpenAI-compat (#421, @prakersh) -fix(sse): Извлечете използването на Claude SSE (input_tokens, output_tokens, кеш токени) в режим на преминаващ поток (#420, @prakersh) -fix(sse): Генериране на резервен call_id за извиквания на инструменти с липсващи/празни идентификатори (#419, @prakersh) -fix(sse): преминаване от Claude-to-Claude — предното тяло е напълно недокоснато, без повторен превод (#418, @prakersh) -fix(sse): Филтрирайте осиротели tool_result елементи след уплътняване на контекста на Claude Code, за да избегнете 400 грешки (#417, @prakersh) -fix(sse): Пропуснете извикванията на инструмента за празни имена в преводача на API за отговори, за да предотвратите безкрайните цикли на placeholder_tool (#415, @prakersh) -fix(sse): Премахване на празни текстови блокове преди превод (#427, @prakersh) -fix(api): Добавяне на refreshable: true към Claude OAuth тестова конфигурация (#428, @prakersh)### 📦 Dependencies

  • Премахване на vitest, @vitest/* и свързани devDependencies (#414, @dependabot)---

[2.6.6] — 2026-03-17

Актуална корекция: Съвместимост с Turbopack/Docker — премахнете протокола node: от всички импортирания src/.### 🐛 Bug Fixes

-fix(build): Премахнат е префиксът на протокола node: от инструкциите import в 17 файла под src/. Импортиранията на node:fs, node:path, node:url, node:os и т.н. причиниха Ecmascript файлът имаше грешка при компилации на Turbopack (Next.js 15 Docker) и при надстройки от по-стари глобални инсталации на npm. Засегнати файлове: migrationRunner.ts, core.ts, backup.ts, prompts.ts, dataPaths.ts и 12 други в src/app/api/ и src/lib/. -chore(workflow): Актуализиран generate-release.md, за да направизадължителнистъпки за синхронизиране на Docker Hub и разгръщане на двоен VPS във всяко издание.---

[2.6.5] — 2026-03-17

Спринт: филтриране на параметрите на модела на разсъжденията, корекция 404 на местен доставчик, доставчик на Kilo Gateway, неравности на зависимостта.### New Features

-feat(api): ДобавенKilo Gateway(api.kilo.ai) като нов доставчик на API ключове (псевдоним kg) — 335+ модела, 6 безплатни модела, 3 модела за автоматично маршрутизиране (kilo-auto/frontier, kilo-auto/balanced, kilo-auto/free). Преминаващи модели, поддържани чрез крайна точка /api/gateway/models. (PR #408 от @Regis-RCR)### 🐛 Bug Fixes

-fix(sse): Премахване на неподдържаните параметри за разсъждаващи модели (o1, o1-mini, o1-pro, o3, o3-mini). Моделите в семейството o1/o3 отхвърлят temperature, top_p, frequency_penalty, presence_penalty, logprobs, top_logprobs и n с HTTP 400. Параметрите вече се премахват в слоя chatCore преди препращане. Използва декларативно поле unsupportedParams за модел и предварително изчислена O(1) карта за търсене. (PR #412 от @Regis-RCR) -fix(sse): Локален доставчик 404 вече води до**заключване само за модел (5 секунди)**вместо заключване на ниво връзка (2 минути). Когато локален бекенд за изводи (Ollama, LM Studio, oMLX) върне 404 за неизвестен модел, връзката остава активна и другите модели продължават да работят незабавно. Също така поправя съществуващ бъг, при който model не беше предаден на markAccountUnavailable(). Местни доставчици, открити чрез име на хост (localhost, 127.0.0.1, ::1, разширяемо чрез LOCAL_HOSTNAMES env var). (PR #410 от @Regis-RCR)### 📦 Dependencies

  • better-sqlite3 12.6.2 → 12.8.0
  • undici 7.24.2 → 7.24.4
  • https-proxy-agent 7 → 8
  • агентна база 7 → 8---

[2.6.4] — 2026-03-17

🐛 Bug Fixes

-fix(providers): Премахнати несъществуващи имена на модели в 5 доставчика: -gemini / gemini-cli: премахнати gemini-3.1-pro/flash и gemini-3-*-preview (не съществуват в Google API v1beta); заменено с gemini-2.5-pro, gemini-2.5-flash, gemini-2.0-flash, gemini-1.5-pro/flash -antigravity: премахнати gemini-3.1-pro-high/low и gemini-3-flash (невалидни вътрешни псевдоними); заменени с реални 2.x модели -github (Copilot): премахнати gemini-3-flash-preview и gemini-3-pro-preview; заменен с gemini-2.5-flash -nvidia: коригирано nvidia/llama-3.3-70b-instructmeta/llama-3.3-70b-instruct (NVIDIA NIM използва пространство от имена meta/ за Meta модели); добавени nvidia/llama-3.1-70b-instruct и nvidia/llama-3.1-405b-instruct -fix(db/combo): Актуализиран free-stack комбо на отдалечена DB: премахнато qw/qwen3-coder-plus (изтекъл токен за опресняване), коригирано nvidia/llama-3.3-70b-instructnvidia/meta/llama-3.3-70b-instruct, коригирано gemini/gemini-3.1-flashgemini/gemini-2.5-flash, добавено if/deepseek-v3.2---

[2.6.3] — 2026-03-16

Спринт: zod/pino hash-strip, включен в конвейер за изграждане, добавен синтетичен доставчик, VPS PM2 път коригиран.### 🐛 Bug Fixes

-fix(build): Turbopack hash-strip вече работи по време накомпилиранеза ВСИЧКИ пакети — не само за better-sqlite3. Стъпка 5.6 в prepublish.mjs обхожда всеки .js в app/.next/server/ и премахва 16-значния шестнадесетичен суфикс от всеки хеширан require(). Коригира zod-dcb22c..., pino-... и т.н. MODULE_NOT_FOUND при глобални инсталации на npm. Затваря #398 -fix(deploy): PM2 и на двата VPS сочеше към остарели git-clone директории. Преконфигуриран на app/server.js в глобалния пакет npm. Актуализиран работен процес /deploy-vps за използване на npm pack + scp (npm регистърът отхвърля 299MB пакети).### Функции

-feat(provider): Синтетичен (synthetic.new) — фокусирано върху поверителността заключение, съвместимо с OpenAI. passthroughModels: true за динамичен каталог с модели HuggingFace. Първоначални модели: Kimi K2.5, MiniMax M2.5, GLM 4.7, DeepSeek V3.2. (PR #404 от @Regis-RCR)### 📋 Issues Closed

-close #398: npm хеш регресия — коригирано от хеш-лента по време на компилиране в prepublish -triage #324: Екранна снимка на грешка без стъпки — изисквани подробности за възпроизвеждане---

[2.6.2] — 2026-03-16

Спринт: хеширането на модула е напълно фиксирано, 2 PR са обединени (филтър за антропни инструменти + потребителски пътища на крайни точки), добавен доставчик на Alibaba Cloud DashScope, 3 остарели проблеми са затворени.### 🐛 Bug Fixes

-fix(build): Разширена хеш-лента externals на webpack за покриване на ВСИЧКИ serverExternalPackages, а не само better-sqlite3. Next.js 16 Turbopack хешира zod, pino и всеки друг външен сървърен пакет в имена като zod-dcb22c6336e0bc69, които не съществуват в node_modules по време на изпълнение. HASH_PATTERN regex catch-all сега премахва суфикса от 16 знака и се връща към името на основния пакет. Също така добавен NEXT_PRIVATE_BUILD_WORKER=0 в prepublish.mjs за подсилване на режима на webpack, плюс сканиране след компилация, което отчита всички останали хеширани реф. (#396, #398, PR #403) -fix(chat): Имената на инструменти в антропичен формат (tool.name без обвивка .function) бяха премахнати тихо от филтъра за празни имена, въведен в #346. LiteLLM проксира заявки с префикс anthropic/ във формат на API на Anthropic Messages, което кара всички инструменти да бъдат филтрирани и Anthropic да връща 400: tool_choice.any може да бъде посочен само при предоставяне на инструменти. Коригирано чрез връщане към „tool.name“, когато „tool.function.name“ отсъства. Добавени са 8 регресионни единични теста. (PR #397)### Функции

-feat(api): Персонализирани пътища на крайни точки за възли на доставчици, съвместими с OpenAI — конфигурирайте chatPath и modelsPath за възел (напр. /v4/chat/completions) в потребителския интерфейс на връзката на доставчика. Включва миграция на DB (003_provider_node_custom_paths.sql) и дезинфекция на пътя на URL (без преминаване на .., трябва да започва с /). (PR #400) -feat(provider): Alibaba Cloud DashScope е добавен като OpenAI-съвместим доставчик. Международна крайна точка: dashscope-intl.aliyuncs.com/compatible-mode/v1. 12 модела: qwen-max, qwen-plus, qwen-turbo, qwen3-coder-plus/flash, qwq-plus, qwq-32b, qwen3-32b, qwen3-235b-a22b. Удостоверяване: API ключ на носител.### 📋 Issues Closed

-close #323: Cline грешка при свързване [object Object] — коригирана във v2.3.7; инструктира потребителя да надстрои от v2.2.9 -close #337: Кредитно проследяване на Kiro — внедрено във v2.5.5 (#381); посочи потребителя към Табло → Използване -триаж #402: ARM64 macOS DMG повреден — поискана версия на macOS, точна грешка и препоръчано заобиколно решение xattr -d com.apple.quarantine---

[2.6.1] — 2026-03-15

Критична корекция при стартиране: глобалните инсталации на v2.6.0 npm се сринаха с грешка 500 поради грешка с хеширане на име на модул Turbopack/webpack в инструменталната кука Next.js 16.### 🐛 Bug Fixes

-fix(build): Принуждава better-sqlite3 винаги да се изисква от точното му име на пакет в пакета на сървъра на webpack. Next.js 16 компилира инструменталната кука в отделна част и излъчва require('better-sqlite3-<hash>') — хеширано име на модул, което не съществува в node_modules — въпреки че пакетът е посочен в serverExternalPackages. Добавена е изрична функция externals към конфигурацията на уебпакета на сървъра, така че пакетът винаги излъчва require('better-sqlite3'), разрешавайки стартирането 500 Internal Server Error при чисти глобални инсталации. (#394, PR #395)### 🔧 CI

-ci: Добавен workflow_dispatch към npm-publish.yml със защита на синхронизирането на версията за ръчни задействания (#392) -ci: Добавен workflow_dispatch към docker-publish.yml, актуализирани GitHub действия до най-новите версии (#392)---

[2.6.0] - 2026-03-15

Спринт за разрешаване на проблеми: поправени са 4 грешки, подобрен UX на журналите, добавено проследяване на кредита на Kiro.### 🐛 Bug Fixes

-fix(media): ComfyUI и SD WebUI вече не се показват в списъка с доставчици на медийната страница, когато не са конфигурирани — извлича /api/providers при монтиране и скрива локалните доставчици без връзки (#390) -fix(auth): Round-robin вече не избира повторно акаунти с ограничена скорост веднага след охлаждане — backoffLevel вече се използва като основен ключ за сортиране в ротацията на LRU (#340) -fix(oauth): Qoder (и други доставчици, които пренасочват към техния собствен потребителски интерфейс) вече не оставят модала OAuth заседнал в „Изчакване за упълномощаване“ — автоматичен преход на детектор при затворен изскачащ прозорец към режим на ръчно въвеждане на URL (#344) -fix(logs): Таблицата с регистрационни файлове на заявките вече може да се чете в светъл режим — значките за състояние, броят на токените и комбинираните тагове използват адаптивни цветови класове dark: (#378)### Функции

-feat(kiro): Кредитното проследяване на Kiro е добавено към инструмента за извличане на използване — заявки getUserCredits от крайна точка на AWS CodeWhisperer (#337)### 🛠 Chores

-chore(tests): Подравнени test:plan3, test:fixes, test:security, за да се използва същото средство за зареждане tsx/esm като npm test — елиминира фалшивите отрицателни резултати за разрешаване на модула при целеви изпълнения (PR #386)---

[2.5.9] - 2026-03-15

Корекция на родния пропуск на Codex + втвърдяване на валидирането на тялото на маршрута.### 🐛 Bug Fixes

-fix(codex): Запазване на естественото преминаване на Responses API за клиенти на Codex — избягва ненужни мутации на превода (PR #387) -fix(api): Валидирайте телата на заявките за маршрути за ценообразуване/синхронизиране и маршрутизиране на задачи — предотвратява сривове от неправилно формирани входове (PR #388) -fix(auth): JWT тайните се запазват при рестартирания чрез src/lib/db/secrets.ts — елиминира 401 грешки след рестартиране на pm2 (PR #388)---

[2.5.8] - 2026-03-15

Корекция на компилация: възстановяване на VPS свързаността, прекъсната от v2.5.7 непълно публикуване.### 🐛 Bug Fixes

-fix(build): scripts/prepublish.mjs все още използва остарял флаг --webpack, причинявайки неуспешна неуспешна самостоятелна компилация на Next.js — публикуването на npm е завършено без app/server.js, нарушавайки внедряването на VPS---

[2.5.7] - 2026-03-15

Корекции при обработка на грешки в медийната площадка.### 🐛 Bug Fixes

-fix(media): Транскрипцията „Изисква се API ключ“ фалшиво положителна, когато аудиото не съдържа реч (музика, тишина) — сега вместо това показва „Няма открита реч“ -fix(media): upstreamErrorResponse в audioTranscription.ts и audioSpeech.ts вече връща правилен JSON ({error:{message}}), позволявайки правилно откриване на грешки в идентификационните данни 401/403 в MediaPageClient -fix(media): parseApiError вече обработва полето err_msg на Deepgram и открива "api key" в съобщенията за грешка за точна класификация на грешките при идентификационните данни---

[2.5.6] - 2026-03-15

Критични корекции на сигурността/удостоверяването: Antigravity OAuth повреден + JWT сесиите са загубени след рестартиране.### 🐛 Bug Fixes

-fix(oauth) #384: Antigravity Google OAuth сега изпраща правилно client_secret към крайната точка на токена. Резервният вариант за ANTIGRAVITY_OAUTH_CLIENT_SECRET беше празен низ, който е фалшив — така че client_secret никога не е бил включен в заявката, причинявайки грешки "client_secret is missing" за всички потребители без персонализирана env var. Затваря #383. -fix(auth) #385: JWT_SECRET вече се запазва в SQLite (namespace='secrets') при първото поколение и се презарежда при следващи стартирания. Преди това се генерираше нова произволна тайна при всяко стартиране на процес, което правеше невалидни всички съществуващи бисквитки/сесии след всяко рестартиране или надграждане. Засяга както JWT_SECRET, така и API_KEY_SECRET. Затваря #382.---

[2.5.5] - 2026-03-15

Корекция на дедупиране на списък с модели, самостоятелна защита на изграждането на Electron и проследяване на кредити на Kiro.### 🐛 Bug Fixes

-fix(models) #380: GET /api/models вече включва псевдоними на доставчика при изграждане на филтъра за активен доставчик — моделите за claude (псевдоним cc) и github (псевдоним gh) винаги се показват независимо от това дали връзката е конфигурирана, защото ключовете PROVIDER_MODELS са псевдоними, но DB връзките са съхранявани под идентификатори на доставчик. Коригирано чрез разширяване на идентификатора на всеки активен доставчик, за да включва също неговия псевдоним чрез „PROVIDER_ID_TO_ALIAS“. Затваря #353. -fix(electron) #379: Нов scripts/prepare-electron-standalone.mjs поставя специален пакет /.next/electron-standalone преди пакетирането на Electron. Прекратява с ясна грешка, ако node_modules е символна връзка (electron-builder би изпратил зависимост по време на изпълнение на машината за изграждане). Дезинфекция на пътя между платформи чрез path.basename. От @kfiramar.### New Features

-feat(kiro) #381: Проследяване на кредитния баланс на Kiro — крайната точка за използване вече връща кредитни данни за акаунтите на Kiro чрез извикване на codewhisperer.us-east-1.amazonaws.com/getUserCredits (същата крайна точка, която Kiro IDE използва вътрешно). Връща оставащите кредити, общата сума, датата на подновяване и нивото на абонамента. Затваря #337.## [2.5.4] - 2026-03-15

Корекция при стартиране на Logger, корекция на сигурността при стартиране на влизане и подобрение на надеждността на dev HMR. Подсилена CI инфраструктура.### 🐛 Bug Fixes (PRs #374, #375, #376 by @kfiramar)

-fix(logger) #376: Възстановяване на пътя на pino транспортния регистратор — formatters.level, комбиниран с transport.targets, се отхвърля от pino. Конфигурациите, поддържани от транспорт, вече премахват инструмента за форматиране на ниво чрез getTransportCompatibleConfig(). Също така коригира картографирането на числово ниво в /api/logs/console: 30→info, 40→warn, 50→error (беше изместено с едно). -fix(login) #375: Страницата за вход вече стартира от публичната крайна точка /api/settings/require-login вместо защитената /api/settings. При защитени с парола настройки страницата за предварително удостоверяване получаваше 401 и ненужно се връщаше към безопасни настройки по подразбиране. Публичният маршрут вече връща всички метаданни за първоначално зареждане (requireLogin, hasPassword, setupComplete) с консервативен 200 резервен вариант при грешка. -fix(dev) #374: Добавяне на localhost и 127.0.0.1 към allowedDevOrigins в next.config.mjs — HMR websocket беше блокиран при достъп до приложението чрез обратен адрес, създавайки повтарящи се кръстосани предупреждения.### 🔧 CI & Infrastructure

-ESLint OOM fix: eslint.config.mjs сега игнорира vscode-extension/**, electron/**, docs/**, app/.next/** и clipr/** — ESLint се срива с JS heap OOM чрез сканиране на двоични петна на VS Code и компилиран буци. -Поправка на тест на единица: Премахнато остаряло ALTER TABLE provider_connections ADD COLUMN "group" от 2 тестови файла — колоната вече е част от основната схема (добавена в #373), причинявайки SQLITE_ERROR: дублирано име на колона при всяко изпълнение на CI. -Pre-commit hook: Добавен е npm run test:unit към .husky/pre-commit — модулните тестове вече блокират повредени комити, преди да достигнат CI.## [2.5.3] - 2026-03-14

Критични корекции на грешки: миграция на DB схема, зареждане при стартиране на env, изчистване на състоянието на грешка на доставчика и корекция на подсказка за i18n. Подобрения в качеството на кода върху всеки PR.### 🐛 Bug Fixes (PRs #369, #371, #372, #373 by @kfiramar)

-fix(db) #373: Добавяне на колона provider_connections.group към основната схема + миграция за запълване за съществуващи бази данни — колоната е използвана във всички заявки, но липсва в дефиницията на схемата -fix(i18n) #371: Замяна на несъществуващ ключ t("deleteConnection") със съществуващ ключ providers.delete — поправя MISSING_MESSAGE: providers.deleteConnection грешка по време на изпълнение на страницата с подробности за доставчика -fix(auth) #372: Изчистване на остарели метаданни за грешка (errorCode, lastErrorType, lastErrorSource) от акаунти на доставчик след истинско възстановяване — преди това възстановените акаунти продължаваха да се показват като неуспешни -fix(startup) #369: Унифициране на зареждането на env в npm run start, run-standalone.mjs и Electron за спазване на DATA_DIR/.env → ~/.omniroute/.env → ./.env приоритет — предотвратява генерирането на нов STORAGE_ENCRYPTION_KEY върху съществуваща криптирана база данни### 🔧 Code Quality

  • Документирани шаблони result.success срещу response?.ok в auth.ts (и двете преднамерени, вече са обяснени)
  • Нормализиран overridePath?.trim() в electron/main.js, за да съответства на bootstrap-env.mjs
  • Добавен коментар за поръчка на сливане preferredEnv при стартиране на Electron

Политика за квоти на акаунти в Codex с автоматично завъртане, бързо превключване на нива, gpt-5.4 модел и корекция на етикета за анализ.### New Features (PRs #366, #367, #368)

-Правила за квота на Codex (PR #366): Прозорецът за квота от 5 часа/седмично за акаунт се превключва в таблото за управление на доставчика. Акаунтите се пропускат автоматично, когато активираните прозорци достигнат прага от 90% и се допускат отново след „resetAt“. Включва quotaCache.ts с инструмент за получаване на състояние без странични ефекти. -Codex Fast Tier Toggle (PR #367): Табло → Настройки → Codex Service Tier. Превключвателят за изключване по подразбиране инжектира service_tier: "flex" само за заявки на Codex, намалявайки разходите ~80%. Пълен стек: UI раздел + API крайна точка + изпълнител + преводач + възстановяване при стартиране. -gpt-5.4 Model (PR #368): Добавя cx/gpt-5.4 и codex/gpt-5.4 към регистъра на моделите на Codex. Включен регресионен тест.### 🐛 Bug Fixes

-поправка #356: Графиките на анализ (Най-добър доставчик, по акаунт, разбивка на доставчика) вече показват четими за човека имена/етикети на доставчици вместо необработени вътрешни идентификатори за доставчици, съвместими с OpenAI.

Основно издание: стратегия за стриктно произволно маршрутизиране, контроли за достъп на API ключове, групи за свързване, синхронизиране на външно ценообразуване и критични корекции на грешки за мислещи модели, комбинирано тестване и валидиране на името на инструмента.### New Features (PRs #363 & #365)

-Стратегия за строго произволно маршрутизиране: тесте за разбъркване на Fisher-Yates с гаранция против повторение и сериализация на mutex за едновременни заявки. Независими тестета за комбо и за доставчик. -API Key Access Controls: allowedConnections (ограничаване на връзките, които даден ключ може да използва), is_active (активиране/деактивиране на ключ с 403), accessSchedule (базиран на времето контрол на достъпа), autoResolve превключване, преименуване на ключове чрез PATCH. -Групи за свързване: Групирайте връзките на доставчика по среда. Изглед на акордеон в страницата с ограничения с постоянство на localStorage и интелигентно автоматично превключване. -Външно синхронизиране на цените (LiteLLM): 3-степенна резолюция на ценообразуването (потребителят отменя → синхронизирано → по подразбиране). Включете се чрез PRICING_SYNC_ENABLED=true. MCP инструмент omniroute_sync_pricing. 23 нови теста. -i18n: 30 езика, актуализирани със стриктно произволна стратегия, низове за управление на ключове за API. pt-BR напълно преведен.### 🐛 Bug Fixes

-поправка #355: Времето за изчакване на потока при неактивност се увеличи от 60s на 300s — предотвратява прекъсването на модели с разширено мислене (claude-opus-4-6, o3 и т.н.) по време на дълги фази на разсъждение. Може да се конфигурира чрез STREAM_IDLE_TIMEOUT_MS. -поправка #350: Комбинираният тест вече заобикаля REQUIRE_API_KEY=true с помощта на вътрешна заглавка и универсално използва формат, съвместим с OpenAI. Времето за изчакване е удължено от 15s на 20s. -поправка #346: Инструменти с празно function.name (препратено от Claude Code) вече се филтрират преди доставчиците нагоре по веригата да ги получат, предотвратявайки грешки "Невалиден вход [N].name: празен низ".### 🗑️ Closed Issues

-#341: Разделът за отстраняване на грешки е премахнат — замяната е /dashboard/logs и /dashboard/health.

Поддръжка на API Key Round-Robin за настройки на доставчици с множество ключове и потвърждение за маршрутизиране със заместващи знаци и квотен прозорец, който вече е налице.### New Features

-API Key Round-Robin (T07): Връзките на доставчика вече могат да съдържат множество API ключове (Редактиране на връзка → Допълнителни API ключове). Заявките се редуват кръгово между първични + допълнителни ключове чрез „providerSpecificData.extraApiKeys[]“. Ключовете се съхраняват в паметта, индексирани за връзка — не са необходими промени в схемата на DB.### 📝 Already Implemented (confirmed in audit)

-Wildcard Model Routing (T13): wildcardRouter.ts със съвпадение на заместващи знаци в глобален стил (gpt*, claude-?-sonnet и т.н.) вече е интегриран в model.ts със специфично класиране. -Quota Window Rolling (T08): accountFallback.ts:isModelLocked() вече автоматично напредва в прозореца — ако Date.now() > entry.until, заключването се изтрива незабавно (няма остаряло блокиране).

Подобряване на потребителския интерфейс, допълнения в стратегията за маршрутизиране и елегантно обработване на грешки за ограничения на употребата.### New Features

-Fill-First & P2C Routing Strategies: Добавени са fill-first (източване на квота, преди да продължите) и p2c (избор с ниска латентност при Power-of-Two-Choices) към инструмента за избор на комбинирана стратегия, с пълни панели с насоки и цветно кодирани значки. -Предварително зададени модели на безплатен стек: Създаването на комбо с шаблона Free Stack вече автоматично попълва 7 най-добри в класа безплатни модела на доставчик (Gemini CLI, Kiro, Qoder×2, Qwen, NVIDIA NIM, Groq). Потребителите просто активират доставчиците и получават комбо от $0/месец веднага. -Wider Combo Modal: Модалът за създаване/редактиране на комбо вече използва max-w-4xl за удобно редактиране на големи комбинации.### 🐛 Bug Fixes

-Страница с ограничения HTTP 500 за Codex & GitHub: getCodexUsage() и getGitHubUsage() вече връщат удобно за потребителя съобщение, когато доставчикът върне 401/403 (изтекъл токен), вместо да изхвърля и причинява грешка 500 на страницата с ограничения. -MaintenanceBanner фалшиво положителен: Банерът вече не показва фалшиво „Сървърът е недостъпен“ при зареждане на страницата. Поправено чрез извикване на checkHealth() незабавно при монтиране и премахване на остаряло затваряне на състояние show. -Подсказки за икона на доставчик: Бутоните за редактиране (молив) и изтриване на икони в реда за свързване на доставчика вече имат собствени HTML подсказки — всичките 6 икони за действие вече са самостоятелно документирани.

Множество подобрения от анализ на проблеми на общността, поддръжка на нов доставчик, корекции на грешки за проследяване на токени, маршрутизиране на модела и надеждност на стрийминг.### New Features

-Task-Aware Smart Routing (T05): Автоматичен избор на модел въз основа на типа съдържание на заявката — кодиране → deepseek-chat, анализ → gemini-2.5-pro, vision → gpt-4o, обобщение → gemini-2.5-flash. Може да се конфигурира чрез Настройки. Нов GET/PUT/POST /api/settings/task-routing API. -HuggingFace Provider: Добавен HuggingFace Router като OpenAI-съвместим доставчик с Llama 3.1 70B/8B, Qwen 2.5 72B, Mistral 7B, Phi-3.5 Mini. -Vertex AI Provider: Добавен Vertex AI (Google Cloud) доставчик с Gemini 2.5 Pro/Flash, Gemma 2 27B, Claude чрез Vertex. -Качване на файлове на Playground: Качване на аудио за транскрипция, качване на изображения за модели на зрение (автоматично откриване по име на модел), рендиране на вградено изображение за резултати от генериране на изображение. -Визуална обратна връзка за избор на модел: Вече добавените модели в инструмента за избор на комбо вече показват ✓ зелена значка — предотвратява дублиране на объркване. -Съвместимост с Qwen (PR #352): Актуализирани настройки за пръстов отпечатък на потребителския агент и CLI за съвместимост с Qwen доставчик. -Кръгово управление на състоянието (PR #349): Подобрена циклична логика за обработка на изключени акаунти и правилно поддържане на състоянието на ротация. -Clipboard UX (PR #360): Подсилени операции с клипборда с резервен вариант за незащитени контексти; Подобрения в нормализирането на инструмента Claude.### 🐛 Bug Fixes

-Коригиране #302 — OpenAI SDK stream=False изпуска tool_calls: T01 Договарянето на заглавката за приемане вече не налага поточно предаване, когато body.stream е изрично false. Причиняваше тихо премахване на tool_calls при използване на OpenAI Python SDK в режим без поточно предаване. -Коригиране #73 — Claude Haiku, насочен към OpenAI без префикс на доставчика: моделите claude-*, изпратени без префикс на доставчик, сега правилно се насочват към доставчика на antigravity (Anthropic). Добавена е и евристика gemini-*/gemma-*gemini. -Коригиране #74 — Броят на токените винаги е 0 за поточно предаване на Antigravity/Claude: SSE събитието message_start, което носи input_tokens, не се анализира от extractUsage(), причинявайки отпадане на броя на всички входни токени. Проследяването на токени за вход/изход вече работи правилно за поточно предаване на отговори. -Коригиране #180 — Дубликати за импортиране на модели без обратна връзка: ModelSelectModal сега показва ✓ зелено осветяване за модели, които вече са в комбото, което прави очевидно, че те вече са добавени. -Грешки при генериране на медийни страници: Резултатите от изображенията вече се изобразяват като тагове <img> вместо необработен JSON. Резултатите от транскрипцията се показват като четим текст. Грешките в идентификационните данни показват кехлибарен банер вместо безшумен отказ. -Бутон за опресняване на токени на страницата на доставчика: Добавен потребителски интерфейс за ръчно опресняване на токени за доставчиците на OAuth.### 🔧 Improvements

-Регистър на доставчици: HuggingFace и Vertex AI добавени към providerRegistry.ts и providers.ts (frontend). -Кеш за четене: Нов src/lib/db/readCache.ts за ефективно кеширане на четене на DB. -Quota Cache: Подобрен квотен кеш с TTL-базирано изгонване.### 📦 Dependencies

  • dompurify → 3.3.3 (PR #347)
  • undici → 7.24.2 (PR #348, #361)
  • docker/setup-qemu-action → v4 (PR #342)
  • docker/setup-buildx-action → v4 (PR #343)### 📁 New Files
Файл Цел
open-sse/services/taskAwareRouter.ts Логика за маршрутизиране, съобразена със задачите (7 типа задачи)
src/app/api/settings/task-routing/route.ts API за конфигуриране на маршрутизиране на задачи
src/app/api/providers/[id]/refresh/route.ts Ръчно опресняване на токена за OAuth
src/lib/db/readCache.ts Ефективен кеш за четене на DB
src/shared/utils/clipboard.ts Закален клипборд с резервен ## [2.4.1] - 2026-03-13

🐛 Fix

-Модални комбинации: Свободен стек видим и изпъкнал— Шаблонът за свободен стек беше скрит (4-ти в мрежата с 3 колони). Коригирано: преместено на позиция 1, превключено на решетка 2x2, така че всичките 4 шаблона да са видими, зелена граница + БЕЗПЛАТНО открояване на значка.## [2.4.0] - 2026-03-13

Основно издание— Безплатна екосистема на Stack, ремонт на площадката за транскрипция, 44+ доставчици, изчерпателна безплатна документация за ниво и подобрения на потребителския интерфейс навсякъде.### Функции

-Комбинации: Безплатен стек шаблон— Нов 4-ти шаблон „Безплатен стек ($0)“ с използване на кръгов режим между Kiro + Qoder + Qwen + Gemini CLI. Предлага предварително изградената комбинация с нулеви разходи при първа употреба. -Медия/Транскрипция: Deepgram по подразбиране— Deepgram (Nova 3, $200 безплатно) вече е доставчикът на транскрипция по подразбиране. AssemblyAI ($50 безплатно) и Groq Whisper (безплатно завинаги), показани с безплатни кредитни значки. -README: Раздел „Стартирайте безплатно“— Нова таблица с 5 стъпки за ранен README, показваща как да настроите AI с нулеви разходи за минути. -README: Комбинация за безплатна транскрипция— Нов раздел с предложение за комбо Deepgram/AssemblyAI/Groq и безплатни кредитни подробности за всеки доставчик. -providers.ts: флаг hasFree— NVIDIA NIM, Cerebras и Groq, маркирани със значка hasFree и freeNote за потребителския интерфейс на доставчиците. -i18n: templateFreeStack keys— Комбиниран шаблон за безплатен стек, преведен и синхронизиран на всички 30 езика.## [2.3.16] - 2026-03-13

Документация

-README: 44+ доставчици— Актуализирани всичките 3 срещания на „36+ доставчици“ до „44+“, отразяващи действителния брой кодова база (44 доставчици в providers.ts) -README: Нов раздел "🆓 Безплатни модели — Какво всъщност получавате"— Добавена е таблица със 7 доставчици с лимити на скоростта за всеки модел за: Kiro (Claude неограничен чрез AWS Builder ID), Qoder (5 модела неограничен), Qwen (4 модела неограничен), Gemini CLI (180K/месец), NVIDIA NIM (~40 RPM dev-forever), Cerebras (1M tok/ден / 60K TPM), Groq (30 RPM / 14,4K RPD). Включва препоръката /usr/bin/bash Ultimate Free Stack combo. -README: Актуализирана таблица с цените— Добавен Cerebras към ниво API KEY, фиксиран NVIDIA от „1000 кредита“ на „dev-forever free“, актуализиран брой и имена на модели Qoder/Qwen -README: Qoder 8→5 модели(наименувани: kimi-k2-thinking, qwen3-coder-plus, deepseek-r1, minimax-m2, kimi-k2) -README: Qwen 3→4 модели(наименувани: qwen3-coder-plus, qwen3-coder-flash, qwen3-coder-next, vision-model)## [2.3.15] - 2026-03-13

Функции

-Auto-Combo Dashboard (Tier Priority): Добавен е 🏷️ Tier като 7-ми етикет на коефициента на точкуване в дисплея с разбивка на факторите /dashboard/auto-combo — всичките 7 Auto-Combo коефициента на точкуване вече са видими. -i18n — секция autoCombo: Добавени са 20 нови ключа за превод за таблото за управление на Auto-Combo (title, status, modePack, providerScores, factorTierPriority и т.н.) към всичките 30 езикови файла.## [2.3.14] - 2026-03-13

🐛 Bug Fixes

-Qoder OAuth (#339): Възстановен е валидният clientSecret по подразбиране — преди това беше празен низ, което причиняваше "лоши идентификационни данни на клиента" при всеки опит за свързване. Публичните идентификационни данни вече са резервни по подразбиране (може да се замени чрез QODER_OAUTH_CLIENT_SECRET env var). -MITM сървърът не е намерен (#335): prepublish.mjs вече компилира src/mitm/*.ts в JavaScript с помощта на tsc, преди да копира в пакета npm. Преди това бяха копирани само необработени файлове .ts — което означава, че server.js никога не е съществувал в глобалните инсталации на npm/Volta. -GeminiCLI missing projectId (#338): Вместо да извежда твърда грешка 500, когато projectId липсва в съхранените идентификационни данни (напр. след рестартиране на Docker), OmniRoute вече записва предупреждение и се опитва да изпълни заявката — връща значима грешка от страна на доставчика вместо срив на OmniRoute. -Несъответствие на версията на Electron (#323): Синхронизирана версията на electron/package.json с 2.3.13 (беше 2.0.13), така че двоичната версия за настолен компютър съвпада с пакета npm.### New Models (#334)

-Kiro: claude-sonnet-4, claude-opus-4.6, deepseek-v3.2, minimax-m2.1, qwen3-coder-next, auto -Кодекс: gpt5.4### 🔧 Improvements

-Tier Scoring (API + Validation): Добавено е tierPriority (тегло 0.05) към ScoringWeights Zod схема и combos/auto API маршрут — 7-ият точкуващ фактор вече е напълно приет от REST API и валидиран при въвеждане. теглото на стабилност е коригирано от 0,10 до 0,05, за да се запази общата сума = 1,0.### New Features

-Отчитане на нива на квота (автоматично комбинирано): Добавен е tierPriority като 7-ми фактор за оценяване — акаунтите с нива Ultra/Pro вече се предпочитат пред нивата Free, когато другите фактори са равни. Нови незадължителни полета accountTier и quotaResetIntervalSecs на ProviderCandidate. Актуализирани са всички 4 пакета с режими („бърз кораб“, „спестяващ разходи“, „първо качество“, „удобен офлайн“). -Intra-Family Model Fallback (T5): Когато даден модел не е наличен (404/400/403), OmniRoute вече автоматично се връща към сродни модели от същото семейство, преди да върне грешка (modelFamilyFallback.ts). -Конфигурируемо време за изчакване на API мост: API_BRIDGE_PROXY_TIMEOUT_MS env var позволява на операторите да настроят времето за изчакване на проксито (по подразбиране 30 секунди). Коригира грешки 504 при бавни отговори нагоре по веригата. (#332) -Star History: Заменен widget star-history.com със starchart.cc (?variant=adaptive) във всичките 30 README — адаптира се към светла/тъмна тема, актуализации в реално време.### 🐛 Bug Fixes

-Auth — Парола за първи път: INITIAL_PASSWORD env var вече се приема при задаване на първата парола на таблото за управление. Използва timingSafeEqual за сравнение на постоянно време, предотвратявайки атаки за определяне на времето. (#333) -Отрязване на README: Коригиран е липсващ затварящ таг </details> в раздела за отстраняване на неизправности, който е накарал GitHub да спре да изобразява всичко под него (технически стек, документи, пътна карта, сътрудници). -pnpm install: Премахнато е излишното заместване на @swc/helpers от package.json, което е в конфликт с пряката зависимост, причинявайки грешки EOVERRIDE на pnpm. Добавена е конфигурация pnpm.onlyBuiltDependencies. -CLI Path Injection (T12): Добавен е isSafePath() валидатор в cliRuntime.ts за блокиране на преминаването на пътя и метасимволите на обвивката в CLI_*_BIN env vars. -CI: Регенериран package-lock.json след премахване на замяната, за да се коригират грешките npm ci в GitHub Actions.### 🔧 Improvements

-Формат на отговор (T1): response_format (json_schema/json_object) вече се инжектира като системна подкана за Claude, което позволява структурирана съвместимост на изхода. -429 Повторен опит (T2): Вътрешен URL повторен опит за 429 отговора (2 × опита с 2 секунди закъснение) преди връщане към следващия URL адрес. -Gemini CLI Headers (T3): Добавени са User-Agent и X-Goog-Api-Client заглавки за пръстови отпечатъци за съвместимост с Gemini CLI. -Ценови каталог (T9): Добавени са ценови записи deepseek-3.1, deepseek-3.2 и qwen3-coder-next.### 📁 New Files

Файл Цел
open-sse/services/modelFamilyFallback.ts Дефиниции на моделни семейства и вътрешносемейна резервна логика ### Fixed

-KiloCode: времето за изчакване на проверката на състоянието на kilocode вече е фиксирано във v2.3.11 -OpenCode: Добавяне на отворен код към регистъра на cliRuntime с 15 секунди изчакване за проверка на състоянието -OpenClaw / Cursor: Увеличете времето за изчакване на проверката на здравето до 15 s за варианти с бавен старт -VPS: Инсталирайте droid и openclaw npm пакети; активирайте CLI_EXTRA_PATHS за kiro-cli -cliRuntime: Добавете регистрация на инструмента за отворен код и увеличете времето за изчакване за продължаване## [2.3.11] - 2026-03-12

Fixed

-KiloCode Healthcheck: Увеличете healthcheckTimeoutMs от 4000ms на 15000ms — kilocode изобразява банер с ASCII лого при стартиране, причинявайки фалшиво healthcheck_failed при бавно/студено стартиране## [2.3.10] - 2026-03-12

Fixed

-Lint: Коригирайте грешката check:any-budget:t11 — заменете as any с as Record<string, unknown> в OAuthModal.tsx (3 случая)### Docs

-CLI-TOOLS.md: Пълно ръководство за всички 11 CLI инструмента (claude, codex, gemini, opencode, cline, kilocode, continue, kiro-cli, cursor, droid, openclaw) -i18n: CLI-TOOLS.md синхронизиран на 30 езика с преведено заглавие + интро## [2.3.8] - 2026-03-12

[2.3.9] - 2026-03-12

Added

-/v1/completions: Нова наследена крайна точка за завършвания на OpenAI — приема както prompt низ, така и messages масив, автоматично се нормализира във формат за чат -EndpointPage: Сега показва всички 3 типа крайни точки, съвместими с OpenAI: Завършвания на чат, API за отговори и наследени завършвания -i18n: Добавено е completionsLegacy/completionsLegacyDesc към 30 езикови файла### Fixed

-OAuthModal: Коригиране на [object Object], показван при всички грешки на връзката OAuth — правилно извличане на .message от обекти за отговор на грешка във всичките 3 извиквания throw new Error(data.error) (обмен, код на устройство, авторизиране)

  • Засяга Cline, Codex, GitHub, Qwen, Kiro и всички други доставчици на OAuth## [2.3.7] - 2026-03-12

Fixed

-Cline OAuth: Добавяне на decodeURIComponent преди base64 декодиране, така че кодираните с URL кодове за удостоверяване от URL адреса за обратно извикване да се анализират правилно, коригирайки грешките „невалиден или изтекъл код за оторизация“ при отдалечени (LAN IP) настройки -Cline OAuth: mapTokens вече попълва name = firstName + lastName || имейл, така че Cline акаунтите показват реални потребителски имена вместо „Account #ID“ -Имена на OAuth акаунти: Всички OAuth обменни потоци (обмен, анкета, анкета-обратно извикване) вече нормализират име = имейл, когато името липсва, така че всеки OAuth акаунт показва имейла си като етикет за показване в таблото за управление на доставчиците -Имена на OAuth акаунти: Премахнато е последователно резервно „Акаунт N“ в db/providers.ts — акаунти без имейл/име сега използват стабилен етикет, базиран на ID чрез getAccountDisplayName() вместо пореден номер, който се променя при изтриване на акаунти## [2.3.6] - 2026-03-12

Fixed

-Тестова партида на доставчик: Фиксирана Zod схема за приемане на providerId: null (фронтендът изпраща null за режими без доставчик); неправилно връщаше „Невалидна заявка“ за всички пакетни тестове -Модален тест на доставчика: Коригирано показване на [object Object] чрез нормализиране на обекти за грешка на API към низове преди изобразяване в setTestResults и ProviderTestResultsView -i18n: Добавени са липсващи ключове cliTools.toolDescriptions.opencode, cliTools.toolDescriptions.kiro, cliTools.guides.opencode, cliTools.guides.kiro към en.json -i18n: Синхронизирани 1111 липсващи ключа във всичките 29 файла на неанглийски език, използвайки английски стойности като резервни варианти## [2.3.5] - 2026-03-11

Fixed

-@swc/helpers: Добавена е постоянна корекция postinstall за копиране на @swc/helpers в node_modules на самостоятелното приложение — предотвратява срив на MODULE_NOT_FOUND при глобални инсталации на npm## [2.3.4] - 2026-03-10

Added

  • Множество интеграции на доставчици и подобрения на таблото за управление