Skip to content

v1.0.7

Choose a tag to compare

@geekcodev geekcodev released this 15 Aug 19:03
· 22 commits to main since this release
0c11dc9

v1.0.7 — Ядро ^1.0.6: глобальный rate limit 30 rps, sendAnswer без message, deprecated-права админов, алиас max.log

Зависимости

  • Ядро geekcodev/max-php-client поднято до ^1.0.6. В v1.0.6 ядра:
    • ApiClient::create() получил опцию global_rate_limiter (по умолчанию RateLimiter(30, 30)) — глобальный
      предохранитель 30 req/s на весь API, применяется к каждому запросу (включая ретраи и загрузку медиа), при
      исчерпании ядро ждёт пополнения, а не бросает исключение;
    • sendAnswer() без message шлёт тело {} вместо пустого тела (раньше API отвечал 400 Empty request body);
    • ChatAdminPermission получил deprecated-значения post_edit_delete_message/edit_message/delete_message —
      теперь getBotMembership()/getChatAdmins()/getChatMembers() парсят чаты со старыми правами; addChatAdmin()
      выдачу таких прав отклоняет (InvalidArgumentException) и получил параметр ?int $marker;
    • getChatAdmins() больше не шлёт query marker/count (их нет в спеке; параметры deprecated и игнорируются);
    • join_time — миллисекунды (документировано в спеке).

Новое

  • Глобальный rate limit выведен в конфиг адаптера: блок global_rate_limit (env MAX_GLOBAL_RATE_LIMIT_*, дефолт
    30/30 rps). MaxServiceProvider передаёт его в ApiClient::create(globalRateLimiter: ...).
  • PHPDoc фасада Max синхронизирован с ядром v1.0.6: addChatAdmin(..., ?int $marker = null).

Изменение (BC)

  • Алиас middleware логирования переименован max_bot.log → max.log (единый нейминг с max.webapp/max.csp).
    Потребителям, использовавшим max_bot.log в middleware роутов, нужно обновить роуты на max.log. Класс
    LogMaxRequestsMiddleware и конфиг/MAX_LOGGING_* не менялись.

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

  • README.md (Требования ^1.0.6, таблица env MAX_GLOBAL_RATE_LIMIT_*, сигнатуры фасада), AGENTS.md (constraints,
    факт 30 rps, global_rate_limit.*) и .env.example синхронизированы с ядром v1.0.6 и новым алиасом max.log.
  • UPGRADE_PLAN.md обновлён (состояние, история прецедентов v1.0.6).

Затронутые сценарии

  • Ответ на callback без обновления сообщения (кнопка обработана, меню не меняется): sendAnswer теперь работает
    (200 вместо 400 Empty request body) — ядро, правки в адаптере не требовались.
  • Чтение администраторов/участников на чатах со старыми правами: больше не падает с InvalidResponseException.
  • Интенсивная работа с API: глобальный предохранитель 30 rps защищает от rate limit независимо от числа диалогов.

Качество

  • PHP 8.4, PSR-12, PHPStan level max — 0 ошибок.
  • PHPUnit зелёные (140 тестов / 314 assertions); покрытие строк ≥95%.
  • composer audit — без уязвимостей.