Релизы

v1.5.3

Накопительный релиз с настраиваемыми политиками резервирования бюджета, явным сбросом бюджетов и серией исправлений учёта расходов.

Что добавлено

Настраиваемые политики резервирования бюджета

Появилась глобальная секция governance.reservation в config.json, которая задаёт сколько именно Meridian резервирует на этапе RESERVE. Три режима:

  • Flat $0.05 (по умолчанию) — фиксированная сумма на запрос, высокая пропускная способность для параллельных вызовов.
  • Worst-case — каталожная верхняя оценка стоимости, строгий контроль перерасхода.
  • Disabled (sentinel) — отключённое резервирование, отказы только пост-фактум.

Поддерживаются переопределения по моделям через glob-шаблоны: например, flat-резерв на дешёвые модели и worst-case на премиум-классы (claude-opus-*, gpt-4o) одновременно.

Подробнее — в разделе Политики резервирования бюджета.

Явный сброс бюджетов и календарное выравнивание

Появилась опция calendar_aligned: true для бюджетов с интервалами сброса 1d, 1w, 1M, 1Y — сброс происходит ровно в начале календарного периода в UTC, одинаково для всех клиентов с этой настройкой.

Подробнее — в разделе Бюджеты и лимиты → Calendar-aligned бюджеты.

Anthropic Claude Opus 4.7 и связанные обновления ядра

Поддержка Claude Opus 4.7: режим summarized для reasoning-вывода по умолчанию, корректная конверсия tool_choice для Bedrock в режим auto, обновлённые зависимости для трассировки длинных streamed-ответов.

Embeddings через OpenRouter

OpenRouter теперь поддерживается как провайдер embeddings (помимо chat completions). Единая VK-конфигурация перекрывает оба типа запросов без отдельного провайдера для embeddings.

Azure OpenAI passthrough

Добавлена сквозная поддержка Azure OpenAI: запросы можно отправлять в нативном Azure-формате через /azure/openai/*-пути без преобразования в OpenAI-совместимый формат.

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

В разделе Использование появились страницы со сценариями (multi-provider routing, fallbacks по бюджету, semantic caching, governance для AI SaaS). API-схема и config.json-схема собираются автоматически из исходников при каждом релизе документации.

Что исправлено

Учёт расходов для очень долгих запросов (главное исправление 1.5.3)

Запросы, длительность которых превышала cluster_config.raft.reservation_ttl, могли быть не учтены в бюджете.

Исправление: reservation_ttl по умолчанию увеличен до 1 часа, что покрывает любой реальный запрос.

Принцип: каждое резервирование завершается списанием — actualCost когда известен, MaxCost когда нет.

Тихие потери списаний (Defects A + B)

Две регрессии в shard-обходе governance-слоя приводили к тому, что часть успешных запросов не доходила до RaftGroup при выборе шарда:

  • Defect A — пропуск инкремента счётчика usage при отсутствии actualCost (например, для image-generation, где token-usage отсутствует).
  • Defect BEstimateMaxCost == 0 блокировал ReserveBudget для non-text request типов, что обнуляло учёт image, TTS и embedding-вызовов.

Исправлены оба пути; добавлена трёхуровневая логика в EstimateMaxCost (Tier 1 catalog, Tier 2 per-request-type, Tier 3 резерв).

Валидация владения VK и тип SQLite

Форма редактирования виртуального ключа в Web UI не пропускала корректные edit-операции при определённых сочетаниях ownership-флагов; параллельно багфикс в драйвере SQLite (некорректная сериализация некоторых nullable-полей).

Бухгалтерия per-shard и кластерные правки

  • Settled-only accounting: CurrentUsage теперь хранит только финализированные суммы; pending-reservations считаются отдельно. Исключает отображение резервов в UI и API.
  • Календарное выравнивание (CalendarAligned + ResetDurationStr) теперь корректно переносится через snapshot-восстановление и миграцию команд между шардами.

Прочие исправления

  • Bedrock: корректная конверсия tool_choice: requiredauto при отсутствии прямого аналога в Bedrock API.
  • MCP: исправлены логи выполнения MCP-инструментов при ошибках клиента.
  • Auth (frontend): добавлены guard-проверки и корректный редирект на страницу входа.

Обновление с 1.4.16

Миграции не требуется, внутренние миграции отсутствуют.

Содержание