Релизы

Заметки о релизах Autumn и ключевых этапах развития фреймворка.

Посмотрите, как Autumn развивается от релиза к релизу — от изменений в ядре до новых возможностей.

v0.1.8
17 августа 2026

Что изменилось в этом релизе

  • HTTPException теперь возвращает более чистый payload ошибки с code, details, request_id и timestamp
  • Ошибки валидации теперь возвращают структурированные fields с source, field, input и error для body- и query-ошибок
  • Доменные ошибки могут переопределять стандартное имя HTTP-статуса через собственный code, например INVALID_OR_EXPIRED_CHALLENGE
  • Неожиданные внутренние exception теперь печатают полный traceback в консоль, а ожидаемые HTTPException не шумят в выводе
  • Контроллеры и сервисы теперь поддерживают dependency injection через атрибуты класса, поэтому классы можно писать без конструктора
  • Attribute injection использует те же правила разрешения зависимостей, что и constructor injection, включая union-зависимости и окружения @only
  • Autumn теперь возвращает 405 Method Not Allowed с заголовком Allow, если path маршрута существует, но запрошенный HTTP-метод не зарегистрирован
v0.1.7
16 августа 2026

Что изменилось в этом релизе

  • ApplicationConfiguration.environment стал единственным источником окружения приложения; параметр environment удалён из конструктора Autumn(...)
  • Окружение по умолчанию изменено на Environment.LOCAL, чтобы локальная разработка не требовала ручной настройки
  • WebUIConfiguration.allowed_on теперь по умолчанию включает LOCAL и DEVELOPMENT, поэтому встроенная документация доступна локально
  • @serializable теперь генерирует __init__ для классов без собственного конструктора по class-level annotations
  • Сгенерированный @serializable constructor поддерживает обязательные поля, дефолтные значения, Public[...] и Private[...]
  • OpenAPI-схема для @serializable больше не помечает поля с дефолтными значениями как обязательные
v0.1.6
15 августа 2026

Что изменилось в этом релизе

  • Добавлен autumn.resources.Resources — singleton-корень ресурсов для статических файлов, JSON/YAML-данных и безопасных file responses внутри заданной директории
  • Добавлены ResourceType и единый API Resources(...).read(..., ResourceType.TEXT | ResourceType.BYTES | ResourceType.DATA)
  • Добавлена request-scoped локализация через I18n, Locale и LocalizationConfiguration; локаль выбирается из Accept-Language, а сообщения загружаются из .json, .yaml или .yml
  • Добавлен I18n.plural(...) с дефолтным поведением one/many и кастомными plural rules через LocalizationConfiguration.plural_rules
  • Для отсутствующих файлов локализации добавлен fallback на сам ключ перевода и warning в консоль
  • Добавлены environment-aware union-зависимости для @only: зависимости вида MockGateway | LiveGateway выбирают провайдер, разрешённый в текущем окружении
  • Autumn теперь отклоняет union-зависимости с пересекающимися окружениями, чтобы выбор провайдера не был неоднозначным
  • Добавлены cross-environment warning'и для @only: Autumn предупреждает, если приложение стартует в одном окружении, но DI-граф сломается в другом
  • Улучшен HTTPException: добавлены request_id, meta и возможность передать кастомный body
  • HTTP-ответы теперь получают заголовок X-Request-ID: значение берётся из X-Request-ID, X-Correlation-ID или генерируется автоматически
v0.1.5
12 августа 2026

Что изменилось в этом релизе

  • Добавлен модуль autumn.security с Principal, SecurityConfiguration, схемами APIKey и JWTBearer, а также декораторами @authenticated, @public, @roles, @permissions, @requires и @policy
  • Авторизация интегрирована с DI: Principal доступен в контроллерах и policy, а правила доступа могут использовать request-, path- и query-параметры вместе с сервисами приложения
  • Добавлен явный discovery модулей и пакетов через Autumn(discover = ...): указанный пакет загружает все Python-модули и вложенные пакеты внутри него
  • Добавлен стандартный лимит тела запроса в 1 МБ, настраиваемый через ApplicationConfiguration.max_request_body_bytes; слишком большой запрос получает 413 Payload Too Large
  • Добавлен FileResponse.from_root(...), который удерживает выбранные пользователем файлы внутри разрешённой директории и защищает от path traversal и выхода через символические ссылки
  • Добавлена строгая валидация заголовков ответа и публичное исключение InvalidHeaderError для защиты от некорректных заголовков и response splitting
  • Исполняемое разрешение аннотаций в @serializable заменено ограниченным AST allowlist
  • В production необработанные исключения теперь возвращают обобщённый ответ Internal Server Error без раскрытия внутренних деталей
  • Планы выполнения маршрутов компилируются заранее, а композиция middleware кешируется для каждой пары «маршрут — метод»; неизменяемые метаданные и байты ответа кодируются один раз
  • Динамический роутинг ускорен индексами статических префиксов
  • В development- и CI-проверки зависимостей добавлен pip-audit, минимальная безопасная версия click поднята до 8.3.3
v0.1.4
5 июня 2026

Что изменилось в этом релизе

  • Добавлена WebUIConfiguration для настройки доступности Web UI, тем оформления, анимаций листьев и разрешённых окружений
  • Добавлены перечисления Environment и Theme для типобезопасной конфигурации приложения
  • Появился декоратор @only для ограничения контроллеров, сервисов, зависимостей, middleware и hooks определёнными окружениями
  • Компоненты, недоступные в текущем окружении, автоматически исключаются из DI-контейнера, маршрутизации и OpenAPI-документации
  • Добавлена проверка графа зависимостей при запуске приложения для раннего обнаружения зависимостей от отключённых провайдеров
  • Улучшена генерация OpenAPI-схем для Pydantic-моделей и классов, помеченных через @serializable
  • Добавлен анализ возвращаемых значений JSONResponse, пользовательских моделей, dict и list при построении OpenAPI-документации
  • Добавлена автоматическая документация HTTP-ошибок на основе raise HTTPException(...)
  • Добавлена поддержка нескольких вариантов ответа через OpenAPI oneOf и улучшена работа с пользовательскими Response-классами
  • Обновлён интерфейс документации: исправлено отображение листьев, добавлены эффекты прозрачности и blur, улучшена обработка длинных названий в sidebar
v0.1.1
17 апреля 2026

Что изменилось в этом релизе

  • Снижен overhead на горячем пути HTTP-запроса
  • Контейнер зависимостей активнее использует кеши и выполняет меньше повторной работы
  • Быстрее стали вызовы controller handlers и внутренний runtime pipeline
  • Улучшены роутинг и выбор middleware на горячем пути
  • Ускорены JSON-ответы и обработка тела запроса
  • dict и list теперь можно возвращать из handler'ов напрямую с автоматической JSON-оберткой
  • Добавлен @serializable для явной сериализации пользовательских классов
  • Появились Public[T] и Private[T] для разделения публичных и внутренних полей сериализуемого класса
  • OpenAPI теперь лучше описывает ответы для пользовательских сериализуемых объектов
  • Добавлены in-controller middleware methods: @middleware, @middleware.before и @middleware.after
v0.1.0
14 апреля 2026

Что изменилось в этом релизе

  • Базовая поддержка маршрутизации и контроллеров
  • Контейнер внедрения зависимостей
  • Декларативная конфигурация
  • Автоматически создаваемая OpenAPI-документация и граф зависимостей
  • Интеграция с Uvicorn через ASGI