v1.16.0 0.16.8

low risk

astral-sh/ruffSep 14, 2026 → Sep 16, 20262 days between releases

What's New

Newer release is a different product (Ruff) with Python linting features.

New Features

  • Support for PEP-728 TypedDict class keywords
  • Conditional assignment support for __lazy_modules__ configuration
  • Enhanced flake8-type-checking to prefer lazy imports on Python 3.15+
  • Improved pyupgrade to handle TypeVarTuple and ParamSpec bounds/constraints

Improvements

  • Recognize quoted types in typing.TypeForm
  • Recognize parent_mode argument for ruff and flake8-use-pathlib
  • Detect literal \Z in pytest.raises() match patterns (RUF043)
  • Add extend-banned-api configuration for flake8-tidy-imports

Bug Fixes

  • Visit functional TypedDict keyword arguments correctly
  • Fixed flake8-simplify to preserve operand order
  • Fixed flake8-simplify to detect nested async with blocks
  • Fixed pyupgrade to preserve required parentheses in multiline fixes
  • Fixed pyupgrade to skip conversions with bounds/constraints

Upgrade Notes

The newer release describes a Python linter (Ruff), while the older release describes a browser automation tool. Ensure you are installing the correct package. New configuration options include __lazy_modules__ and extend-banned-api.

The Two Releases

v1.16.0

v1.16.0 — Stop claiming a location you do not have

Sep 14, 2026· 1 month ago

This release makes browser connections more honest regarding location and improves Windows cleanup. It adds SOCKS4 and SOCKS5 proxy support and introduces a new endpoint to save authenticated PDFs directly from tabs.

Full release notes
0.16.8

0.16.8

Sep 16, 2026· 1 month ago

Ruff 0.16.8 introduces support for PEP-728 `TypedDict` class keywords and the `__lazy_modules__` configuration. It includes improvements to type checking rules for Python 3.15+, updates to `pyupgrade` to handle modern syntax correctly, and various bug fixes across simplification and upgrade linters.

Full release notes