## Summary
- pin Ruff to 0.15.22 in `mise.toml`
- install the same pinned Ruff version in the shared CI Python setup
action
## Root cause
Ruff 0.16.0 expanded its default lint behavior and began rejecting
generated Python fixtures with unsafe-fix-only B006 and C405 findings.
The daily `canary` BAML Runtime workflow has failed in `tests
(rust-unit)` since Ruff 0.16.0 replaced 0.15.22 on July 24; the last
green daily run installed 0.15.22.
This surfaced while babysitting
[#4266](https://github.com/BoundaryML/baml/pull/4266), which has already
merged.
## Validation
- `mise install pipx:ruff`
- `mise exec -- ruff --version` → `ruff 0.15.22`
- `cargo test -p generators-python --lib` with the repository mise
environment → 169 passed