What's Changed
- Typing/mypy fix errors by @begezyan in #127
- Сваггер на 17.06.2026 by @K1rL3s in #129
- feat: hide_link - превью-ссылка через ShareAttachment by @biradrags in #132
- Алиас
MediaAttachment.file_idкmedia_idby @K1rL3s in #135 - Запуск тестов на минимальных и максимальных версиях зависимостей by @K1rL3s in #134
- Исправил
BgManager._loadby @K1rL3s in #138 platform-api2и сертификат Минцифры by @K1rL3s in #137ConfirmButton- кнопка с двойным подтверждением by @K1rL3s in #130- Добавил
OpenAppButtonвKeyboardBuilderby @K1rL3s in #139 - feat: SyncFilter - синхронная функция как фильтр by @biradrags in #131
- Фикс пустого
MessageCreated.messageby @K1rL3s in #140 - Генерация слопа by @K1rL3s in #142
- add payload in dialogs WebApp by @cwerti in #141
- Поддержка
*filtersпри регистрации обработчика by @K1rL3s in #143 - Щедрый фикс всех линтеров от курсорыча, куклода и кукодекса by @tsk8r in #145
- Умная нейрослоп задержка загрузки файлов by @K1rL3s in #144
- Сваггер на 10.07.2026 by @K1rL3s in #148
- feat: CallbackAnswerMiddleware - авто-ответ на колбэк by @biradrags in #133
- Перенос апдейтов в типы by @K1rL3s in #149
- Чистка перед релизом by @K1rL3s in #155
New Contributors
Нейро release notes
Главное в релизе: переход на platform-api2.max.ru с сертификатом Минцифры, умная загрузка медиа вместо фиксированной паузы, переезд апдейтов в maxo.types и несколько портов удобных вещей из aiogram
Критические изменения
- Апдейты переехали из
maxo.routing.updatesвmaxo.types. Старые импорты продолжают работать, но кидаютDeprecationWarning. Обновите импорты наfrom maxo.types import MessageCreated, MessageCallback, ...
by @K1rL3s in #149 - Фильтры при регистрации обработчика стали строго позиционными (
*filters). Вызов@router.message_created(filter=MyFilter())больше не работает - пишите@router.message_created(MyFilter()). Зато теперь можно передать несколько фильтров сразу, они склеиваются поИ
by @K1rL3s in #143 - Базовый URL сменился на
https://platform-api2.max.ru/, аMaxApiClientтеперь ходит в апи с сертификатом Минцифры (сертификат вшит в пакет)
by @K1rL3s in #137 - Удалён нерабочий
maxo.types.chat_button.ChatButton
by @K1rL3s in #148 GET /chatsдоживает последние дни. С июня 2026 апи перестаёт отдавать список чатов бота; собирайтеchat_idиз событийbot_added/bot_startedи храните у себя. Подробности - в docstringGetChats
by @K1rL3s in #148
Новое
- Умная загрузка файлов. Вместо фиксированной паузы
0.5секунды после загрузки вложений появилсяUploadConfigс режимамиAUTO,SINGLEиRESUMABLE. Большие файлы льются чанками и не читаются в память целиком, задержка перед отправкой оценивается по типу и размеру файла, а ошибкаattachment.not.readyретраится с backoff черезAttachmentNotReadyRetryMiddleware. Настраивается черезBot(upload_config=...).
Closes #10
by @K1rL3s in #144 CallbackAnswerMiddleware- автоматический ответ на колбэк до или после хендлера. Механизма flags в maxo нет, поэтому конфигурация идёт через мутабельныйCallbackAnswerвctx: объявите параметрcallback_answer: CallbackAnswerв хендлере и меняйте поведение на лету.
Closes #67
by @biradrags in #133SyncFilter- синхронная функция или лямбда в качестве фильтра, с флагамиrun_in_thread(для блокирующих предикатов) иexceptions_as_false.
Closes #66
by @biradrags in #131hide_link- Max-аналог одноимённого хелпера из aiogram. В отличие от aiogram возвращает не строку для вставки в текст, аShareAttachmentRequest, который кладётся вattachments.
Closes #65
by @biradrags in #132ConfirmButton- кнопка с двойным подтверждением для диалогов, без отдельного окна под подтверждение. Состояние не хранится в dialog data, поэтому между переключениями окон кнопка сбрасывается в исходный вид
by @K1rL3s in #130KeyboardBuilder.add_open_app- шорткат дляOpenAppButton
by @K1rL3s in #139payloadу WebApp в диалогах
by @cwerti in #141MessageCallback.answerкакcallback_answer, а также алиасы для привычек из aiogram:Callback.dataрядом сpayload,MediaAttachment.file_idкак алиас кmedia_id
by @K1rL3s in #135- Типизированные сетевые ошибки:
MaxBotNetworkErrorиMaxBotTimeoutError- транспортные ошибкиaiohttpиunihttpбольше не протекают наружу как есть
Исправления
- Фикс загрузки
MessageCreatedс пустымmessage- ломалось на голосовых сообщениях
by @K1rL3s in #140 - Фикс
BgManager._load: для диалогов нельзя использоватьbot.get_members, да и вызывался он неправильно
by @K1rL3s in #138 ChatsIteratorиChatMembersIteratorбольше не зацикливаются:marker=Noneозначает последнюю страницу, а не запрос первойKeyboardBuilder.add()больше не содержит мёртвой закомментированной валидацииmaxo.utils.callback_answerне тянет за собой deprecated-шим и не кидает чужойDeprecationWarning- Исправлено описание
disable_link_preview: превью отключается приtrue, а не приfalse
Внутреннее, CI и типизация
- Обновление типов, методов, енумов и апдейтов по сваггеру на 17.06.2026 и 10.07.2026.
SetAdminsстал алиасом кPostAdmins
by @K1rL3s in #129, #148 - Починены все ошибки
mypyвsrc/maxo,testsиexamples, плюс конфигиcodespell/slotscheck/bandit
by @tsk8r in #145 - Аннотации типов в тестах
by @begezyan in #127 - Тесты гоняются на минимальных и максимальных версиях зависимостей
by @K1rL3s in #134 - Скиллы для ИИ-агентов
by @K1rL3s in #142
Full Changelog: v0.7.0...v0.8.0