Changelog

Записи о breaking changes API, новых моделях, обновлениях платформы Hubris.

Записи о значимых изменениях платформы, документации и SDK. Полная история коммитов — внутренняя.

2026-05-28 — OAuth 2.0 + PKCE для сторонних приложений (Phase A)

Сторонние приложения могут подключаться к Hubris через стандартный OAuth flow с тремя scopes (chat:write, models:read, balance:read) и опциональным дневным лимитом на токен. Claude Desktop, Claude.ai, Cursor и другие MCP-клиенты теперь подключаются нативно через «Add custom connector» UI — без mcp-remote шима. Подробности и Python-пример: /docs/integrations/oauth.

2026-05-26 — MCP-сервер для Claude Desktop / Claude Code / Cline (Beta)

Подключите Hubris к AI-агенту по протоколу Model Context Protocol: URL https://api.hubris.pw/mcp, тот же Bearer-ключ sk-gw-.... Агент получает каталог моделей, баланс и запросы к LLM (chat/complete — полный паритет с /v1/chat/completions) через одно подключение. Биллинг — как обычно. Фича в Beta — поведение и набор инструментов могут поменяться.

2026-05-25 — Чат в личном кабинете (Beta)

В ЛК появился раздел Чат — браузерный интерфейс к любой из 300+ моделей каталога. Альтернатива внешним чат-клиентам, когда нужно «быстро спросить» без curl и API-ключей.

  • История хранится только в этом браузере. Чаты живут в localStorage — сервер Hubris их не видит и не может восстановить. В журнале запросов остаются только метаданные (модель, токены, стоимость), как и для API-вызовов. При очистке данных браузера или смене устройства чаты пропадут — для бэкапа есть «Скачать всё» и импорт из JSON в настройках чата.
  • Одна модель на чат. Выбирается при создании, в шапке отображается название и провайдер. Чтобы попробовать другую модель — создаётся новый чат.
  • Edit и regen, без веток. Любое сообщение пользователя можно отредактировать — хвост чата перепрогоняется заново (с подтверждением, если удаляется ≥2 сообщений). Под последним ответом ассистента — кнопка «Перегенерировать».
  • Лимиты. До 50 сообщений в одном чате (мягкое предупреждение с 40), до 30 чатов в сайдбаре. При достижении — баннер «Создайте новый чат» с кнопкой «Скачать этот». Защита от тормозов DOM и переплаты за input-replay (каждый новый запрос отправляет всю историю в модель).
  • Кликабельные источники для Perplexity Sonar. Маркеры [1], [2] в ответах web-search моделей превращаются в маленькие фиолетовые pill-ссылки на оригинальные источники. Под ответом — полный список URL с hostname и путём.
  • Поддержка LaTeX-формул. Inline \(...\) и блочные \[...\] рендерятся через KaTeX — нужно для reasoning-моделей (Sonar Reasoning, Sonar Deep Research), которые форматируют числа и формулы в математической нотации.
  • Stop с честным биллингом. Кнопка «Остановить» во время стрима абортит чтение, но сервер дочитывает апстрим до конца и списывает полную стоимость (соответствие SPEC §10). В подсказке у кнопки — явное «не отменяет списание».
  • Списание как обычно, без прогноза. Каждое сообщение оплачивается из основного баланса так же, как /v1/* запрос. При нулевом балансе — баннер «Пополнить», следующее сообщение не отправляется до пополнения.
  • Privacy-онбординг. При первом открытии — диалог с явным объяснением, что чаты не покидают браузер. Один клик «Понятно» — больше не показывается.
  • Полный экран на десктопе. Раздел занимает всю ширину/высоту окна — без узкой колонки и шапки дашборда. Колонка сообщений ограничена 760px для комфортного чтения.

Доступ — пункт «Чат» в сайдбаре ЛК (бейдж Beta).

2026-05-25 — Активированы Perplexity Sonar и другие web-search модели

5 моделей семейства Perplexity Sonar (sonar, sonar-pro, sonar-pro-search, sonar-reasoning-pro, sonar-deep-research) теперь активны в каталоге и доступны через /v1/* и встроенный чат. Раньше были деактивированы — пока не было уверенности, что биллинг корректно покрывает web-search surcharge.

  • Биллинг через usage.cost от провайдера. Стоимость каждого запроса (включая web-search per-request surcharge $0.005) приходит готовой от апстрима и попадает в usage_logs.cost_kopecks ровно так же, как для обычных моделей. Никаких отдельных формул на нашей стороне.
  • Sentinel-warning в логах. Если апстрим вдруг вернёт usage.cost=0 при web_search_requests > 0 — пишем warn-лог, чтобы поймать проблему до того, как её заметят пользователи.
  • В чате /chat — кликабельные [N]. Sonar возвращает массив citations[] URL'ов; чат превращает маркеры в тексте в маленькие фиолетовые pill-ссылки и показывает полный список под ответом.

2026-05-24 — Все ошибки /v1/* и /api/internal/* теперь на русском

error.message во всех публичных эндпоинтах переведены на формальный русский язык:

  • Недостаточно средств на балансе.
  • Модель не найдена: <id>
  • Неверный API-ключ / API-ключ не передан
  • Курс ЦБ РФ временно недоступен
  • Сервис провайдера временно недоступен (раньше — Upstream returned an error)
  • Превышено время ожидания апстрима / Превышен дневной лимит расхода для этого API-ключа
  • и другие.

error.code (insufficient_balance, model_not_found, upstream_error, daily_limit_exceeded, и т.д.) остаётся стабильным машинно-читаемым контрактом — английский. Если ваш код матчит ошибки по code — изменений не требуется. Если по message — обновите матч на русский (либо мигрируйте на code).

В песочнице на странице модели также убрали захардкоженные русские подсказки на фронте — теперь рендерится ровно то, что отдал бэкенд. При ошибке «недостаточно средств» рядом с сообщением появляется ссылка «Пополнить баланс» → /billing.

2026-05-23 — usage.cost теперь в копейках

В ответах всех /v1/* эндпоинтов (/messages, /chat/completions, /responses, /embeddings) поле usage.cost теперь содержит итоговую цену запроса в копейках (integer) — ту же сумму, что списывается с баланса и попадает в /v1/usage. Раньше там приходил raw cost в долларах. Применяется и к потоковому режиму — копейки попадают в финальный message_delta / chat.completion.chunk / response.completed.

2026-05-23 — Поддержка Claude Code: эндпоинт /v1/messages

  • Новый эндпоинт POST /v1/messages — совместимый с Anthropic Messages API. Через него работают Claude Code, официальные SDK Anthropic для Python и TypeScript, любые сторонние клиенты, ожидающие Anthropic-формат.
  • Аутентификация: и Bearer, и x-api-key. Поддержаны оба заголовка одновременно — Claude Code использует ANTHROPIC_AUTH_TOKEN через Authorization: Bearer, а Anthropic-SDK по умолчанию шлёт x-api-key. Hubris принимает обе формы для любого /v1/* эндпоинта.
  • Маппинг имён моделей. Принимаются и Anthropic-стиль (claude-sonnet-4-5, claude-3-5-sonnet-20241022, claude-haiku-4-5-latest), и каноничные Hubris-имена (anthropic/claude-sonnet-4.6). В ответе поле model восстанавливается в то имя, что прислал клиент — для согласованности логов.
  • Полный набор Anthropic-фич: vision, tool use, prompt caching, extended thinking. Все content-блоки (text, image, tool_use, tool_result, document, thinking) и параметры (cache_control, tool_choice, thinking, stop_sequences) проходят без изменений. Биллинг учитывает usage.cost, который провайдер возвращает с поправкой на cache hit / cache write.
  • Anthropic-нативный SSE-стриминг. События message_start / content_block_* / message_delta / message_stop приходят в нативном формате. На разрыве соединения Hubris дочитывает апстрим до конца и списывает стоимость, без бесплатных токенов.
  • Anthropic-формат ошибок. Вместо OpenAI-стиля {error:{...}} возвращаем {type:"error",error:{type,message}} с корректным error.type (invalid_request_error, authentication_error, rate_limit_error, api_error, not_found_error, billing_error, timeout_error). SDK Anthropic не падают.
  • Statusline-скрипт для Claude Code. Bash (https://hubris.pw/scripts/claude-statusline.sh) и кросс-платформенный Node-вариант (https://hubris.pw/scripts/claude-statusline.mjs) — выводит активную модель и расход за сегодня в нижней строке TUI. Подробности — в гиде по Claude Code.
  • Документация. Гид «Подключение Claude Code» — установка, конфигурация, выбор моделей, statusline, FAQ. API-референс POST /v1/messages — параметры, форматы, примеры.
  • Ограничение MVP. Privacy Mode (маскирование PII) на /v1/messages пока не работает — фича сложнее в реализации для Anthropic-формата content-блоков. Если нужна маскировка, используйте /v1/chat/completions с заголовком X-Hubris-Privacy-Mask. Поддержка появится отдельно.

2026-05-23 — Каталог моделей: +23 модели генерации изображений

  • Подключены image-модели из расширенного каталога: Flux 2 (pro/max/flex/klein-4b), Recraft v3/v4/v4.1 (11 вариантов: pro, vector, utility), Sourceful Riverflow v2 (pro, fast, preview-серии), xAI Grok Imagine, ByteDance Seedream 4.5, gemini-2.5-flash-image-preview. Полный список — в каталоге с фильтром «Output: image».
  • Корректное отображение цены за изображение в каталоге. Раньше unit-priced модели показывали «0 ₽ за 1М токенов» (UX-баг). Теперь — «X ₽ за изображение» / «X ₽ за мегапиксель» в зависимости от тарификации модели. То же поле pricing.per_unit[] доступно через GET /v1/models для разработчиков.
  • Документация: расширение Генерации изображений. Появилась справка по image_config параметрам конкретных провайдеров: Recraft style / text_layout / rgb_colors, Sourceful font_inputs / super_resolution_references. Раздел «Какую модель когда выбирать».

2026-05-22 — Песочница умеет генерировать картинки и уважает Privacy Mode

  • Image-gen в песочнице. На страницах моделей google/gemini-2.5-flash-image, openai/gpt-image-*, google/gemini-3.1-flash-image-preview и других моделей с картиночным выходом песочница теперь возвращает сгенерированное изображение прямо в чат-пузырь. Стоимость и токены считаются как для обычной генерации — без скрытых наценок.
  • Превью и сохранение. Клик по сгенерированной картинке открывает полноразмерный лайтбокс. Кнопка «Сохранить» скачивает PNG (или WEBP/JPEG — расширение берётся из data URL) с именем hubris-<timestamp>.<ext>. ESC или клик мимо — закрытие. Файл существует только у вас: на серверах Hubris ничего не сохраняется, в логах остаются только метаданные биллинга.
  • Песочница для image-only моделей. Модели, которые отдают только картинку без текста (Flux / SDXL-семейство), теперь тоже доступны в песочнице.
  • Privacy Mode теперь работает и в песочнице. Раньше включённая в /security маска применялась только к запросам через API-ключ — а отправки прямо со страницы модели уходили без маски. Теперь оба пути идентичны: ФИО, телефоны, email, ИНН, паспорта и т.д. скрываются до отправки модели, а в ответе восстанавливаются обратно. На stream-ответах работает та же построчная подмена, что и в /v1/chat/completions.

2026-05-22 — Server-tools, новая секция «Интеграции», доки фич

  • API: новый namespace hubris:* для server-tools. В tools[] запроса /v1/chat/completions и /v1/responses появилась поддержка { "type": "hubris:web_search" } — это канонический способ включить встроенный веб-поиск. Гид: Поиск в интернете. Старые namespace-варианты продолжают работать ради обратной совместимости.
  • Новая секция документации «Интеграции» (9 страниц). Подключение Hubris к популярным AI-инструментам: Cline, Roo Code, Kilo Code, OpenCode, Qwen Code CLI, Hermes Agent, OpenClaw, Dify, n8n. У каждого инструмента — точные шаги настройки base URL и API-ключа, советы по выбору модели и решение типовых проблем.
  • Новые гиды в разделе «Возможности»:
    • Вызов инструментов (tool calling) — жизненный цикл tool-сессии, tool_choice, параллельные вызовы, стриминг, SDK-примеры.
    • Структурированный выводjson_object и json_schema строгий режим, Pydantic / Zod helper'ы, обработка refusal'ов.
    • Поиск в интернете — встроенный server-side инструмент, аннотации источников, стриминг.
    • Изображения на вход (Vision) — multimodal-ввод через image_url content-parts, URL и base64, параметр detail, биллинг.
    • Выбор модели программно — фильтрация каталога через GET /v1/models, обработка 404 model_not_found, версионированные slug'и.
    • Стриминг ответов — когда включать stream: true, парсинг в Python / Node / Vercel AI SDK / голом fetch, UX-паттерны (типографический эффект, прогресс на reasoning-моделях, отмена).
    • Мониторинг расходовGET /v1/usage для cron-отчётов, бюджет-алёртов в коде агента, разбивки по проектам, BigInt для копеечной точности.
    • Обработка ошибок — стратегия retry по кодам (что ретраить, что нет), tenacity пример на Python, factory на TS, маппинг внутренних кодов в user-facing сообщения.
  • Боковое меню документации согласовано с дашбордом. Шрифт, отступы и компоновка строк сайдбара /docs теперь матчат сайдбар личного кабинета (13.5px / 6×10 / иконки 15px). До этого fumadocs-дефолты раздували сайдбар, и переходы между ЛК и доками выглядели визуально несогласованно.

2026-05-12 — Документация под общим хедером, AI-friendly выгрузка

  • Документация теперь под общей навигацией сайта. В шапке /docs появилось основное меню Hubris (Главная, Модели, Использование, API-ключи, Биллинг). Для авторизованных — текущий баланс и меню пользователя. Из ЛК больше не нужно открывать документацию «в отрыве».
  • Русский интерфейс fumadocs. «На этой странице», «Следующая», «Предыдущая», «Редактировать на GitHub», плейсхолдер поиска — теперь по-русски.
  • AI-friendly выгрузка документации.
    • Любую страницу /docs/<slug> можно открыть как plain-markdown: добавьте .md или .mdx к URL (например https://hubris.pw/docs/quickstart.md).
    • В шапке каждой страницы — кнопки «Скопировать как Markdown» и «Открыть в…» (ChatGPT / Claude / .md-версия).
    • https://hubris.pw/llms.txt — индекс всей документации в формате llmstxt.org, для AI-агентов.
    • https://hubris.pw/llms-full.txt — полный дамп всех страниц одним файлом, удобно скармливать в context-окно модели.

2026-05 — Запуск публичной документации

Опубликованы первые версии разделов:

  • С чего начать: Quickstart, Аутентификация, Миграция с OpenAI.
  • Базовые концепции: Модели, Цены, Биллинг, Ошибки, Rate limits, Конфиденциальность.
  • API Reference: /v1/models, /v1/chat/completions, /v1/responses (BETA), Streaming.
  • Возможности: Reasoning-токены, кеширование промптов.
  • Фреймворки: OpenAI SDK Python/Node, Vercel AI SDK, LangChain Python/JS.

API сам по себе — без изменений с релизной версии 1.0. Все стабильные эндпоинты под /v1/* остаются совместимыми.

Подписка на обновления

Пока что — следите за этой страницей. RSS / email-рассылка в работе.

Для критических изменений (breaking change в API, отзыв модели из каталога) — будем дополнительно слать на email вашего аккаунта.

Если нужно, чтобы конкретная модель не пропала

Если вы строите интеграцию вокруг конкретной модели и боитесь, что её уберут — напишите на support@hubris.pw, мы согласуем, как минимум, заранее предупредим о выводе.

Обновлено:

Changelog · Hubris