Журнал изменений

Журнал изменений

Каждый релиз API Runnev, новые сверху. Версия API сообщается через GET /v1/version; текущий релиз — 1.6.2.

v1.6.2

Исправлено

  • Исправлен учёт x-ratelimit-remaining на пути публикации с серверным номером, который при параллельных записях мог занижать значение на единицу.
  • Редкий крайний случай возобновления TLS-сессии на границе сети, который мог задерживать первый байт ответа подписки до секунды.
  • Документация: лимит окна номеров равен 1024, а не 1000, как утверждала более ранняя версия руководства по публикации.

v1.6.1

Исправлено

  • Keepalive-комментарий SSE мог не отправляться до 30 секунд на потоках, только что вытеснивших крупный пакет; теперь таймер корректно сбрасывается после вытеснения.
  • DELETE уже удалённого потока теперь стабильно возвращает 404 вместо эпизодического 204.

v1.6.0

Добавлено

  • Ключи идемпотентности для пути публикации с серверным номером через необязательный заголовок Idempotency-Key, так что повторы /publish можно сделать безопасными, не переходя на явные номера.
  • x-runnev-cursor теперь возвращается в каждом ответе на публикацию, включая дубликаты, так что клиенты могут продвигать состояние, не читая тело.

Изменено

  • Значение limit по умолчанию у эндпоинта списка теперь 20 (было 25), чтобы соответствовать документированному соглашению о пагинации.

v1.5.3

Исправлено

  • Python SDK 1.5.3: генератор подписки мог выбрасывать исключение при таймауте чтения из сокета на законно простаивающем потоке; теперь таймаут чтения задан выше интервала keepalive, а пропущенный keepalive вместо этого запускает переподключение.
  • Исправлено значение Retry-After — теперь это целое число секунд во всех ответах 429.

v1.5.0

Добавлено

  • Политики хранения на уровне потока: max_bytes теперь настраивается при создании наряду с retention_seconds, и обе границы применяются независимо.
  • GET /v1/streams/{id}/cursor для дешёвого опроса курсора без открытия подписки.

Изменено

  • Значение max_bytes по умолчанию поднято до 256 МиБ со 128 МиБ.

v1.4.2

Исправлено

  • Go SDK v1.4.2: убран общий Client.Timeout, который обрывал здоровые соединения подписки; путь подписки теперь задаёт только ResponseHeaderTimeout.
  • Ответы HTTP/3 не содержали x-request-id на эндпоинте health.

v1.4.0

Добавлено

  • Официальный Go SDK, github.com/runnev/runnev-go.
  • HTTP/3 на границе сети для всех эндпоинтов.

Изменено

  • Ответы подписки теперь безусловно включают x-accel-buffering: no как дружелюбную к стримингу подсказку для обратных прокси на пути.

v1.3.1

Исправлено

  • Base64-дополнение сырых пакетов, доставляемых по SSE, могло обрезаться для полезных нагрузок, длина которых не кратна трём.

v1.3.0

Добавлено

  • Официальный Python SDK, runnev.
  • Заголовок запроса Last-Event-ID теперь учитывается при переподключении, так что нативный браузерный EventSource корректно возобновляется.

v1.2.0

Добавлено

  • Возобновление по курсору и повтор одного пакета через GET /v1/streams/{id}/batches/{seq}.
  • ?cursor= при подписке принимает head, 0 или любой номер.

v1.1.0

Добавлено

  • Режим сырых бинарных пакетов: потоки, созданные с "mode":"raw", принимают application/octet-stream и хранятся дословно.

Изменено

  • Лимит тела публикации поднят до 8 МиБ с 4 МиБ.

v1.0.0

Добавлено

  • Публичный запуск. Потоки, публикация с явным номером и с серверным номером, подписка по SSE, хранение по времени и JavaScript SDK.