Skip to content

⚡️ Avoid flattening dependencies for OpenAPI - #16076

Merged
tiangolo merged 1 commit into
masterfrom
agent/openapi-dependency-traversal
Jul 27, 2026
Merged

⚡️ Avoid flattening dependencies for OpenAPI#16076
tiangolo merged 1 commit into
masterfrom
agent/openapi-dependency-traversal

Conversation

@tiangolo

Copy link
Copy Markdown
Member

What changed

  • Traverse each route dependency graph directly while collecting OpenAPI parameters and security dependencies.
  • Preserve dependency order, duplicate skipping, and inherited OAuth scopes without constructing synthetic Dependant trees.
  • Remove the now-unused get_flat_dependant() and _get_security_dependencies() helpers.
  • Make the changed OpenAPI security helper private.

Why

OpenAPI generation only needs selected parameter and security data, but it previously created a complete flattened Dependant tree for every route. Those temporary trees added allocations and traversal overhead without being used for dependency solving.

This builds on the OpenAPI performance and memory baselines added in #16075.

Validation

  • uv run pytest tests -q — 3,288 passed, 17 skipped, 5 xfailed
  • uv run pytest tests/test_dependency_models.py tests/test_security_oauth2_authorization_code_bearer_scopes_openapi.py tests/test_security_oauth2_authorization_code_bearer_scopes_openapi_simple.py tests/test_top_level_security_scheme_in_openapi.py tests/test_repeated_dependency_schema.py tests/test_security_scopes_dont_propagate.py -q
  • uv run pytest tests/benchmarks/test_openapi.py tests/memory_benchmarks/test_openapi.py --codspeed -q
  • uv run prek run --files fastapi/dependencies/models.py fastapi/dependencies/utils.py fastapi/openapi/utils.py tests/test_dependency_models.py

Local uncached OpenAPI generation improved from approximately 156 ms to 149–154 ms. CodSpeed CI will provide the instrumented performance and memory comparison.

AI Disclaimer

This PR was created with the help of OpenAI Codex, powered by GPT-5.6-sol. Reviewed by hand.

@codspeed-hq

codspeed-hq Bot commented Jul 27, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 24 untouched benchmarks


Comparing agent/openapi-dependency-traversal (b8fe0f9) with master (3d3c691)1

Open in CodSpeed

Footnotes

  1. No successful run was found on master (87095aa) during the generation of this report, so 3d3c691 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report.

@borlafu

borlafu commented Aug 5, 2026

Copy link
Copy Markdown

This PR removes get_flat_dependant which is not marked as private (e.g. _ prefix). See some linked issues.

@YuriiMotov

Copy link
Copy Markdown
Member

This PR removes get_flat_dependant which is not marked as private (e.g. _ prefix). See some linked issues.

Sebastian mentioned several times that anything that is not documented should be considered internal.
If you'd like to see some internal functionality as public API for integrations, please open feature request discussion

c0ffee0wl added a commit to c0ffee0wl/claude-litellm that referenced this pull request Aug 9, 2026
…h-loops on 0.141.x

fastapi 0.140.7 removed the private get_flat_dependant helper
(fastapi/fastapi#16076) that litellm >=1.95.0's management_v1 endpoints
import at proxy startup. When litellm 1.95.0 aged past the 1-week uv
cooldown (2026-08-09), uv tool install --upgrade floated fastapi to
0.141.1 in the same resolution and the proxy started dying on import in
~650ms; after 5 restarts systemd latches start-limit-hit
(BerriAI/litellm#35763). litellm's own bound (fastapi>=0.136.3,<1.0)
does not exclude the breakage, and the upstream code fix (PR #35773,
get_flat_params) merged only into staging on 2026-08-09 — the 1.95.1
and 1.96.0 wheels shipped the same day still carry the broken import
(verified), and any fixed release waits its own week in the cooldown.

LITELLM_FASTAPI_GUARD='fastapi<0.140.7' is passed via --with to both
Phase 4a uv tool install paths; resolution verified to pick 0.140.6,
and litellm 1.95.0 boots cleanly with it (repro + fix tested against
the repo litellm-config.yaml). Drop the guard once a release containing
merge ecba48d has aged in.

Also: restart_user_service_if_stale now runs `systemctl --user
reset-failed` before the restart, so a crash-looped start-limit-hit
unit recovers deterministically on the next update run instead of
relying on the burst window having expired.
736-c41-2c1-e464fc974 added a commit to Swiss-Armed-Forces/Loom that referenced this pull request Aug 16, 2026
This MR contains the following updates:

| Package | Type | Update | Change | OpenSSF |
|---|---|---|---|---|
| [celery-types](https://github.com/sbdchd/celery-types) | dependencies | minor | `0.24.0` → `0.26.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/sbdchd/celery-types/badge)](https://securityscorecards.dev/viewer/?uri=github.com/sbdchd/celery-types) |
| [elasticsearch](https://github.com/elastic/elasticsearch-py) | dependencies | minor | `9.2.1` → `9.4.1` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/elastic/elasticsearch-py/badge)](https://securityscorecards.dev/viewer/?uri=github.com/elastic/elasticsearch-py) |
| [fastapi](https://github.com/fastapi/fastapi) ([changelog](https://fastapi.tiangolo.com/release-notes/)) | dependencies | minor | `0.128.8` → `0.141.1` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/fastapi/fastapi/badge)](https://securityscorecards.dev/viewer/?uri=github.com/fastapi/fastapi) |
| [fastapi](https://github.com/fastapi/fastapi) ([changelog](https://fastapi.tiangolo.com/release-notes/)) | dependencies | minor | `^0.128.0` → `^0.141.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/fastapi/fastapi/badge)](https://securityscorecards.dev/viewer/?uri=github.com/fastapi/fastapi) |
| [gotenberg-client](https://github.com/stumpylog/gotenberg-client) ([changelog](https://github.com/stumpylog/gotenberg-client/blob/main/CHANGELOG.md)) | dependencies | minor | `^0.13.1` → `^0.14.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/stumpylog/gotenberg-client/badge)](https://securityscorecards.dev/viewer/?uri=github.com/stumpylog/gotenberg-client) |
| [openai](https://github.com/openai/openai-python) | dependencies | minor | `1.72.0` → `1.109.1` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/openai/openai-python/badge)](https://securityscorecards.dev/viewer/?uri=github.com/openai/openai-python) |
| [prometheus-client](https://github.com/prometheus/client_python) | dependencies | minor | `^0.24.1` → `^0.26.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/prometheus/client_python/badge)](https://securityscorecards.dev/viewer/?uri=github.com/prometheus/client_python) |
| [redis](https://github.com/redis/redis-py) ([changelog](https://github.com/redis/redis-py/releases)) | dependencies | minor | `5.2.1` → `5.3.1` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/redis/redis-py/badge)](https://securityscorecards.dev/viewer/?uri=github.com/redis/redis-py) |
| [requests](https://github.com/psf/requests) ([changelog](https://github.com/psf/requests/blob/master/HISTORY.md)) | dependencies | minor | `2.32.5` → `2.34.2` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/psf/requests/badge)](https://securityscorecards.dev/viewer/?uri=github.com/psf/requests) |
| [scikit-learn](https://github.com/scikit-learn/scikit-learn) ([changelog](https://scikit-learn.org/stable/whats_new)) | dependencies | minor | `1.8.0` → `1.9.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/scikit-learn/scikit-learn/badge)](https://securityscorecards.dev/viewer/?uri=github.com/scikit-learn/scikit-learn) |
| [scipy](https://github.com/scipy/scipy) | dependencies | minor | `1.17.1` → `1.18.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/scipy/scipy/badge)](https://securityscorecards.dev/viewer/?uri=github.com/scipy/scipy) |
| [types-requests](https://github.com/python/typeshed) ([changelog](https://github.com/typeshed-internal/stub_uploader/blob/main/data/changelogs/requests.md)) | dependencies | minor | `2.32.4.20260324` → `2.33.0.20260712` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/python/typeshed/badge)](https://securityscorecards.dev/viewer/?uri=github.com/python/typeshed) |
| [uvicorn](https://github.com/Kludex/uvicorn) ([changelog](https://uvicorn.dev/release-notes)) | dependencies | minor | `^0.40.0` → `^0.52.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/Kludex/uvicorn/badge)](https://securityscorecards.dev/viewer/?uri=github.com/Kludex/uvicorn) |
| [wand](http://wand-py.org/) ([source](https://github.com/emcconville/wand), [changelog](https://docs.wand-py.org/en/latest/changes.html)) | dependencies | minor | `^0.6.13` → `^0.7.0` | [![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/emcconville/wand/badge)](https://securityscorecards.dev/viewer/?uri=github.com/emcconville/wand) |

---

### Release Notes

<details>
<summary>elastic/elasticsearch-py (elasticsearch)</summary>

### [`v9.4.1`](https://github.com/elastic/elasticsearch-py/releases/tag/v9.4.1): 9.4.1

[Compare Source](https://github.com/elastic/elasticsearch-py/compare/v9.4.0...v9.4.1)

Enhancements

- Optional backoff delay strategy for retries (Fixes [#&#8203;197](https://github.com/elastic/elasticsearch-py/issues/197)) ([#&#8203;3430](https://github.com/elastic/elasticsearch-py/pull/3430))
- Sanitize index names in ES|QL query builder (Fixes [#&#8203;3422](https://github.com/elastic/elasticsearch-py/issues/3422)) ([#&#8203;3425](https://github.com/elastic/elasticsearch-py/pull/3425))

DSL

- Added `flat_index_threshold` attribute to `DenseVectorIndexOptions` type
- Added `field` attribute to `InnerHits` type
- Added `embedding` attribute to `QueryVectorBuilder` type

### [`v9.4.0`](https://github.com/elastic/elasticsearch-py/releases/tag/v9.4.0): 9.4.0

[Compare Source](https://github.com/elastic/elasticsearch-py/compare/v9.3.0...v9.4.0)

#### Enhancements

- ES|QL updates for 9.4 and Serverless ([#&#8203;3384](https://github.com/elastic/elasticsearch-py/pull/3384))
- Added `server_mode` parameter to the client’s constructor

#### API

- Added `inference.embedding` API
- Added `inference.put_fireworksai` API
- Added `project.create_many_routing`, `project.create_routing`, `project.delete_routing`, `project.get_many_routing` and `project.get_routing` APIs
- Added `security.clone_api_key` API
- Added `group_by` parameter to `reindex_rethrottle` API
- Added `return_intermediate_results` parameter to `async_search.get` API
- Added `project_routing` and `time_zone` parameters to `esql.async_query` and `esql.query` APIs
- Removed `master_timeout` parameter from `searchable_snapshots.cache_stats` API
- Added `name` parameter to `streams.logs_enable` and `streams.logs_disable` APIs
- Added `should_parse_recursively` parameter to `text_structure.find_field_structure`, `text_structure.find_message_structure` and `text_structure.find_structure` APIs

#### DSL

- Data stream support ([#&#8203;3413](https://github.com/elastic/elasticsearch-py/pull/3413))
- Handle document attributes that have a name collision with a method ([#&#8203;3364](https://github.com/elastic/elasticsearch-py/issues/3364))
- Added `es_name` parameter to `mapped_field` function
- Added `_es_name` parameter to all subclasses of `Field`
- Added `script` attribute to `MultiTermLookup` type
- Added `lookup` attribute to `QueryVectorBuilder` type

### [`v9.3.0`](https://github.com/elastic/elasticsearch-py/releases/tag/v9.3.0): 9.3.0

[Compare Source](https://github.com/elastic/elasticsearch-py/compare/v9.2.1...v9.3.0)

##### Enhancements

- Add `pack_dense_vector` helper function to pack dense vectors for efficient uploading ([#&#8203;3219](https://github.com/elastic/elasticsearch-py/pull/3219))
- New and updated ES|QL functions in the ES|QL query builder for 9.3 and Serverless ([#&#8203;3266](https://github.com/elastic/elasticsearch-py/pull/3266))

##### API

- Added `cat.circuit_breaker` API
- Added experimental `esql.get_view`, `esql.put_view` and `esql.delete_view` APIs
- Added experimental `indices.get_sample_configuration`, `indices.put_sample_configuration`, `indices.delete_sample_configuration`, `indices.get_all_sample_configuration`, `indices.get_sample`, `indices.get_sample_stats` APIs
- Added `inference.put_groq`, `inference.put_openshift_ai`, `inference.put_nvidia` APIs
- Added `downsampling_method` argument to `indices.put_data_lifecycle` API
- Added `return_documents` and `top_n` arguments to `inference.rerank` API
- Added `close_job` argument to `ml.stop_datafeed` API
- Added `certificate_identity` to `security.create_cross_cluster_api_key` and `security.update_cross_cluster_api_key` APIs

##### Serverless-specific

- Added `project_routing` argument to `project.tags` API

##### DSL

- Added `NumpyDenseVector` field, with support for dense vectors based on numpy arrays ([#&#8203;3218](https://github.com/elastic/elasticsearch-py/pull/3218))
- Added `ExponentialHistogram` field
- Added `time_series_metric` argument to `Histogram` field
- Added `on_disk_rescore` argument from `DenseVectorIndexOptions` type
- Added `slices` argument to `UpdateByQueryResponse` type

</details>

<details>
<summary>fastapi/fastapi (fastapi)</summary>

### [`v0.141.1`](https://github.com/fastapi/fastapi/releases/tag/0.141.1)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.141.0...0.141.1)

##### Fixes

- 🐛 Fix support for background tasks and headers from dependencies in `app.frontend()`. MR [#&#8203;16105](https://github.com/fastapi/fastapi/pull/16105) by [@&#8203;tiangolo](https://github.com/tiangolo).

##### Docs

- 📝 Document `FASTAPI_ENV` in FastAPI CLI guide. MR [#&#8203;16104](https://github.com/fastapi/fastapi/pull/16104) by [@&#8203;tiangolo](https://github.com/tiangolo).

### [`v0.141.0`](https://github.com/fastapi/fastapi/releases/tag/0.141.0)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.140.13...0.141.0)

##### Features

- ✨ Add `app.frontend(check_dir="auto")`, to make local development more convenient with `fastapi dev`. MR [#&#8203;16102](https://github.com/fastapi/fastapi/pull/16102) by [@&#8203;tiangolo](https://github.com/tiangolo).

### [`v0.140.13`](https://github.com/fastapi/fastapi/releases/tag/0.140.13)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.140.12...0.140.13)

##### Fixes

- 🐛 Fix `status_code` being ignored for SSE and JSONL streaming endpoints. MR [#&#8203;15937](https://github.com/fastapi/fastapi/pull/15937) by [@&#8203;SAURABHSALVE](https://github.com/SAURABHSALVE).

##### Docs

- 📝 Fix `format_sse_event` docstring rendering of `\n\n` terminator. MR [#&#8203;15613](https://github.com/fastapi/fastapi/pull/15613) by [@&#8203;AshNicolus](https://github.com/AshNicolus).
- 📝 Add API reference page for fastapi.sse. MR [#&#8203;15930](https://github.com/fastapi/fastapi/pull/15930) by [@&#8203;SAURABHSALVE](https://github.com/SAURABHSALVE).

### [`v0.140.12`](https://github.com/fastapi/fastapi/releases/tag/0.140.12)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.140.11...0.140.12)

##### Fixes

- 🐛 Fix line splitting in `format_sse_event` to comply with SSE spec. MR [#&#8203;15515](https://github.com/fastapi/fastapi/pull/15515) by [@&#8203;Zawwarsami16](https://github.com/Zawwarsami16).

### [`v0.140.11`](https://github.com/fastapi/fastapi/releases/tag/0.140.11)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.140.10...0.140.11)

##### Fixes

- 🐛 Fix `response_model_*` params ignored for non-generator endpoints with `Iterable[..]` return type. MR [#&#8203;15093](https://github.com/fastapi/fastapi/pull/15093) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).

### [`v0.140.10`](https://github.com/fastapi/fastapi/releases/tag/0.140.10)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.140.9...0.140.10)

##### Fixes

- 🐛 Fix handling sequences with nested Annotated types. MR [#&#8203;14874](https://github.com/fastapi/fastapi/pull/14874) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).

##### Internal

- 🐛 Accept any base test failure as regression. MR [#&#8203;16092](https://github.com/fastapi/fastapi/pull/16092) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🐛 Preserve pytest exit code in regression check. MR [#&#8203;16091](https://github.com/fastapi/fastapi/pull/16091) by [@&#8203;tiangolo](https://github.com/tiangolo).
- ✅ Test MR regressions against base code. MR [#&#8203;16090](https://github.com/fastapi/fastapi/pull/16090) by [@&#8203;tiangolo](https://github.com/tiangolo).

### [`v0.140.9`](https://github.com/fastapi/fastapi/releases/tag/0.140.9)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.140.8...0.140.9)

##### Fixes

- 🐛 Fix `exclude_defaults` not propagated to dict keys and values in `jsonable_encoder`. MR [#&#8203;16043](https://github.com/fastapi/fastapi/pull/16043) by [@&#8203;MBGrao](https://github.com/MBGrao).

##### Internal

- ⬆ Bump gitpython from 3.1.50 to 3.1.54. MR [#&#8203;16047](https://github.com/fastapi/fastapi/pull/16047) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump pymdown-extensions from 10.21.3 to 11.0. MR [#&#8203;16048](https://github.com/fastapi/fastapi/pull/16048) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump pyasn1 from 0.6.3 to 0.6.4. MR [#&#8203;16045](https://github.com/fastapi/fastapi/pull/16045) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).

### [`v0.140.8`](https://github.com/fastapi/fastapi/releases/tag/0.140.8)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.140.7...0.140.8)

##### Fixes

- 🐛 Fix stream item type lost when using `include_router()`. MR [#&#8203;15077](https://github.com/fastapi/fastapi/pull/15077) by [@&#8203;alex-raw](https://github.com/alex-raw).

### [`v0.140.7`](https://github.com/fastapi/fastapi/releases/tag/0.140.7)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.140.6...0.140.7)

##### Refactors

- ⚡️ Avoid flattening dependencies for OpenAPI. MR [#&#8203;16076](https://github.com/fastapi/fastapi/pull/16076) by [@&#8203;tiangolo](https://github.com/tiangolo).

##### Internal

- ⬆️ Upgrade latest-changes to 0.7.1. MR [#&#8203;16077](https://github.com/fastapi/fastapi/pull/16077) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 👷 Add OpenAPI dependency benchmarks. MR [#&#8203;16075](https://github.com/fastapi/fastapi/pull/16075) by [@&#8203;tiangolo](https://github.com/tiangolo).

### [`v0.140.6`](https://github.com/fastapi/fastapi/releases/tag/0.140.6)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.140.5...0.140.6)

##### Refactors

- ⚡️ Avoid flattening dependencies for request parameters, mainly for OpenAPI. MR [#&#8203;16073](https://github.com/fastapi/fastapi/pull/16073) by [@&#8203;tiangolo](https://github.com/tiangolo).

### [`v0.140.5`](https://github.com/fastapi/fastapi/releases/tag/0.140.5)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.140.4...0.140.5)

##### Refactors

- ⚡️ Avoid flattening dependencies for body fields. MR [#&#8203;16071](https://github.com/fastapi/fastapi/pull/16071) by [@&#8203;tiangolo](https://github.com/tiangolo).

### [`v0.140.4`](https://github.com/fastapi/fastapi/releases/tag/0.140.4)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.140.3...0.140.4)

##### Refactors

- ⚡️ Skip unused dependency repeat bookkeeping. MR [#&#8203;16069](https://github.com/fastapi/fastapi/pull/16069) by [@&#8203;tiangolo](https://github.com/tiangolo).

### [`v0.140.3`](https://github.com/fastapi/fastapi/releases/tag/0.140.3)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.140.2...0.140.3)

##### Refactors

- ⚡️ Avoid repeated dependency flattening in OpenAPI. MR [#&#8203;16067](https://github.com/fastapi/fastapi/pull/16067) by [@&#8203;tiangolo](https://github.com/tiangolo).

### [`v0.140.2`](https://github.com/fastapi/fastapi/releases/tag/0.140.2)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.140.1...0.140.2)

##### Refactors

- ⚡️ Stop retaining flat dependency trees. MR [#&#8203;16065](https://github.com/fastapi/fastapi/pull/16065) by [@&#8203;tiangolo](https://github.com/tiangolo).

##### Internal

- 👷 Add new memory benchmark. MR [#&#8203;16064](https://github.com/fastapi/fastapi/pull/16064) by [@&#8203;tiangolo](https://github.com/tiangolo).

### [`v0.140.1`](https://github.com/fastapi/fastapi/releases/tag/0.140.1)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.140.0...0.140.1)

##### Refactors

- ♻️ Update the lru\_cache limit for dependencies to account for large apps. MR [#&#8203;16062](https://github.com/fastapi/fastapi/pull/16062) by [@&#8203;tiangolo](https://github.com/tiangolo).

### [`v0.140.0`](https://github.com/fastapi/fastapi/releases/tag/0.140.0)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.139.2...0.140.0)

##### Refactors

- ⚡️ Reduce memory usage in dependencies. MR [#&#8203;16049](https://github.com/fastapi/fastapi/pull/16049) by [@&#8203;tiangolo](https://github.com/tiangolo).

##### Docs

- 📝 Fix links in docs. MR [#&#8203;15967](https://github.com/fastapi/fastapi/pull/15967) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).
- 📝 Add Library Skills documentation. MR [#&#8203;16041](https://github.com/fastapi/fastapi/pull/16041) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 📝 Update docs to use uv projects by default. MR [#&#8203;16032](https://github.com/fastapi/fastapi/pull/16032) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 📝 Restructure FastAPI People and related pages. MR [#&#8203;16015](https://github.com/fastapi/fastapi/pull/16015) by [@&#8203;tiangolo](https://github.com/tiangolo).

##### Internal

- 👷 Add CI memory benchmark. MR [#&#8203;16046](https://github.com/fastapi/fastapi/pull/16046) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 👥 Update FastAPI People - Sponsors. MR [#&#8203;16027](https://github.com/fastapi/fastapi/pull/16027) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔥 Remove now-obsolete scripts to generate data for FastAPI People. MR [#&#8203;16016](https://github.com/fastapi/fastapi/pull/16016) by [@&#8203;tiangolo](https://github.com/tiangolo).

### [`v0.139.2`](https://github.com/fastapi/fastapi/releases/tag/0.139.2)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.139.1...0.139.2)

##### Fixes

- 🐛 Refactor router route building to make it thread-safe, mainly relevant for tests running in parallel threads (uncommon). MR [#&#8203;16013](https://github.com/fastapi/fastapi/pull/16013) by [@&#8203;tiangolo](https://github.com/tiangolo).

### [`v0.139.1`](https://github.com/fastapi/fastapi/releases/tag/0.139.1)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.139.0...0.139.1)

##### Fixes

- 🐛 Fix frontend fallback support for doted paths like `/users/john.doe`. MR [#&#8203;16011](https://github.com/fastapi/fastapi/pull/16011) by [@&#8203;tiangolo](https://github.com/tiangolo).

##### Docs

- 📝 Fix topic repository list not being displayed and `skip_users` not being applied. MR [#&#8203;15995](https://github.com/fastapi/fastapi/pull/15995) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).

##### Translations

- 🌐 Update translations for tr (update-outdated). MR [#&#8203;16005](https://github.com/fastapi/fastapi/pull/16005) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for zh-hant (update-outdated). MR [#&#8203;15996](https://github.com/fastapi/fastapi/pull/15996) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for fr (update-outdated). MR [#&#8203;16006](https://github.com/fastapi/fastapi/pull/16006) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for de (update-outdated). MR [#&#8203;15999](https://github.com/fastapi/fastapi/pull/15999) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ko (update-outdated). MR [#&#8203;16004](https://github.com/fastapi/fastapi/pull/16004) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for zh (update-outdated). MR [#&#8203;16001](https://github.com/fastapi/fastapi/pull/16001) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for uk (update-outdated). MR [#&#8203;16003](https://github.com/fastapi/fastapi/pull/16003) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ja (update-outdated). MR [#&#8203;15998](https://github.com/fastapi/fastapi/pull/15998) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for pt (update-outdated). MR [#&#8203;16000](https://github.com/fastapi/fastapi/pull/16000) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for es (update-outdated). MR [#&#8203;15997](https://github.com/fastapi/fastapi/pull/15997) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ru (update-outdated). MR [#&#8203;16002](https://github.com/fastapi/fastapi/pull/16002) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for hi (add-missing). MR [#&#8203;15990](https://github.com/fastapi/fastapi/pull/15990) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for hi (add-missing). MR [#&#8203;15925](https://github.com/fastapi/fastapi/pull/15925) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for hi (add-missing). MR [#&#8203;15797](https://github.com/fastapi/fastapi/pull/15797) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update `llm-prompt.md` for Hindi. MR [#&#8203;15810](https://github.com/fastapi/fastapi/pull/15810) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).
- 🌐 Fix language-specific translation prompt for Russian language. MR [#&#8203;15924](https://github.com/fastapi/fastapi/pull/15924) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).

##### Internal

- ⬆ Bump the python-packages group across 1 directory with 6 updates. MR [#&#8203;15981](https://github.com/fastapi/fastapi/pull/15981) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump typing-extensions from 4.15.0 to 4.16.0. MR [#&#8203;15982](https://github.com/fastapi/fastapi/pull/15982) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump the github-actions group across 1 directory with 4 updates. MR [#&#8203;15983](https://github.com/fastapi/fastapi/pull/15983) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump pre-commit hooks. MR [#&#8203;15985](https://github.com/fastapi/fastapi/pull/15985) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 👷 Use `FASTAPI_LATEST_CHANGES` token in `bump-pre-commit-hooks` workflow. MR [#&#8203;15984](https://github.com/fastapi/fastapi/pull/15984) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).
- 👷 Add GH workflow to bump pre-commit hook versions. MR [#&#8203;15873](https://github.com/fastapi/fastapi/pull/15873) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).
- 🔧 Set Dependabot schedule interval to "monthly". MR [#&#8203;15874](https://github.com/fastapi/fastapi/pull/15874) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).
- ⬆ Bump CodSpeedHQ/action from 4.17.6 to 4.18.1 in the github-actions group. MR [#&#8203;15950](https://github.com/fastapi/fastapi/pull/15950) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump the python-packages group with 8 updates. MR [#&#8203;15952](https://github.com/fastapi/fastapi/pull/15952) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- 🔧 Update sponsors: add TutorCruncher. MR [#&#8203;15947](https://github.com/fastapi/fastapi/pull/15947) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 👷 Fix notify translations checkout target. MR [#&#8203;15933](https://github.com/fastapi/fastapi/pull/15933) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 👷 Fix latest-changes checkout target. MR [#&#8203;15932](https://github.com/fastapi/fastapi/pull/15932) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔧 Update sponsors: remove RapidProxy. MR [#&#8203;15929](https://github.com/fastapi/fastapi/pull/15929) by [@&#8203;tiangolo](https://github.com/tiangolo).
- ⬆️ Update issue-manager to 0.8.1. MR [#&#8203;15928](https://github.com/fastapi/fastapi/pull/15928) by [@&#8203;tiangolo](https://github.com/tiangolo).
- ⬆️ Update latest-changes to 0.6.1. MR [#&#8203;15926](https://github.com/fastapi/fastapi/pull/15926) by [@&#8203;tiangolo](https://github.com/tiangolo).

### [`v0.139.0`](https://github.com/fastapi/fastapi/releases/tag/0.139.0)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.138.2...0.139.0)

##### Features

- ✨ Support dependencies in `app.frontend()`, e.g. for automatic cookie authentication for the frontend. MR [#&#8203;15908](https://github.com/fastapi/fastapi/pull/15908) by [@&#8203;tiangolo](https://github.com/tiangolo).

##### Translations

- 🌐 Update translations for fr (update-outdated). MR [#&#8203;15897](https://github.com/fastapi/fastapi/pull/15897) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ja (update-outdated). MR [#&#8203;15895](https://github.com/fastapi/fastapi/pull/15895) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for zh-hant (update-outdated). MR [#&#8203;15896](https://github.com/fastapi/fastapi/pull/15896) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for de (update-outdated). MR [#&#8203;15899](https://github.com/fastapi/fastapi/pull/15899) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for es (update-outdated). MR [#&#8203;15892](https://github.com/fastapi/fastapi/pull/15892) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for tr (update-outdated). MR [#&#8203;15891](https://github.com/fastapi/fastapi/pull/15891) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for pt (update-outdated). MR [#&#8203;15893](https://github.com/fastapi/fastapi/pull/15893) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for zh (update-outdated). MR [#&#8203;15898](https://github.com/fastapi/fastapi/pull/15898) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for uk (update-outdated). MR [#&#8203;15900](https://github.com/fastapi/fastapi/pull/15900) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ko (update-outdated). MR [#&#8203;15890](https://github.com/fastapi/fastapi/pull/15890) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ru (update-outdated). MR [#&#8203;15894](https://github.com/fastapi/fastapi/pull/15894) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ko (add-missing). MR [#&#8203;15888](https://github.com/fastapi/fastapi/pull/15888) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for es (add-missing). MR [#&#8203;15880](https://github.com/fastapi/fastapi/pull/15880) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for zh-hant (add-missing). MR [#&#8203;15889](https://github.com/fastapi/fastapi/pull/15889) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for pt (add-missing). MR [#&#8203;15883](https://github.com/fastapi/fastapi/pull/15883) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for zh (add-missing). MR [#&#8203;15885](https://github.com/fastapi/fastapi/pull/15885) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ja (add-missing). MR [#&#8203;15882](https://github.com/fastapi/fastapi/pull/15882) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for tr (add-missing). MR [#&#8203;15887](https://github.com/fastapi/fastapi/pull/15887) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for uk (add-missing). MR [#&#8203;15886](https://github.com/fastapi/fastapi/pull/15886) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for fr (add-missing). MR [#&#8203;15881](https://github.com/fastapi/fastapi/pull/15881) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for de (add-missing). MR [#&#8203;15884](https://github.com/fastapi/fastapi/pull/15884) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ru (add-missing). MR [#&#8203;15879](https://github.com/fastapi/fastapi/pull/15879) by [@&#8203;tiangolo](https://github.com/tiangolo).

##### Internal

- 👥 Update FastAPI People - Experts. MR [#&#8203;15909](https://github.com/fastapi/fastapi/pull/15909) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 👥 Update FastAPI GitHub topic repositories. MR [#&#8203;15906](https://github.com/fastapi/fastapi/pull/15906) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 👥 Update FastAPI People - Contributors and Translators. MR [#&#8203;15878](https://github.com/fastapi/fastapi/pull/15878) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 👷 Remove not needed `allow-unsafe-pr-checkout: true`. MR [#&#8203;15876](https://github.com/fastapi/fastapi/pull/15876) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).
- ⬆ Bump the github-actions group with 5 updates. MR [#&#8203;15872](https://github.com/fastapi/fastapi/pull/15872) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump the python-packages group across 1 directory with 10 updates. MR [#&#8203;15870](https://github.com/fastapi/fastapi/pull/15870) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump CodSpeedHQ/action from 4.17.0 to 4.17.5 in the github-actions group. MR [#&#8203;15826](https://github.com/fastapi/fastapi/pull/15826) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).

### [`v0.138.2`](https://github.com/fastapi/fastapi/releases/tag/0.138.2)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.138.1...0.138.2)

##### Refactors

- ♻️ Make `app.frontend()` return 404 for methods other than `GET` or `HEAD` with no static file matches. MR [#&#8203;15863](https://github.com/fastapi/fastapi/pull/15863) by [@&#8203;tiangolo](https://github.com/tiangolo).

##### Internal

- 🔧 Update sponsors: remove Stainless. MR [#&#8203;15862](https://github.com/fastapi/fastapi/pull/15862) by [@&#8203;tiangolo](https://github.com/tiangolo).
- ♻️ Refactor how sponsors data is handled for banners. MR [#&#8203;15852](https://github.com/fastapi/fastapi/pull/15852) by [@&#8203;tiangolo](https://github.com/tiangolo).

### [`v0.138.1`](https://github.com/fastapi/fastapi/releases/tag/0.138.1)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.138.0...0.138.1)

##### Refactors

- ♻️ Refactor Library Skills, make info easier to find for agents. MR [#&#8203;15841](https://github.com/fastapi/fastapi/pull/15841) by [@&#8203;tiangolo](https://github.com/tiangolo).

##### Internal

- 👷 Simplify pull request workflow triggers. MR [#&#8203;15836](https://github.com/fastapi/fastapi/pull/15836) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 👷 Update issue-manager to 0.7.1. MR [#&#8203;15833](https://github.com/fastapi/fastapi/pull/15833) by [@&#8203;tiangolo](https://github.com/tiangolo).
- ⬆️ Update issue-manager to 0.7.0. MR [#&#8203;15831](https://github.com/fastapi/fastapi/pull/15831) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔧 Update sponsors: Add TestMu again. MR [#&#8203;15830](https://github.com/fastapi/fastapi/pull/15830) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔒️ Update zizmor workflow security checks. MR [#&#8203;15820](https://github.com/fastapi/fastapi/pull/15820) by [@&#8203;tiangolo](https://github.com/tiangolo).
- ⬆ Bump pydantic-settings from 2.14.1 to 2.14.2. MR [#&#8203;15799](https://github.com/fastapi/fastapi/pull/15799) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).

### [`v0.138.0`](https://github.com/fastapi/fastapi/releases/tag/0.138.0)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.137.2...0.138.0)

##### Features

- ✨ Add support for `app.frontend("/", directory="dist")` and `router.frontend("/", directory="dist")`. MR [#&#8203;15800](https://github.com/fastapi/fastapi/pull/15800) by [@&#8203;tiangolo](https://github.com/tiangolo).
  - Read the docs: [Frontend](https://fastapi.tiangolo.com/tutorial/frontend/).

##### Docs

- 📝 Fix typo in release notes. MR [#&#8203;15807](https://github.com/fastapi/fastapi/pull/15807) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 📝 Add `app.frontend()` instructions to Agent Library Skill. MR [#&#8203;15805](https://github.com/fastapi/fastapi/pull/15805) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 📝 Update release notes link. MR [#&#8203;15802](https://github.com/fastapi/fastapi/pull/15802) by [@&#8203;tiangolo](https://github.com/tiangolo).
- ✏️ Update white space characters in bigger apps. MR [#&#8203;15801](https://github.com/fastapi/fastapi/pull/15801) by [@&#8203;tiangolo](https://github.com/tiangolo).
- ✏️ Fix grammar, typos, and broken links in docs. MR [#&#8203;15694](https://github.com/fastapi/fastapi/pull/15694) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).

##### Translations

- 🌐 Enable Hindi docs translations. MR [#&#8203;15554](https://github.com/fastapi/fastapi/pull/15554) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).

##### Internal

- 🐛 Fix failing test, update format for raised errors. MR [#&#8203;15804](https://github.com/fastapi/fastapi/pull/15804) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 👷 Fix test-alls-green. MR [#&#8203;15803](https://github.com/fastapi/fastapi/pull/15803) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔧 Enable checking `release-notes.md` for typos. MR [#&#8203;15796](https://github.com/fastapi/fastapi/pull/15796) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).
- 📝 Tweak wording about deploying to FastAPI Cloud. MR [#&#8203;15793](https://github.com/fastapi/fastapi/pull/15793) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔨 Use `gpt-5.5` model in `translate.py`, specify `-chat` to avoid warnings. MR [#&#8203;15792](https://github.com/fastapi/fastapi/pull/15792) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).

### [`v0.137.2`](https://github.com/fastapi/fastapi/releases/tag/0.137.2)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.137.1...0.137.2)

##### Features

- ✨ Add `iter_route_contexts()` for advanced use cases that used to use `router.routes` (e.g. Jupyverse). MR [#&#8203;15785](https://github.com/fastapi/fastapi/pull/15785) by [@&#8203;tiangolo](https://github.com/tiangolo).

##### Translations

- 🌐 Fix broken Markdown in Korean custom response docs. MR [#&#8203;15774](https://github.com/fastapi/fastapi/pull/15774) by [@&#8203;kooqooo](https://github.com/kooqooo).
- 🌐 Update translations for fr (update-outdated). MR [#&#8203;15761](https://github.com/fastapi/fastapi/pull/15761) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for zh-hant (update-outdated). MR [#&#8203;15760](https://github.com/fastapi/fastapi/pull/15760) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for de (update-outdated). MR [#&#8203;15759](https://github.com/fastapi/fastapi/pull/15759) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ko (update-outdated). MR [#&#8203;15757](https://github.com/fastapi/fastapi/pull/15757) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for uk (update-outdated). MR [#&#8203;15756](https://github.com/fastapi/fastapi/pull/15756) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for zh (update-outdated). MR [#&#8203;15755](https://github.com/fastapi/fastapi/pull/15755) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for tr (update-outdated). MR [#&#8203;15754](https://github.com/fastapi/fastapi/pull/15754) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for pt (update-outdated). MR [#&#8203;15753](https://github.com/fastapi/fastapi/pull/15753) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for es (update-outdated). MR [#&#8203;15752](https://github.com/fastapi/fastapi/pull/15752) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ja (update-outdated). MR [#&#8203;15751](https://github.com/fastapi/fastapi/pull/15751) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ru (update-outdated). MR [#&#8203;15758](https://github.com/fastapi/fastapi/pull/15758) by [@&#8203;tiangolo](https://github.com/tiangolo).

##### Internal

- 🔧 Update sponsors: add BairesDev. MR [#&#8203;15787](https://github.com/fastapi/fastapi/pull/15787) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔨 Update sponsors script to simplify previews. MR [#&#8203;15786](https://github.com/fastapi/fastapi/pull/15786) by [@&#8203;tiangolo](https://github.com/tiangolo).
- ⬆ Bump the python-packages group across 1 directory with 7 updates. MR [#&#8203;15777](https://github.com/fastapi/fastapi/pull/15777) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump cryptography from 46.0.7 to 48.0.1. MR [#&#8203;15779](https://github.com/fastapi/fastapi/pull/15779) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump aiohttp from 3.14.0 to 3.14.1. MR [#&#8203;15781](https://github.com/fastapi/fastapi/pull/15781) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump starlette from 1.2.1 to 1.3.1. MR [#&#8203;15780](https://github.com/fastapi/fastapi/pull/15780) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump astral-sh/setup-uv from 8.1.0 to 8.2.0 in the github-actions group. MR [#&#8203;15776](https://github.com/fastapi/fastapi/pull/15776) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump <https://github.com/crate-ci/typos> from v1.47.1 to v1.47.2 in the pre-commit group. MR [#&#8203;15775](https://github.com/fastapi/fastapi/pull/15775) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump python-multipart from 0.0.30 to 0.0.32. MR [#&#8203;15778](https://github.com/fastapi/fastapi/pull/15778) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⏪️ Revert removing scripts, only remove `coverage.sh`. MR [#&#8203;15772](https://github.com/fastapi/fastapi/pull/15772) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔥 Remove unused scripts. MR [#&#8203;15771](https://github.com/fastapi/fastapi/pull/15771) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔧 Add ty configs to check docs sources. MR [#&#8203;15770](https://github.com/fastapi/fastapi/pull/15770) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔧 Add ty configs to check docs sources. MR [#&#8203;15769](https://github.com/fastapi/fastapi/pull/15769) by [@&#8203;tiangolo](https://github.com/tiangolo).

### [`v0.137.1`](https://github.com/fastapi/fastapi/releases/tag/0.137.1)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.137.0...0.137.1)

##### Fixes

- 🚨 Fix typing checks for APIRoute. MR [#&#8203;15765](https://github.com/fastapi/fastapi/pull/15765) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🐛 Fix bug, allow empty path in path operation in prefixless router. MR [#&#8203;15763](https://github.com/fastapi/fastapi/pull/15763) by [@&#8203;tiangolo](https://github.com/tiangolo).

### [`v0.137.0`](https://github.com/fastapi/fastapi/releases/tag/0.137.0)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.136.3...0.137.0)

##### Breaking Changes

- ♻️ Refactor internals to preserve `APIRouter` and `APIRoute` instances. MR [#&#8203;15745](https://github.com/fastapi/fastapi/pull/15745) by [@&#8203;tiangolo](https://github.com/tiangolo).

Unblocks ✨ SO MANY THINGS ✨

Before this, `router.include_router(other_router)` would take each path operation from `other_router` and "clone" it, or recreate it from scratch.

This would mean that in the end there was only one top level router, part of the app.

The way it is structured here is that there are a few additional classes to handle intermediate metadata for router and route inclusion. That way the information of "router X includes Y and Y includes Z" is stored somewhere, without affecting (recreating / clonning) the final route.

##### Non Objectives

Dependencies for 404: previously I intended to support dependencies that would be executed even for 404, but that would conflict with the fact that a router could *not* find a match, but the next router *did* find a match. Executing dependencies in the router that did not find a match would not make sense, they could consume the request, body, etc. This original idea was discarded.

##### Specific Breaking Changes

Now `router.routes` is no longer a plain list of `APIRoute` objects, it can contain these intermediate objects that can contain additional routers, forming a tree.

Any logic that depended on iterating on the `router.routes` directly would be affected, that logic cannot expect to be able to extract data from a plain list of routes, as it's no longer a plain list but a tree.

Additionally, any logic that iterated on `router.routes` to modify them would now also see these new objects, and would not see all the routes in the app.

`router.routes` should be considered an internal implementation detail, only passed around to the FastAPI functions that need it.

##### Features

- Adding routes (path operations) after a router is included now works, they are reflected as they are not copied.
- Including `subrouter` in `mainrouter` can be done before adding routes (path operations) to `subrouter`, because now the the entire object is stored instead of copying the routes.
- As routes are not copied, in some cases that might save some memory.

##### Alpha Features

This is not documented yet, so it's not officially supported yet and could change in the future.

But, as `APIRoute` and `APIRouter` instances are now preserved, they could be customized.

`APIRouter` has two new methods, `.matches()` and `.handle()`, counterpart to the existing ones in `APIRoute`. With this a router could customize how it matches and handles requests. For example, it could match only requests that include some specific header, for example for handling versions in headers.

Still, for now, consider this very experimental and potentially changing and breaking in the future.

##### Future Features Enabled

- Custom `APIRoute` subclasses (undocumented, but alraedy works as desccribed above)
- Custom `APIRouter` subclasses (undocumented, but already works as described above)
- Dependencies per router
- Exception handlers per router
- Middleware per router
- Other features planned

##### Docs

- 📝 Update release notes. MR [#&#8203;15747](https://github.com/fastapi/fastapi/pull/15747) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 📝 Update FastAPI Cloud deployment instructions. MR [#&#8203;15724](https://github.com/fastapi/fastapi/pull/15724) by [@&#8203;alejsdev](https://github.com/alejsdev).
- ✏️ Use `Annotated` in inline example in `docs/en/docs/tutorial/body-multiple-params.md`. MR [#&#8203;15591](https://github.com/fastapi/fastapi/pull/15591) by [@&#8203;TheArchons](https://github.com/TheArchons).
- 📝 Remove "NGINX Unit" from the list of ASGI-servers in docs. MR [#&#8203;15475](https://github.com/fastapi/fastapi/pull/15475) by [@&#8203;angryfoxx](https://github.com/angryfoxx).
- 📝 Update `docs/en/docs/tutorial/security/oauth2-jwt.md`. MR [#&#8203;14781](https://github.com/fastapi/fastapi/pull/14781) by [@&#8203;zadevhub](https://github.com/zadevhub).

##### Translations

- 🌐 Update translations for zh-hant (update-outdated). MR [#&#8203;15671](https://github.com/fastapi/fastapi/pull/15671) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for es (update-outdated). MR [#&#8203;15670](https://github.com/fastapi/fastapi/pull/15670) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for fr (update-outdated). MR [#&#8203;15669](https://github.com/fastapi/fastapi/pull/15669) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ja (update-outdated). MR [#&#8203;15668](https://github.com/fastapi/fastapi/pull/15668) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for pt (update-outdated). MR [#&#8203;15667](https://github.com/fastapi/fastapi/pull/15667) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for tr (update-outdated). MR [#&#8203;15666](https://github.com/fastapi/fastapi/pull/15666) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for zh (update-outdated). MR [#&#8203;15665](https://github.com/fastapi/fastapi/pull/15665) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ko (update-outdated). MR [#&#8203;15664](https://github.com/fastapi/fastapi/pull/15664) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for de (update-outdated). MR [#&#8203;15673](https://github.com/fastapi/fastapi/pull/15673) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for uk (update-outdated). MR [#&#8203;15672](https://github.com/fastapi/fastapi/pull/15672) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ru (update-outdated). MR [#&#8203;15674](https://github.com/fastapi/fastapi/pull/15674) by [@&#8203;tiangolo](https://github.com/tiangolo).

##### Internal

- 🔧 Update sponsors: remove TalorData. MR [#&#8203;15744](https://github.com/fastapi/fastapi/pull/15744) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔧 Update sponsors: remove ExoFlare. MR [#&#8203;15736](https://github.com/fastapi/fastapi/pull/15736) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔧 Update sponsors: remove InterviewPal. MR [#&#8203;15735](https://github.com/fastapi/fastapi/pull/15735) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔧 Update sponsors: remove Liblab. MR [#&#8203;15731](https://github.com/fastapi/fastapi/pull/15731) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔧 Update sponsors: remove Scalar. MR [#&#8203;15730](https://github.com/fastapi/fastapi/pull/15730) by [@&#8203;tiangolo](https://github.com/tiangolo).
- ⬆ Bump the python-packages group across 1 directory with 6 updates. MR [#&#8203;15721](https://github.com/fastapi/fastapi/pull/15721) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump python-multipart from 0.0.29 to 0.0.30. MR [#&#8203;15723](https://github.com/fastapi/fastapi/pull/15723) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump the github-actions group with 3 updates. MR [#&#8203;15720](https://github.com/fastapi/fastapi/pull/15720) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump starlette from 1.1.0 to 1.2.1. MR [#&#8203;15722](https://github.com/fastapi/fastapi/pull/15722) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump <https://github.com/crate-ci/typos> from v1.46.0 to v1.47.1 in the pre-commit group. MR [#&#8203;15719](https://github.com/fastapi/fastapi/pull/15719) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- 🔧 Update sponsors, add Rapidproxy. MR [#&#8203;15689](https://github.com/fastapi/fastapi/pull/15689) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔧 Update sponsors: Remove TestMu. MR [#&#8203;15688](https://github.com/fastapi/fastapi/pull/15688) by [@&#8203;tiangolo](https://github.com/tiangolo).
- ⬆ Bump the python-packages group across 1 directory with 11 updates. MR [#&#8203;15683](https://github.com/fastapi/fastapi/pull/15683) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump aiohttp from 3.13.4 to 3.14.0. MR [#&#8203;15681](https://github.com/fastapi/fastapi/pull/15681) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump the github-actions group with 2 updates. MR [#&#8203;15682](https://github.com/fastapi/fastapi/pull/15682) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump starlette from 1.0.0 to 1.1.0. MR [#&#8203;15684](https://github.com/fastapi/fastapi/pull/15684) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- 👥 Update FastAPI People - Experts. MR [#&#8203;15677](https://github.com/fastapi/fastapi/pull/15677) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 👥 Update FastAPI GitHub topic repositories. MR [#&#8203;15675](https://github.com/fastapi/fastapi/pull/15675) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 👥 Update FastAPI People - Contributors and Translators. MR [#&#8203;15662](https://github.com/fastapi/fastapi/pull/15662) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 👷 Automate release preparation. MR [#&#8203;15661](https://github.com/fastapi/fastapi/pull/15661) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔥 Remove slim package stub, deprecated for a while. MR [#&#8203;15649](https://github.com/fastapi/fastapi/pull/15649) by [@&#8203;tiangolo](https://github.com/tiangolo).
- ⬆ Bump authlib from 1.6.11 to 1.7.2. MR [#&#8203;15512](https://github.com/fastapi/fastapi/pull/15512) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump pymdown-extensions from 10.21.2 to 10.21.3. MR [#&#8203;15569](https://github.com/fastapi/fastapi/pull/15569) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump CodSpeedHQ/action from 4.14.0 to 4.15.1. MR [#&#8203;15513](https://github.com/fastapi/fastapi/pull/15513) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump python-multipart from 0.0.26 to 0.0.29. MR [#&#8203;15595](https://github.com/fastapi/fastapi/pull/15595) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- 🔒️ Improve GitHub actions security. MR [#&#8203;15607](https://github.com/fastapi/fastapi/pull/15607) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).
- ⚰️ Remove ruff and coverage ignores for non-existing files. MR [#&#8203;15610](https://github.com/fastapi/fastapi/pull/15610) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).
- ✅ Use custom `changing_dir` instead of `CLIRunner.isolated_filesystem` to set working dir. MR [#&#8203;15616](https://github.com/fastapi/fastapi/pull/15616) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).
- ✅ Add `httpx2` test dependency to avoid deprecation warning. MR [#&#8203;15603](https://github.com/fastapi/fastapi/pull/15603) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).
- ⬆ Bump the python-packages group with 15 updates. MR [#&#8203;15594](https://github.com/fastapi/fastapi/pull/15594) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- 👷 Configure Dependabot to group updates and update weekly. MR [#&#8203;15560](https://github.com/fastapi/fastapi/pull/15560) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).

### [`v0.136.3`](https://github.com/fastapi/fastapi/releases/tag/0.136.3)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.136.1...0.136.3)

##### Refactors

- ♻️ Do not accept underscore headers when using `convert_underscores=True` (the default). MR [#&#8203;15589](https://github.com/fastapi/fastapi/pull/15589) by [@&#8203;tiangolo](https://github.com/tiangolo).

### [`v0.136.1`](https://github.com/fastapi/fastapi/releases/tag/0.136.1)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.136.0...0.136.1)

##### Upgrades

- ⬆️ Update Pydantic v2 code to address deprecations. MR [#&#8203;15101](https://github.com/fastapi/fastapi/pull/15101) by [@&#8203;svlandeg](https://github.com/svlandeg).

##### Internal

- 🔨 Tweak translation script. MR [#&#8203;15174](https://github.com/fastapi/fastapi/pull/15174) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).
- ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. MR [#&#8203;15408](https://github.com/fastapi/fastapi/pull/15408) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6. MR [#&#8203;15409](https://github.com/fastapi/fastapi/pull/15409) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump pytest-codspeed from 4.3.0 to 4.4.0. MR [#&#8203;15407](https://github.com/fastapi/fastapi/pull/15407) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump pytest-cov from 7.0.0 to 7.1.0. MR [#&#8203;15406](https://github.com/fastapi/fastapi/pull/15406) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. MR [#&#8203;15405](https://github.com/fastapi/fastapi/pull/15405) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump mypy from 1.19.1 to 1.20.1. MR [#&#8203;15410](https://github.com/fastapi/fastapi/pull/15410) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump python-dotenv from 1.2.1 to 1.2.2. MR [#&#8203;15400](https://github.com/fastapi/fastapi/pull/15400) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump starlette from 0.52.1 to 1.0.0. MR [#&#8203;15397](https://github.com/fastapi/fastapi/pull/15397) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump pygithub from 2.8.1 to 2.9.1. MR [#&#8203;15396](https://github.com/fastapi/fastapi/pull/15396) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump pyjwt from 2.12.0 to 2.12.1. MR [#&#8203;15393](https://github.com/fastapi/fastapi/pull/15393) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump zizmor from 1.23.1 to 1.24.1. MR [#&#8203;15394](https://github.com/fastapi/fastapi/pull/15394) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump strawberry-graphql from 0.312.3 to 0.314.3. MR [#&#8203;15395](https://github.com/fastapi/fastapi/pull/15395) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump python-multipart from 0.0.22 to 0.0.26. MR [#&#8203;15360](https://github.com/fastapi/fastapi/pull/15360) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump authlib from 1.6.9 to 1.6.11. MR [#&#8203;15373](https://github.com/fastapi/fastapi/pull/15373) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump aiohttp from 3.13.3 to 3.13.4. MR [#&#8203;15282](https://github.com/fastapi/fastapi/pull/15282) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump pygments from 2.19.2 to 2.20.0. MR [#&#8203;15263](https://github.com/fastapi/fastapi/pull/15263) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump pymdown-extensions from 10.20.1 to 10.21.2. MR [#&#8203;15391](https://github.com/fastapi/fastapi/pull/15391) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).
- ⬆ Bump pillow from 12.1.1 to 12.2.0. MR [#&#8203;15333](https://github.com/fastapi/fastapi/pull/15333) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump pytest from 9.0.2 to 9.0.3. MR [#&#8203;15334](https://github.com/fastapi/fastapi/pull/15334) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. MR [#&#8203;15374](https://github.com/fastapi/fastapi/pull/15374) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump actions/cache from 5.0.4 to 5.0.5. MR [#&#8203;15385](https://github.com/fastapi/fastapi/pull/15385) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- 🔧 Update sponsors: remove Zuplo. MR [#&#8203;15369](https://github.com/fastapi/fastapi/pull/15369) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔧 Update sponsors: remove Speakeasy. MR [#&#8203;15368](https://github.com/fastapi/fastapi/pull/15368) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔒️ Add zizmor and fix audit findings. MR [#&#8203;15316](https://github.com/fastapi/fastapi/pull/15316) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).

### [`v0.136.0`](https://github.com/fastapi/fastapi/releases/tag/0.136.0)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.135.4...0.136.0)

##### Upgrades

- ⬆️ Support free-threaded Python 3.14t. MR [#&#8203;15149](https://github.com/fastapi/fastapi/pull/15149) by [@&#8203;svlandeg](https://github.com/svlandeg).

### [`v0.135.4`](https://github.com/fastapi/fastapi/releases/tag/0.135.4)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.135.3...0.135.4)

##### Refactors

- 🔥 Remove April Fool's `@app.vibe()` 🤪. MR [#&#8203;15363](https://github.com/fastapi/fastapi/pull/15363) by [@&#8203;tiangolo](https://github.com/tiangolo).

##### Internal

- ⬆ Bump cryptography from 46.0.5 to 46.0.7. MR [#&#8203;15314](https://github.com/fastapi/fastapi/pull/15314) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump strawberry-graphql from 0.307.1 to 0.312.3. MR [#&#8203;15309](https://github.com/fastapi/fastapi/pull/15309) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- 🔨 Add pre-commit hook to ensure latest release header has date. MR [#&#8203;15293](https://github.com/fastapi/fastapi/pull/15293) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).

### [`v0.135.3`](https://github.com/fastapi/fastapi/releases/tag/0.135.3)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.135.2...0.135.3)

##### Features

- ✨ Add support for `@app.vibe()`. MR [#&#8203;15280](https://github.com/fastapi/fastapi/pull/15280) by [@&#8203;tiangolo](https://github.com/tiangolo).
  - New docs: [Vibe Coding](https://fastapi.tiangolo.com/advanced/vibe/).

##### Docs

- ✏️ Fix typo for `client_secret` in OAuth2 form docstrings. MR [#&#8203;14946](https://github.com/fastapi/fastapi/pull/14946) by [@&#8203;bysiber](https://github.com/bysiber).

##### Internal

- 👥 Update FastAPI People - Experts. MR [#&#8203;15279](https://github.com/fastapi/fastapi/pull/15279) by [@&#8203;tiangolo](https://github.com/tiangolo).
- ⬆ Bump orjson from 3.11.7 to 3.11.8. MR [#&#8203;15276](https://github.com/fastapi/fastapi/pull/15276) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- ⬆ Bump ruff from 0.15.0 to 0.15.8. MR [#&#8203;15277](https://github.com/fastapi/fastapi/pull/15277) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- 👥 Update FastAPI GitHub topic repositories. MR [#&#8203;15274](https://github.com/fastapi/fastapi/pull/15274) by [@&#8203;tiangolo](https://github.com/tiangolo).
- ⬆ Bump fastmcp from 2.14.5 to 3.2.0. MR [#&#8203;15267](https://github.com/fastapi/fastapi/pull/15267) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- 👥 Update FastAPI People - Contributors and Translators. MR [#&#8203;15270](https://github.com/fastapi/fastapi/pull/15270) by [@&#8203;tiangolo](https://github.com/tiangolo).
- ⬆ Bump requests from 2.32.5 to 2.33.0. MR [#&#8203;15228](https://github.com/fastapi/fastapi/pull/15228) by [@&#8203;dependabot\[bot\]](https://github.com/apps/dependabot).
- 👷 Add ty check to `lint.sh`. MR [#&#8203;15136](https://github.com/fastapi/fastapi/pull/15136) by [@&#8203;svlandeg](https://github.com/svlandeg).

### [`v0.135.2`](https://github.com/fastapi/fastapi/releases/tag/0.135.2)

[Compare Source](https://github.com/fastapi/fastapi/compare/0.135.1...0.135.2)

##### Upgrades

- ⬆️ Increase lower bound to `pydantic >=2.9.0.` and fix the test suite. MR [#&#8203;15139](https://github.com/fastapi/fastapi/pull/15139) by [@&#8203;svlandeg](https://github.com/svlandeg).

##### Docs

- 📝 Add missing last release notes dates. MR [#&#8203;15202](https://github.com/fastapi/fastapi/pull/15202) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 📝 Update docs for contributors and team members regarding translation MRs. MR [#&#8203;15200](https://github.com/fastapi/fastapi/pull/15200) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).
- 💄 Fix code blocks in reference docs overflowing table width. MR [#&#8203;15094](https://github.com/fastapi/fastapi/pull/15094) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).
- 📝 Fix duplicated words in docstrings. MR [#&#8203;15116](https://github.com/fastapi/fastapi/pull/15116) by [@&#8203;AhsanSheraz](https://github.com/AhsanSheraz).
- 📝 Add docs for `pyproject.toml` with `entrypoint`. MR [#&#8203;15075](https://github.com/fastapi/fastapi/pull/15075) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 📝 Update links in docs to no longer use the classes external-link and internal-link. MR [#&#8203;15061](https://github.com/fastapi/fastapi/pull/15061) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🔨 Add JS and CSS handling for automatic `target=_blank` for links in docs. MR [#&#8203;15063](https://github.com/fastapi/fastapi/pull/15063) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 💄 Update styles for internal and external links in new tab. MR [#&#8203;15058](https://github.com/fastapi/fastapi/pull/15058) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 📝  Add documentation for the FastAPI VS Code extension. MR [#&#8203;15008](https://github.com/fastapi/fastapi/pull/15008) by [@&#8203;savannahostrowski](https://github.com/savannahostrowski).
- 📝 Fix doctrings for `max_digits` and `decimal_places`. MR [#&#8203;14944](https://github.com/fastapi/fastapi/pull/14944) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).
- 📝 Add dates to release notes. MR [#&#8203;15001](https://github.com/fastapi/fastapi/pull/15001) by [@&#8203;YuriiMotov](https://github.com/YuriiMotov).

##### Translations

- 🌐 Update translations for zh (update-outdated). MR [#&#8203;15177](https://github.com/fastapi/fastapi/pull/15177) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for zh-hant (update-outdated). MR [#&#8203;15178](https://github.com/fastapi/fastapi/pull/15178) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for zh-hant (add-missing). MR [#&#8203;15176](https://github.com/fastapi/fastapi/pull/15176) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for zh (add-missing). MR [#&#8203;15175](https://github.com/fastapi/fastapi/pull/15175) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ja (update-outdated). MR [#&#8203;15171](https://github.com/fastapi/fastapi/pull/15171) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ko (update-outdated). MR [#&#8203;15170](https://github.com/fastapi/fastapi/pull/15170) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for tr (update-outdated). MR [#&#8203;15172](https://github.com/fastapi/fastapi/pull/15172) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ko (add-missing). MR [#&#8203;15168](https://github.com/fastapi/fastapi/pull/15168) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for ja (add-missing). MR [#&#8203;15167](https://github.com/fastapi/fastapi/pull/15167) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for tr (add-missing). MR [#&#8203;15169](https://github.com/fastapi/fastapi/pull/15169) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for fr (update-outdated). MR [#&#8203;15165](https://github.com/fastapi/fastapi/pull/15165) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for fr (add-missing). MR [#&#8203;15163](https://github.com/fastapi/fastapi/pull/15163) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for uk (update-outdated). MR [#&#8203;15160](https://github.com/fastapi/fastapi/pull/15160) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for uk (add-missing). MR [#&#8203;15158](https://github.com/fastapi/fastapi/pull/15158) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for pt (add-missing). MR [#&#8203;15157](https://github.com/fastapi/fastapi/pull/15157) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for pt (update-outdated). MR [#&#8203;15159](https://github.com/fastapi/fastapi/pull/15159) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for es (update-outdated). MR [#&#8203;15155](https://github.com/fastapi/fastapi/pull/15155) by [@&#8203;tiangolo](https://github.com/tiangolo).
- 🌐 Update translations for es (add-missing). MR [#&#8203;15154](https:/…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants