Skip to content

fix(ui): save memory config to spec.declarative.memory#1887

Merged
peterj merged 1 commit into
kagent-dev:mainfrom
onematchfox:fix-ui-memory-configuration
May 18, 2026
Merged

fix(ui): save memory config to spec.declarative.memory#1887
peterj merged 1 commit into
kagent-dev:mainfrom
onematchfox:fix-ui-memory-configuration

Conversation

@onematchfox

@onematchfox onematchfox commented May 18, 2026

Copy link
Copy Markdown
Contributor

Memory was being written to spec.memory on the Agent CR, but the v1alpha2 CRD defines memory under spec.declarative, not at the top level of AgentSpec - see

type DeclarativeAgentSpec struct {
// Runtime specifies which ADK implementation to use for this agent.
// - "python": Uses the Python ADK (default, slower startup, full feature set)
// - "go": Uses the Go ADK (faster startup, most features supported)
// The runtime determines both the container image and readiness probe configuration.
// +optional
// +kubebuilder:default=python
Runtime DeclarativeRuntime `json:"runtime,omitempty"`
// SystemMessage is a string specifying the system message for the agent.
// When PromptTemplate is set, this field is treated as a Go text/template
// with access to an include("source/key") function and agent context variables
// such as .AgentName, .AgentNamespace, .Description, .ToolNames, and .SkillNames.
// +optional
SystemMessage string `json:"systemMessage,omitempty"`
// SystemMessageFrom is a reference to a ConfigMap or Secret containing the system message.
// When PromptTemplate is set, the resolved value is treated as a Go text/template.
// +optional
SystemMessageFrom *ValueSource `json:"systemMessageFrom,omitempty"`
// PromptTemplate enables Go text/template processing on the systemMessage field.
// When set, systemMessage is treated as a Go template with access to the include function
// and agent context variables.
// +optional
PromptTemplate *PromptTemplateSpec `json:"promptTemplate,omitempty"`
// The name of the model config to use.
// If not specified, the default value is "default-model-config".
// Must be in the same namespace as the Agent.
// +optional
ModelConfig string `json:"modelConfig,omitempty"`
// Whether to stream the response from the model.
// If not specified, the default value is false.
// +optional
Stream bool `json:"stream,omitempty"`
// +kubebuilder:validation:MaxItems=20
// +optional
Tools []*Tool `json:"tools,omitempty"`
// A2AConfig instantiates an A2A server for this agent,
// served on the HTTP port of the kagent kubernetes
// controller (default 8083).
// The A2A server URL will be served at
// <kagent-controller-ip>:8083/api/a2a/<agent-namespace>/<agent-name>
// Read more about the A2A protocol here: https://github.com/google/A2A
// +optional
A2AConfig *A2AConfig `json:"a2aConfig,omitempty"`
// +optional
Deployment *DeclarativeDeploymentSpec `json:"deployment,omitempty"`
// Allow code execution for python code blocks with this agent.
// If true, the agent will automatically execute python code blocks in the LLM responses.
// Code will be executed in a sandboxed environment.
// +optional
// due to a bug in adk (https://github.com/google/adk-python/issues/3921), this field is ignored for now.
ExecuteCodeBlocks *bool `json:"executeCodeBlocks,omitempty"`
// Memory configuration for the agent.
// +optional
Memory *MemorySpec `json:"memory,omitempty"`
// Context configures context management for this agent.
// This includes event compaction (compression) and context caching.
// +optional
Context *ContextConfig `json:"context,omitempty"`
}
. The backend silently ignored the misplaced field, causing memory configuration to appear to save but never actually persist.

Also removed a dead fallback in the edit-load path that attempted to read spec.memory (a field that never exists in v1alpha2) masking the underlying issue.

@onematchfox onematchfox requested a review from peterj as a code owner May 18, 2026 13:35
Copilot AI review requested due to automatic review settings May 18, 2026 13:35
@github-actions github-actions Bot added the bug Something isn't working label May 18, 2026
@onematchfox onematchfox force-pushed the fix-ui-memory-configuration branch from fe8082e to 2271650 Compare May 18, 2026 13:36
@github-actions github-actions Bot added bug Something isn't working and removed bug Something isn't working labels May 18, 2026

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Fixes Agent memory persistence in the UI by aligning the payload and edit-load logic with the v1alpha2 Agent CRD, where memory is nested under spec.declarative (not at top-level spec).

Changes:

  • Write memory configuration to spec.declarative.memory when building the Agent payload.
  • Remove the (dead/legacy) edit-load fallback that attempted to read spec.memory.

Reviewed changes

Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.

File Description
ui/src/app/agents/new/page.tsx Removes legacy fallback reading spec.memory when populating the edit form.
ui/src/app/actions/agents.ts Updates Agent payload construction to persist memory under spec.declarative.memory.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread ui/src/app/actions/agents.ts
Memory was being written to `spec.memory` on the Agent CR, but the
v1alpha2 CRD defines `memory` under `spec.declarative`, not at the top
level of `AgentSpec`. The backend silently ignored the misplaced field,
causing memory configuration to appear to save but never actually
persist.

Also removed a dead fallback in the edit-load path that attempted to
read `spec.memory` — a field that never exists in v1alpha2 — masking
the underlying issue.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Brian Fox <878612+onematchfox@users.noreply.github.com>
@onematchfox onematchfox force-pushed the fix-ui-memory-configuration branch from 2271650 to b35cf79 Compare May 18, 2026 14:31
@peterj peterj enabled auto-merge (squash) May 18, 2026 15:32
@peterj peterj merged commit ae3c873 into kagent-dev:main May 18, 2026
24 checks passed
maazghani pushed a commit to maazghani/kagent that referenced this pull request May 18, 2026
Memory was being written to `spec.memory` on the Agent CR, but the
v1alpha2 CRD defines `memory` under `spec.declarative`, not at the top
level of `AgentSpec` - see
https://github.com/kagent-dev/kagent/blob/e03ee3a61be8387f6148d4fae9205e75eb45d2ab/go/api/v1alpha2/agent_types.go#L162-L224.
The backend silently ignored the misplaced field, causing memory
configuration to appear to save but never actually persist.

Also removed a dead fallback in the edit-load path that attempted to
read `spec.memory` (a field that never exists in v1alpha2) masking the
underlying issue.

Signed-off-by: Brian Fox <878612+onematchfox@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
maazghani pushed a commit to maazghani/kagent that referenced this pull request May 18, 2026
Memory was being written to `spec.memory` on the Agent CR, but the
v1alpha2 CRD defines `memory` under `spec.declarative`, not at the top
level of `AgentSpec` - see
https://github.com/kagent-dev/kagent/blob/e03ee3a61be8387f6148d4fae9205e75eb45d2ab/go/api/v1alpha2/agent_types.go#L162-L224.
The backend silently ignored the misplaced field, causing memory
configuration to appear to save but never actually persist.

Also removed a dead fallback in the edit-load path that attempted to
read `spec.memory` (a field that never exists in v1alpha2) masking the
underlying issue.

Signed-off-by: Brian Fox <878612+onematchfox@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Signed-off-by: Maaz Ghani <maazghani@gmail.com>
maazghani added a commit to maazghani/kagent that referenced this pull request May 19, 2026
* fix(ui): save memory config to spec.declarative.memory (#1887)

Memory was being written to `spec.memory` on the Agent CR, but the
v1alpha2 CRD defines `memory` under `spec.declarative`, not at the top
level of `AgentSpec` - see
https://github.com/kagent-dev/kagent/blob/e03ee3a61be8387f6148d4fae9205e75eb45d2ab/go/api/v1alpha2/agent_types.go#L162-L224.
The backend silently ignored the misplaced field, causing memory
configuration to appear to save but never actually persist.

Also removed a dead fallback in the edit-load path that attempted to
read `spec.memory` (a field that never exists in v1alpha2) masking the
underlying issue.

Signed-off-by: Brian Fox <878612+onematchfox@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>

* chore(deps): bump the python-minor-patch group across 1 directory with 22 updates (#1885)

Bumps the python-minor-patch group with 21 updates in the /python
directory:

| Package | From | To |
| --- | --- | --- |
| [ruff](https://github.com/astral-sh/ruff) | `0.15.12` | `0.15.13` |
| [authlib](https://github.com/authlib/authlib) | `1.7.1` | `1.7.2` |
| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.4`
|
| [typing-extensions](https://github.com/python/typing_extensions) |
`4.14.1` | `4.15.0` |
| [anyio](https://github.com/agronholm/anyio) | `4.10.0` | `4.13.0` |
| [typer](https://github.com/fastapi/typer) | `0.16.0` | `0.25.1` |
| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.47.0` |
| [openai](https://github.com/openai/openai-python) | `2.14.0` |
`2.37.0` |
| [mcp](https://github.com/modelcontextprotocol/python-sdk) | `1.25.0` |
`1.27.1` |
| [fastapi](https://github.com/fastapi/fastapi) | `0.129.0` | `0.136.1`
|
| [urllib3](https://github.com/urllib3/urllib3) | `2.6.3` | `2.7.0` |
| [filelock](https://github.com/tox-dev/py-filelock) | `3.20.3` |
`3.29.0` |
| [python-multipart](https://github.com/Kludex/python-multipart) |
`0.0.22` | `0.0.29` |
| [boto3](https://github.com/boto/boto3) | `1.42.28` | `1.43.9` |
| [ollama](https://github.com/ollama/ollama-python) | `0.6.1` | `0.6.2`
|
| [psutil](https://github.com/giampaolo/psutil) | `7.0.0` | `7.2.2` |
| [langgraph](https://github.com/langchain-ai/langgraph) | `1.0.6` |
`1.2.0` |
| [openai-agents](https://github.com/openai/openai-agents-python) |
`0.6.5` | `0.17.2` |
| [pyyaml](https://github.com/yaml/pyyaml) | `6.0.2` | `6.0.3` |
| [langchain-openai](https://github.com/langchain-ai/langchain) |
`1.1.7` | `1.2.1` |
|
[langgraph-checkpoint-sqlite](https://github.com/langchain-ai/langgraph)
| `3.0.3` | `3.1.0` |


Updates `ruff` from 0.15.12 to 0.15.13
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/releases">ruff's
releases</a>.</em></p>
<blockquote>
<h2>0.15.13</h2>
<h2>Release Notes</h2>
<p>Released on 2026-05-14.</p>
<h3>Preview features</h3>
<ul>
<li>Add a rule to flag lazy imports that are eagerly evaluated (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25016">#25016</a>)</li>
<li>[<code>pylint</code>] Standardize diagnostic message
(<code>PLR0914</code>, <code>PLR0917</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24996">#24996</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Fix <code>F811</code> false positive for class methods (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24933">#24933</a>)</li>
<li>Fix setting selection for multi-folder workspace (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24819">#24819</a>)</li>
<li>[<code>eradicate</code>] Fix false positive for lines with leading
whitespace (<code>ERA001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25122">#25122</a>)</li>
<li>[<code>flake8-pyi</code>] Fix false positive for f-string debug
specifier (<code>PYI016</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24098">#24098</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>Always include panic payload in panic diagnostic message (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24873">#24873</a>)</li>
<li>Restrict <code>PYI034</code> for in-place operations to enclosing
class (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24511">#24511</a>)</li>
<li>Improve error message for parameters that are declared
<code>global</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24902">#24902</a>)</li>
<li>Update known stdlib (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25103">#25103</a>)</li>
</ul>
<h3>Performance</h3>
<ul>
<li>[<code>isort</code>] Avoid constructing <code>glob::Pattern</code>s
for literal known modules (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25123">#25123</a>)</li>
</ul>
<h3>CLI</h3>
<ul>
<li>Add TOML examples to <code>--config</code> help text (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25013">#25013</a>)</li>
<li>Colorize ruff check 'All checks passed' (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25085">#25085</a>)</li>
</ul>
<h3>Configuration</h3>
<ul>
<li>Increase max allowed value of <code>line-length</code> setting (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24962">#24962</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Add <code>D203</code> to rules that conflict with the formatter (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25044">#25044</a>)</li>
<li>Clarify <code>COM819</code> and formatter interaction (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25045">#25045</a>)</li>
<li>Clarify that <code>NotImplemented</code> is a value, not an
exception (<code>F901</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25054">#25054</a>)</li>
<li>Update number of lint rules supported (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24942">#24942</a>)</li>
</ul>
<h3>Other changes</h3>
<ul>
<li>Simplify the playground's markdown template (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24924">#24924</a>)</li>
</ul>
<h3>Contributors</h3>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.15.13</h2>
<p>Released on 2026-05-14.</p>
<h3>Preview features</h3>
<ul>
<li>Add a rule to flag lazy imports that are eagerly evaluated (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25016">#25016</a>)</li>
<li>[<code>pylint</code>] Standardize diagnostic message
(<code>PLR0914</code>, <code>PLR0917</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24996">#24996</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Fix <code>F811</code> false positive for class methods (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24933">#24933</a>)</li>
<li>Fix setting selection for multi-folder workspace (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24819">#24819</a>)</li>
<li>[<code>eradicate</code>] Fix false positive for lines with leading
whitespace (<code>ERA001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25122">#25122</a>)</li>
<li>[<code>flake8-pyi</code>] Fix false positive for f-string debug
specifier (<code>PYI016</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24098">#24098</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>Always include panic payload in panic diagnostic message (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24873">#24873</a>)</li>
<li>Restrict <code>PYI034</code> for in-place operations to enclosing
class (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24511">#24511</a>)</li>
<li>Improve error message for parameters that are declared
<code>global</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24902">#24902</a>)</li>
<li>Update known stdlib (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25103">#25103</a>)</li>
</ul>
<h3>Performance</h3>
<ul>
<li>[<code>isort</code>] Avoid constructing <code>glob::Pattern</code>s
for literal known modules (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25123">#25123</a>)</li>
</ul>
<h3>CLI</h3>
<ul>
<li>Add TOML examples to <code>--config</code> help text (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25013">#25013</a>)</li>
<li>Colorize ruff check 'All checks passed' (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25085">#25085</a>)</li>
</ul>
<h3>Configuration</h3>
<ul>
<li>Increase max allowed value of <code>line-length</code> setting (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24962">#24962</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Add <code>D203</code> to rules that conflict with the formatter (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25044">#25044</a>)</li>
<li>Clarify <code>COM819</code> and formatter interaction (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25045">#25045</a>)</li>
<li>Clarify that <code>NotImplemented</code> is a value, not an
exception (<code>F901</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/25054">#25054</a>)</li>
<li>Update number of lint rules supported (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24942">#24942</a>)</li>
</ul>
<h3>Other changes</h3>
<ul>
<li>Simplify the playground's markdown template (<a
href="https://redirect.github.com/astral-sh/ruff/pull/24924">#24924</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a
href="https://github.com/MichaReiser"><code>@​MichaReiser</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/astral-sh/ruff/commit/2afb467ce397e4a89c13a0a814c62cfecb0e9e49"><code>2afb467</code></a>
Bump 0.15.13 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/25157">#25157</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/300879600fa3af7cde1e675c63de6ad9d0797d1b"><code>3008796</code></a>
[ty] classify TypeVar semantic tokens as type parameters (<a
href="https://redirect.github.com/astral-sh/ruff/issues/24891">#24891</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/79470e31877acb6074f3bbff2a49e508822ae4e8"><code>79470e3</code></a>
[<code>isort</code>] Avoid constructing <code>glob::Pattern</code>s for
literal known modules (<a
href="https://redirect.github.com/astral-sh/ruff/issues/25123">#25123</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/2522549901d50f18775999f0fb802b19229417f0"><code>2522549</code></a>
Remove shellcheck from prek (<a
href="https://redirect.github.com/astral-sh/ruff/issues/25154">#25154</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/7db7170020f539d6d2bc01dbd0b0c09fab91dc06"><code>7db7170</code></a>
[ty] Support TypedDict key completions in incomplete, anonymous contexts
(<a
href="https://redirect.github.com/astral-sh/ruff/issues/25">#25</a>...</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/bb3dd535f1c5a83e2e56ac93a771fadbeeceebd0"><code>bb3dd53</code></a>
[ty] Run full iteration analysis on narrowed typevars (<a
href="https://redirect.github.com/astral-sh/ruff/issues/25143">#25143</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/828cdb7732efcb16a53f4ee5f011cf653b834d1a"><code>828cdb7</code></a>
[ty] Isolate file-watching test environment (<a
href="https://redirect.github.com/astral-sh/ruff/issues/25151">#25151</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/89e1d8670ea4d3af60c8143ee552dc750200718d"><code>89e1d86</code></a>
[ty] Preserve TypedDict keys through dict unpacking (<a
href="https://redirect.github.com/astral-sh/ruff/issues/24523">#24523</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/86f3064d6fffa5697d174f26b840bd6857b381da"><code>86f3064</code></a>
[ty] Avoid accessing <code>args[0]</code> for <code>static_assert</code>
(<a
href="https://redirect.github.com/astral-sh/ruff/issues/25149">#25149</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/ed819f947dc27e36eac8bb3134153c4668d76a3a"><code>ed819f9</code></a>
[ty] Treat custom enum <code>__new__</code> values as dynamic (<a
href="https://redirect.github.com/astral-sh/ruff/issues/25136">#25136</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/0.15.12...0.15.13">compare
view</a></li>
</ul>
</details>
<br />

Updates `authlib` from 1.7.1 to 1.7.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/authlib/authlib/releases">authlib's
releases</a>.</em></p>
<blockquote>
<h2>v1.7.2</h2>
<h2>What's Changed</h2>
<ul>
<li>Fix the readme links by <a
href="https://github.com/azmeuk"><code>@​azmeuk</code></a> in <a
href="https://redirect.github.com/authlib/authlib/pull/886">authlib/authlib#886</a></li>
<li>Allow non-recommended algorithms in ClientSecretJWT and PrivateKey
by <a href="https://github.com/azmeuk"><code>@​azmeuk</code></a> in <a
href="https://redirect.github.com/authlib/authlib/pull/887">authlib/authlib#887</a></li>
<li>Validate BCP47 language tags with a regex by <a
href="https://github.com/azmeuk"><code>@​azmeuk</code></a> in <a
href="https://redirect.github.com/authlib/authlib/pull/873">authlib/authlib#873</a></li>
<li>Fix RFC7523 signing with non RSA keys by <a
href="https://github.com/azmeuk"><code>@​azmeuk</code></a> in <a
href="https://redirect.github.com/authlib/authlib/pull/884">authlib/authlib#884</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/authlib/authlib/compare/v1.7.1...v1.7.2">https://github.com/authlib/authlib/compare/v1.7.1...v1.7.2</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/authlib/authlib/commit/a0b76fac3fa114d7759af2010546bfc332364b63"><code>a0b76fa</code></a>
chore: bump to 1.7.2</li>
<li><a
href="https://github.com/authlib/authlib/commit/c85c7f2b02faf2667f62b27aa60df042dbc9b4ab"><code>c85c7f2</code></a>
Merge pull request <a
href="https://redirect.github.com/authlib/authlib/issues/884">#884</a>
from azmeuk/852-rfc7523-key-import</li>
<li><a
href="https://github.com/authlib/authlib/commit/a3b2adda43b4452ba9f384d224f95848974b4eb4"><code>a3b2add</code></a>
Merge pull request <a
href="https://redirect.github.com/authlib/authlib/issues/873">#873</a>
from azmeuk/bcp47</li>
<li><a
href="https://github.com/authlib/authlib/commit/f2578eaa198aedbaaaf3bb00eccc451e15e45e3a"><code>f2578ea</code></a>
fix: Import RSAKey in auth.py for additional key support</li>
<li><a
href="https://github.com/authlib/authlib/commit/b57182cf46a53da19623208dd852270ddec8ebcc"><code>b57182c</code></a>
fix: fallback support RSAKey when client_secret is text</li>
<li><a
href="https://github.com/authlib/authlib/commit/4e7590292ca9f948a0766640b27025618750e6c1"><code>4e75902</code></a>
Merge branch 'main' into 852-rfc7523-key-import</li>
<li><a
href="https://github.com/authlib/authlib/commit/5eb4a860600ea2f3acc1a2a9c3e621a430da9d0f"><code>5eb4a86</code></a>
Merge pull request <a
href="https://redirect.github.com/authlib/authlib/issues/887">#887</a>
from azmeuk/883-alg</li>
<li><a
href="https://github.com/authlib/authlib/commit/5633f37c47bd8352b962f982cb916bc8b95bb5d5"><code>5633f37</code></a>
fix: allow non-recommended algorithms in ClientSecretJWT and
PrivateKeyJWT</li>
<li><a
href="https://github.com/authlib/authlib/commit/4c8e7b381aaef68f60e2323a25ba96cdb346f82f"><code>4c8e7b3</code></a>
Merge pull request <a
href="https://redirect.github.com/authlib/authlib/issues/886">#886</a>
from azmeuk/885-readme</li>
<li><a
href="https://github.com/authlib/authlib/commit/23b333e48a17ebf9f032a0e0f9eb3f990a06f97b"><code>23b333e</code></a>
docs: fix the readme links</li>
<li>Additional commits viewable in <a
href="https://github.com/authlib/authlib/compare/1.7.1...v1.7.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `pydantic` from 2.12.5 to 2.13.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/pydantic/pydantic/releases">pydantic's
releases</a>.</em></p>
<blockquote>
<h2>v2.13.4 2026-05-06</h2>
<h2>v2.13.4 (2026-05-06)</h2>
<h3>What's Changed</h3>
<h4>Packaging</h4>
<ul>
<li>Bump libc from 0.2.155 to 0.2.185 by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/13109">#13109</a></li>
<li>Adapt <code>pydantic-core</code> linker flags on macOS by <a
href="https://github.com/washingtoneg"><code>@​washingtoneg</code></a>
and <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/13147">#13147</a></li>
</ul>
<h4>Fixes</h4>
<ul>
<li>Preserve <code>RootModel</code> core metadata by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/13129">#13129</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4">https://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4</a></p>
<h2>v2.13.3 2026-04-20</h2>
<h2>v2.13.3 (2026-04-20)</h2>
<h3>What's Changed</h3>
<h4>Fixes</h4>
<ul>
<li>Handle <code>AttributeError</code> subclasses with
<code>from_attributes</code> by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/13096">#13096</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3">https://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3</a></p>
<h2>v2.13.2 2026-04-17</h2>
<h2>v2.13.2 (2026-04-17)</h2>
<h3>What's Changed</h3>
<h4>Fixes</h4>
<ul>
<li>Fix <code>ValidationInfo.field_name</code> missing with
<code>model_validate_json()</code> by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/13084">#13084</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2">https://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2</a></p>
<h2>v2.13.1 2026-04-15</h2>
<h2>v2.13.1 (2026-04-15)</h2>
<h3>What's Changed</h3>
<h4>Fixes</h4>
<ul>
<li>Fix <code>ValidationInfo.data</code> missing with
<code>model_validate_json()</code> by <a
href="https://github.com/davidhewitt"><code>@​davidhewitt</code></a> in
<a
href="https://redirect.github.com/pydantic/pydantic/pull/13079">#13079</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1">https://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1</a></p>
<h2>v2.13.0 2026-04-13</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pydantic/pydantic/blob/v2.13.4/HISTORY.md">pydantic's
changelog</a>.</em></p>
<blockquote>
<h2>v2.13.4 (2026-05-06)</h2>
<p><a
href="https://github.com/pydantic/pydantic/releases/tag/v2.13.4">GitHub
release</a></p>
<h3>What's Changed</h3>
<h4>Packaging</h4>
<ul>
<li>Bump libc from 0.2.155 to 0.2.185 by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/13109">#13109</a></li>
<li>Adapt <code>pydantic-core</code> linker flags on macOS by <a
href="https://github.com/washingtoneg"><code>@​washingtoneg</code></a>
and <a href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/13147">#13147</a></li>
</ul>
<h4>Fixes</h4>
<ul>
<li>Preserve <code>RootModel</code> core metadata by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/13129">#13129</a></li>
</ul>
<h2>v2.13.3 (2026-04-20)</h2>
<p><a
href="https://github.com/pydantic/pydantic/releases/tag/v2.13.3">GitHub
release</a></p>
<h3>What's Changed</h3>
<h4>Fixes</h4>
<ul>
<li>Handle <code>AttributeError</code> subclasses with
<code>from_attributes</code> by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/13096">#13096</a></li>
</ul>
<h2>v2.13.2 (2026-04-17)</h2>
<p><a
href="https://github.com/pydantic/pydantic/releases/tag/v2.13.2">GitHub
release</a></p>
<h3>What's Changed</h3>
<h4>Fixes</h4>
<ul>
<li>Fix <code>ValidationInfo.field_name</code> missing with
<code>model_validate_json()</code> by <a
href="https://github.com/Viicos"><code>@​Viicos</code></a> in <a
href="https://redirect.github.com/pydantic/pydantic/pull/13084">#13084</a></li>
</ul>
<h2>v2.13.1 (2026-04-15)</h2>
<p><a
href="https://github.com/pydantic/pydantic/releases/tag/v2.13.1">GitHub
release</a></p>
<h3>What's Changed</h3>
<h4>Fixes</h4>
<ul>
<li>Fix <code>ValidationInfo.data</code> missing with
<code>model_validate_json()</code> by <a
href="https://github.com/davidhewitt"><code>@​davidhewitt</code></a> in
<a
href="https://redirect.github.com/pydantic/pydantic/pull/13079">#13079</a></li>
</ul>
<h2>v2.13.0 (2026-04-13)</h2>
<p><a
href="https://github.com/pydantic/pydantic/releases/tag/v2.13.0">GitHub
release</a></p>
<p>The highlights of the v2.13 release are available in the <a
href="https://pydantic.dev/articles/pydantic-v2-13-release">blog
post</a>.</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pydantic/pydantic/commit/cf67d4b3193c3fe43ede18612ed62785eee11382"><code>cf67d4b</code></a>
Fix linting</li>
<li><a
href="https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662"><code>f0d8a21</code></a>
Prepare release v2.13.4</li>
<li><a
href="https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a"><code>5e3fe1d</code></a>
Check for pydantic tag pattern in CI</li>
<li><a
href="https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686"><code>7f9edcc</code></a>
Document tagging conventions</li>
<li><a
href="https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c"><code>b46a0c9</code></a>
Adapt <code>pydantic-core</code> linker flags on macOS</li>
<li><a
href="https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400"><code>50629c8</code></a>
Update to PyPy 7.3.22</li>
<li><a
href="https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725"><code>8522ebb</code></a>
Preserve <code>RootModel</code> core metadata</li>
<li><a
href="https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8"><code>a37f3af</code></a>
Adapt <code>MISSING</code> sentinel test to work with unreleased
<code>typing_extensions</code> ver...</li>
<li><a
href="https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2"><code>909259a</code></a>
Remove Logfire example in documentation</li>
<li><a
href="https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df"><code>2c4174c</code></a>
Bump libc from 0.2.155 to 0.2.185</li>
<li>Additional commits viewable in <a
href="https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.4">compare
view</a></li>
</ul>
</details>
<br />

Updates `typing-extensions` from 4.14.1 to 4.15.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/python/typing_extensions/releases">typing-extensions's
releases</a>.</em></p>
<blockquote>
<h2>4.15.0</h2>
<p>No user-facing changes since 4.15.0rc1.</p>
<p>New features since 4.14.1:</p>
<ul>
<li>Add the <code>@typing_extensions.disjoint_base</code> decorator, as
specified
in PEP 800. Patch by Jelle Zijlstra.</li>
<li>Add <code>typing_extensions.type_repr</code>, a backport of
<a
href="https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr"><code>annotationlib.type_repr</code></a>,
introduced in Python 3.14 (CPython PR <a
href="https://redirect.github.com/python/cpython/pull/124551">#124551</a>,
originally by Jelle Zijlstra). Patch by Semyon Moroz.</li>
<li>Fix behavior of type params in
<code>typing_extensions.evaluate_forward_ref</code>. Backport of
CPython PR <a
href="https://redirect.github.com/python/cpython/pull/137227">#137227</a>
by Jelle Zijlstra.</li>
</ul>
<h2>4.15.0rc1</h2>
<ul>
<li>Add the <code>@typing_extensions.disjoint_base</code> decorator, as
specified
in PEP 800. Patch by Jelle Zijlstra.</li>
<li>Add <code>typing_extensions.type_repr</code>, a backport of
<a
href="https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr"><code>annotationlib.type_repr</code></a>,
introduced in Python 3.14 (CPython PR <a
href="https://redirect.github.com/python/cpython/pull/124551">#124551</a>,
originally by Jelle Zijlstra). Patch by Semyon Moroz.</li>
<li>Fix behavior of type params in
<code>typing_extensions.evaluate_forward_ref</code>. Backport of
CPython PR <a
href="https://redirect.github.com/python/cpython/pull/137227">#137227</a>
by Jelle Zijlstra.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/python/typing_extensions/blob/main/CHANGELOG.md">typing-extensions's
changelog</a>.</em></p>
<blockquote>
<h1>Release 4.15.0 (August 25, 2025)</h1>
<p>No user-facing changes since 4.15.0rc1.</p>
<h1>Release 4.15.0rc1 (August 18, 2025)</h1>
<ul>
<li>Add the <code>@typing_extensions.disjoint_base</code> decorator, as
specified
in PEP 800. Patch by Jelle Zijlstra.</li>
<li>Add <code>typing_extensions.type_repr</code>, a backport of
<a
href="https://docs.python.org/3.14/library/annotationlib.html#annotationlib.type_repr"><code>annotationlib.type_repr</code></a>,
introduced in Python 3.14 (CPython PR <a
href="https://redirect.github.com/python/cpython/pull/124551">#124551</a>,
originally by Jelle Zijlstra). Patch by Semyon Moroz.</li>
<li>Fix behavior of type params in
<code>typing_extensions.evaluate_forward_ref</code>. Backport of
CPython PR <a
href="https://redirect.github.com/python/cpython/pull/137227">#137227</a>
by Jelle Zijlstra.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/python/typing_extensions/commit/9d1637e264b5c1a6b7acee3e907015f89b20c2c9"><code>9d1637e</code></a>
Prepare release 4.15.0 (<a
href="https://redirect.github.com/python/typing_extensions/issues/658">#658</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/4bd67c5be5d9443c7d33c314d02a56ee125eb88d"><code>4bd67c5</code></a>
Coverage: exclude some noise (<a
href="https://redirect.github.com/python/typing_extensions/issues/656">#656</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/e589a26da73b075c5276bae40b86db1af0144f84"><code>e589a26</code></a>
Coverage: add detailed report to job summary (<a
href="https://redirect.github.com/python/typing_extensions/issues/655">#655</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/67d37fed1298e050f74d5acc95b2621bd37837ad"><code>67d37fe</code></a>
Coverage: Implement fail_under (<a
href="https://redirect.github.com/python/typing_extensions/issues/654">#654</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/e9ae26f5286edee9262727755ecb9ad16e999192"><code>e9ae26f</code></a>
Don't delete previous coverage comment (<a
href="https://redirect.github.com/python/typing_extensions/issues/653">#653</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/ac80bb728a3006fc88ef7373b92f0c25cfcc7895"><code>ac80bb7</code></a>
Add Coverage workflow (<a
href="https://redirect.github.com/python/typing_extensions/issues/623">#623</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/abaaafd98c1cc7e5baf098ec287a3d22cb339670"><code>abaaafd</code></a>
Prepare release 4.15.0rc1 (<a
href="https://redirect.github.com/python/typing_extensions/issues/650">#650</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/98104053ea8d49bcdd247804e5fa9f73136acbd4"><code>9810405</code></a>
Add <code>@disjoint_base</code> (PEP 800) (<a
href="https://redirect.github.com/python/typing_extensions/issues/634">#634</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/7ee9e05fd484d06899ce56e80f5e1aa4c760fc03"><code>7ee9e05</code></a>
Backport type_params fix from CPython (<a
href="https://redirect.github.com/python/typing_extensions/issues/646">#646</a>)</li>
<li><a
href="https://github.com/python/typing_extensions/commit/1e8eb9c06ef51b3a1e1f05303a16feca13f5ed98"><code>1e8eb9c</code></a>
Do not refer to PEP 705 as being experimental (<a
href="https://redirect.github.com/python/typing_extensions/issues/648">#648</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/python/typing_extensions/compare/4.14.1...4.15.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `anyio` from 4.10.0 to 4.13.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/agronholm/anyio/releases">anyio's
releases</a>.</em></p>
<blockquote>
<h2>4.13.0</h2>
<ul>
<li>Dropped support for Python 3.9</li>
<li>Added a <code>ttl</code> parameter to the
<code>anyio.functools.lru_cache</code> wrapper (<a
href="https://redirect.github.com/agronholm/anyio/pull/1073">#1073</a>;
PR by <a
href="https://github.com/Graeme22"><code>@​Graeme22</code></a>)</li>
<li>Widened the type annotations of file I/O streams to accept
<code>IO[bytes]</code> instead of just <code>BinaryIO</code> (<a
href="https://redirect.github.com/agronholm/anyio/issues/1078">#1078</a>)</li>
<li>Fixed <code>anyio.Path</code> not being compatible with Python 3.15
due to the removal of <code>pathlib.Path.is_reserved()</code> and the
addition of <code>pathlib.Path.__vfspath__()</code> (<a
href="https://redirect.github.com/agronholm/anyio/issues/1061">#1061</a>;
PR by <a
href="https://github.com/veeceey"><code>@​veeceey</code></a>)</li>
<li>Fixed the <code>BrokenResourceError</code> raised by the asyncio
<code>SocketStream</code> not having the original exception as its cause
(<a
href="https://redirect.github.com/agronholm/anyio/issues/1055">#1055</a>;
PR by <a
href="https://github.com/veeceey"><code>@​veeceey</code></a>)</li>
<li>Fixed the <code>TypeError</code> raised when using &quot;func&quot;
as a parameter name in <code>pytest.mark.parametrize</code> when using
the pytest plugin (<a
href="https://redirect.github.com/agronholm/anyio/pull/1068">#1068</a>;
PR by <a
href="https://github.com/JohnnyDeuss"><code>@​JohnnyDeuss</code></a>)</li>
<li>Fixed the pytest plugin not running tests that had the
<code>anyio</code> marker added programmatically via
<code>pytest_collection_modifyitems</code> (<a
href="https://redirect.github.com/agronholm/anyio/issues/422">#422</a>;
PR by <a
href="https://github.com/chbndrhnns"><code>@​chbndrhnns</code></a>)</li>
<li>Fixed cancellation exceptions leaking from a
<code>CancelScope</code> on asyncio when they are contained in an
exception group alongside non-cancellation exceptions (<a
href="https://redirect.github.com/agronholm/anyio/issues/1091">#1091</a>;
PR by <a
href="https://github.com/gschaffner"><code>@​gschaffner</code></a>)</li>
<li>Fixed <code>Condition.wait()</code> not passing on a notification
when the task is cancelled but already received a notification</li>
<li>Fixed inverted condition in the process pool shutdown phase which
would cause still-running pooled processes not to be terminated (<a
href="https://redirect.github.com/agronholm/anyio/pull/1074">#1074</a>;
PR by <a
href="https://github.com/bysiber"><code>@​bysiber</code></a>)</li>
</ul>
<h2>4.12.1</h2>
<ul>
<li>Changed all functions currently raising the private
<code>NoCurrentAsyncBackend</code> exception (since v4.12.0) to instead
raise the public <code>NoEventLoopError</code> exception (<a
href="https://redirect.github.com/agronholm/anyio/issues/1048">#1048</a>)</li>
<li>Fixed <code>anyio.functools.lru_cache</code> not working with
instance methods (<a
href="https://redirect.github.com/agronholm/anyio/issues/1042">#1042</a>)</li>
</ul>
<h2>4.12.0</h2>
<ul>
<li>Added support for asyncio's <a
href="https://docs.python.org/3/library/asyncio-graph.html">task call
graphs</a> on Python 3.14 and later when using AnyIO's task groups (<a
href="https://redirect.github.com/agronholm/anyio/pull/1025">#1025</a>)</li>
<li>Added an asynchronous implementation of the <code>functools</code>
module (<a
href="https://redirect.github.com/agronholm/anyio/pull/1001">#1001</a>)</li>
<li>Added support for <code>uvloop=True</code> on Windows via the <a
href="https://github.com/Vizonex/Winloop">winloop</a> implementation (<a
href="https://redirect.github.com/agronholm/anyio/pull/960">#960</a>; PR
by <a href="https://github.com/Vizonex"><code>@​Vizonex</code></a>)</li>
<li>Added support for use as a context manager to
<code>anyio.lowlevel.RunVar</code> (<a
href="https://redirect.github.com/agronholm/anyio/pull/1003">#1003</a>)</li>
<li>Added <code>__all__</code> declarations to public submodules
(<code>anyio.lowlevel</code> etc.) (<a
href="https://redirect.github.com/agronholm/anyio/pull/1009">#1009</a>)</li>
<li>Added the ability to set the token count of a
<code>CapacityLimiter</code> to zero (<a
href="https://redirect.github.com/agronholm/anyio/pull/1019">#1019</a>;
requires Python 3.10 or later when using Trio)</li>
<li>Added parameters <code>case_sensitive</code> and
<code>recurse_symlinks</code> along with support for path-like objects
to <code>anyio.Path.glob()</code> and <code>anyio.Path.rglob()</code>
(<a
href="https://redirect.github.com/agronholm/anyio/pull/1033">#1033</a>;
PR by <a
href="https://github.com/northisup"><code>@​northisup</code></a>)</li>
<li>Dropped <code>sniffio</code> as a direct dependency and added the
<code>get_available_backends()</code> function (<a
href="https://redirect.github.com/agronholm/anyio/pull/1021">#1021</a>)</li>
<li>Fixed <code>Process.stdin.send()</code> not raising
<code>ClosedResourceError</code> and <code>BrokenResourceError</code> on
asyncio. Previously, a non-AnyIO exception was raised in such cases (<a
href="https://redirect.github.com/agronholm/anyio/issues/671">#671</a>;
PR by <a
href="https://github.com/gschaffner"><code>@​gschaffner</code></a>)</li>
<li>Fixed <code>Process.stdin.send()</code> not checkpointing before
writing data on asyncio (<a
href="https://redirect.github.com/agronholm/anyio/issues/1002">#1002</a>;
PR by <a
href="https://github.com/gschaffner"><code>@​gschaffner</code></a>)</li>
<li>Fixed a race condition where cancelling a <code>Future</code> from
<code>BlockingPortal.start_task_soon()</code> would sometimes not cancel
the async function (<a
href="https://redirect.github.com/agronholm/anyio/issues/1011">#1011</a>;
PR by <a
href="https://github.com/gschaffner"><code>@​gschaffner</code></a>)</li>
<li>Fixed the presence of the pytest plugin causing breakage with older
versions of pytest (&lt;= 6.1.2) (<a
href="https://redirect.github.com/agronholm/anyio/issues/1028">#1028</a>;
PR by <a href="https://github.com/saper"><code>@​saper</code></a>)</li>
<li>Fixed a rarely occurring <code>RuntimeError: Set changed size during
iteration</code> while shutting down the process pool when using the
asyncio backend (<a
href="https://redirect.github.com/agronholm/anyio/issues/985">#985</a>)</li>
</ul>
<h2>4.11.0</h2>
<ul>
<li>Added support for cancellation reasons (the <code>reason</code>
parameter to <code>CancelScope.cancel()</code>) (<a
href="https://redirect.github.com/agronholm/anyio/pull/975">#975</a>)</li>
<li>Bumped the minimum version of Trio to v0.31.0</li>
<li>Added the ability to enter the event loop from foreign (non-worker)
threads by passing the return value of
<code>anyio.lowlevel.current_token()</code> to
<code>anyio.from_thread.run()</code> and
<code>anyio.from_thread.run_sync()</code> as the <code>token</code>
keyword argument (<a
href="https://redirect.github.com/agronholm/anyio/issues/256">#256</a>)</li>
<li>Added pytest option (<code>anyio_mode = &quot;auto&quot;</code>) to
make the pytest plugin automatically handle all async tests (<a
href="https://redirect.github.com/agronholm/anyio/pull/971">#971</a>)</li>
<li>Added the <code>anyio.Condition.wait_for()</code> method for feature
parity with asyncio (<a
href="https://redirect.github.com/agronholm/anyio/pull/974">#974</a>)</li>
<li>Changed the default type argument of
<code>anyio.abc.TaskStatus</code> from <code>Any</code> to
<code>None</code> (<a
href="https://redirect.github.com/agronholm/anyio/pull/964">#964</a>)</li>
<li>Fixed TCP listener behavior to guarantee the same ephemeral port is
used for all socket listeners when <code>local_port=0</code> (<a
href="https://redirect.github.com/agronholm/anyio/issues/857">#857</a>;
PR by <a href="https://github.com/11kkw"><code>@​11kkw</code></a> and <a
href="https://github.com/agronholm"><code>@​agronholm</code></a>)</li>
<li>Fixed inconsistency between Trio and asyncio where a TCP stream that
previously raised a <code>BrokenResourceError</code> on
<code>send()</code> would still raise <code>BrokenResourceError</code>
after the stream was closed on asyncio, but
<code>ClosedResourceError</code> on Trio. They now both raise a
<code>ClosedResourceError</code> in this scenario. (<a
href="https://redirect.github.com/agronholm/anyio/issues/671">#671</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/agronholm/anyio/commit/afbe93ca9d0c447adf26e9c1715ac20870622bf2"><code>afbe93c</code></a>
Bumped up the version</li>
<li><a
href="https://github.com/agronholm/anyio/commit/33bdf2e4b4f40c2df178123746147a6d2471808d"><code>33bdf2e</code></a>
Rearranged the changelog entries</li>
<li><a
href="https://github.com/agronholm/anyio/commit/19e09e25bc5a23dd78a577d8c3909dd377057c78"><code>19e09e2</code></a>
Fixed inverted condition in _forcibly_shutdown_process_pool_on_exit (<a
href="https://redirect.github.com/agronholm/anyio/issues/1074">#1074</a>)</li>
<li><a
href="https://github.com/agronholm/anyio/commit/9369d80b9e8292f2a892a9d5c73923c6a28aa08c"><code>9369d80</code></a>
Fixed Condition.wait() not handing over notification when cancelled</li>
<li><a
href="https://github.com/agronholm/anyio/commit/6f122abdc6f6b166c6b6ac27d36d55cdf8fa08e8"><code>6f122ab</code></a>
Fixed cancellation exceptions leaking from a <code>CancelScope</code> on
asyncio when th...</li>
<li><a
href="https://github.com/agronholm/anyio/commit/beaa45aff568a4020f2faf317321dd92f0e1f4a0"><code>beaa45a</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/agronholm/anyio/issues/1097">#1097</a>)</li>
<li><a
href="https://github.com/agronholm/anyio/commit/602f6606dcf3f37702686a4f3e161328c537b07f"><code>602f660</code></a>
Widened type annotations to accept IO[bytes] in file streams</li>
<li><a
href="https://github.com/agronholm/anyio/commit/b5dcd45170701a756ba634197398f05d4710cab3"><code>b5dcd45</code></a>
Added note about erasing the template</li>
<li><a
href="https://github.com/agronholm/anyio/commit/d68670b3b4e0917d4caff2de082e03220f3e05a1"><code>d68670b</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/agronholm/anyio/issues/1090">#1090</a>)</li>
<li><a
href="https://github.com/agronholm/anyio/commit/fc17a22dd948e6a3d90d99908813f0010dfc3d2c"><code>fc17a22</code></a>
tweak to_thread docs about abandon_on_cancel (<a
href="https://redirect.github.com/agronholm/anyio/issues/1088">#1088</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/agronholm/anyio/compare/4.10.0...4.13.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `typer` from 0.16.0 to 0.25.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/fastapi/typer/releases">typer's
releases</a>.</em></p>
<blockquote>
<h2>0.25.1</h2>
<h3>Features</h3>
<ul>
<li>🔧 Add Typer Library Skill for Agents. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1620">#1620</a> by
<a href="https://github.com/svlandeg"><code>@​svlandeg</code></a>.</li>
</ul>
<h3>Internal</h3>
<ul>
<li>⬆ Bump ruff from 0.15.11 to 0.15.12. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1722">#1722</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump prek from 0.3.10 to 0.3.11. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1723">#1723</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
</ul>
<h2>0.25.0</h2>
<h3>Features</h3>
<ul>
<li>🚸 Don't truncate code lines in traceback when formatted with Rich.
PR <a
href="https://redirect.github.com/fastapi/typer/pull/1695">#1695</a> by
<a
href="https://github.com/YuriiMotov"><code>@​YuriiMotov</code></a>.</li>
</ul>
<h2>0.24.2</h2>
<h3>Fixes</h3>
<ul>
<li>🐛 Ensure that <code>typer.launch</code> forwards correctly when
launching a file. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1708">#1708</a> by
<a href="https://github.com/svlandeg"><code>@​svlandeg</code></a>.</li>
</ul>
<h3>Refactors</h3>
<ul>
<li>🎨 Ensure <code>ty</code> runs without errors. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1628">#1628</a> by
<a href="https://github.com/svlandeg"><code>@​svlandeg</code></a>.</li>
</ul>
<h3>Docs</h3>
<ul>
<li>📝 Add dates to release notes. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1612">#1612</a> by
<a
href="https://github.com/YuriiMotov"><code>@​YuriiMotov</code></a>.</li>
<li>💄 Fix code blocks in reference docs overflowing table width. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1630">#1630</a> by
<a
href="https://github.com/YuriiMotov"><code>@​YuriiMotov</code></a>.</li>
<li>📝 Fix broken link to FastAPI and Friends newsletter. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1540">#1540</a> by
<a
href="https://github.com/Karlemami"><code>@​Karlemami</code></a>.</li>
<li>🔨 Handle external links <code>target=_blank</code> and CSS
automatically in JS and CSS. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1622">#1622</a> by
<a href="https://github.com/tiangolo"><code>@​tiangolo</code></a>.</li>
<li>📝 Remove link to Typer developer survey. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1609">#1609</a> by
<a href="https://github.com/svlandeg"><code>@​svlandeg</code></a>.</li>
<li>✏️ Clean up documentation in <code>install.md</code> file. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1606">#1606</a> by
<a
href="https://github.com/Johandielangman"><code>@​Johandielangman</code></a>.</li>
</ul>
<h3>Internal</h3>
<ul>
<li>⬆ Bump mypy from 1.20.1 to 1.20.2. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1715">#1715</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump prek from 0.3.9 to 0.3.10. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1716">#1716</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump pydantic-settings from 2.13.1 to 2.14.0. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1713">#1713</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump ty from 0.0.31 to 0.0.32. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1711">#1711</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump pydantic from 2.13.2 to 2.13.3. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1712">#1712</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump pygments from 2.19.2 to 2.20.0. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1667">#1667</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump pymdown-extensions from 10.20 to 10.21.2. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1710">#1710</a> by
<a
href="https://github.com/YuriiMotov"><code>@​YuriiMotov</code></a>.</li>
<li>⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1700">#1700</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump pydantic from 2.13.1 to 2.13.2. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1703">#1703</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1701">#1701</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump ruff from 0.15.10 to 0.15.11. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1704">#1704</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1702">#1702</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump astral-sh/setup-uv from 7.6.0 to 8.1.0. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1699">#1699</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump ty from 0.0.30 to 0.0.31. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1696">#1696</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump pydantic from 2.13.0 to 2.13.1. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1697">#1697</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/fastapi/typer/blob/master/docs/release-notes.md">typer's
changelog</a>.</em></p>
<blockquote>
<h2>0.25.1 (2026-04-30)</h2>
<h3>Features</h3>
<ul>
<li>🔧 Add Typer Library Skill for Agents. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1620">#1620</a> by
<a href="https://github.com/svlandeg"><code>@​svlandeg</code></a>.</li>
</ul>
<h3>Internal</h3>
<ul>
<li>⬆ Bump ruff from 0.15.11 to 0.15.12. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1722">#1722</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump prek from 0.3.10 to 0.3.11. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1723">#1723</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
</ul>
<h2>0.25.0 (2026-04-26)</h2>
<h3>Features</h3>
<ul>
<li>🚸 Don't truncate code lines in traceback when formatted with Rich.
PR <a
href="https://redirect.github.com/fastapi/typer/pull/1695">#1695</a> by
<a
href="https://github.com/YuriiMotov"><code>@​YuriiMotov</code></a>.</li>
</ul>
<h2>0.24.2 (2026-04-22)</h2>
<h3>Fixes</h3>
<ul>
<li>🐛 Ensure that <code>typer.launch</code> forwards correctly when
launching a file. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1708">#1708</a> by
<a href="https://github.com/svlandeg"><code>@​svlandeg</code></a>.</li>
</ul>
<h3>Refactors</h3>
<ul>
<li>🎨 Ensure <code>ty</code> runs without errors. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1628">#1628</a> by
<a href="https://github.com/svlandeg"><code>@​svlandeg</code></a>.</li>
</ul>
<h3>Docs</h3>
<ul>
<li>📝 Add dates to release notes. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1612">#1612</a> by
<a
href="https://github.com/YuriiMotov"><code>@​YuriiMotov</code></a>.</li>
<li>💄 Fix code blocks in reference docs overflowing table width. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1630">#1630</a> by
<a
href="https://github.com/YuriiMotov"><code>@​YuriiMotov</code></a>.</li>
<li>📝 Fix broken link to FastAPI and Friends newsletter. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1540">#1540</a> by
<a
href="https://github.com/Karlemami"><code>@​Karlemami</code></a>.</li>
<li>🔨 Handle external links <code>target=_blank</code> and CSS
automatically in JS and CSS. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1622">#1622</a> by
<a href="https://github.com/tiangolo"><code>@​tiangolo</code></a>.</li>
<li>📝 Remove link to Typer developer survey. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1609">#1609</a> by
<a href="https://github.com/svlandeg"><code>@​svlandeg</code></a>.</li>
<li>✏️ Clean up documentation in <code>install.md</code> file. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1606">#1606</a> by
<a
href="https://github.com/Johandielangman"><code>@​Johandielangman</code></a>.</li>
</ul>
<h3>Internal</h3>
<ul>
<li>⬆ Bump mypy from 1.20.1 to 1.20.2. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1715">#1715</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump prek from 0.3.9 to 0.3.10. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1716">#1716</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump pydantic-settings from 2.13.1 to 2.14.0. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1713">#1713</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump ty from 0.0.31 to 0.0.32. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1711">#1711</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump pydantic from 2.13.2 to 2.13.3. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1712">#1712</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump pygments from 2.19.2 to 2.20.0. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1667">#1667</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump pymdown-extensions from 10.20 to 10.21.2. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1710">#1710</a> by
<a
href="https://github.com/YuriiMotov"><code>@​YuriiMotov</code></a>.</li>
<li>⬆ Bump actions/cache from 5.0.4 to 5.0.5. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1700">#1700</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump pydantic from 2.13.1 to 2.13.2. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1703">#1703</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump actions/upload-artifact from 7.0.0 to 7.0.1. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1701">#1701</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump ruff from 0.15.10 to 0.15.11. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1704">#1704</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
<li>⬆ Bump cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR <a
href="https://redirect.github.com/fastapi/typer/pull/1702">#1702</a> by
<a
href="https://github.com/apps/dependabot"><code>@​dependabot[bot]</code></a>.</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/fastapi/typer/commit/cfcc2ef9f948bcce67897a6c7e689d39da690bf9"><code>cfcc2ef</code></a>
🔖 Release version 0.25.1</li>
<li><a
href="https://github.com/fastapi/typer/commit/13846cc59bd574567a9a1f56eae3cd42b9aa2a4f"><code>13846cc</code></a>
📝 Update release notes</li>
<li><a
href="https://github.com/fastapi/typer/commit/a43746997ad6f2b4a8829c69c919f4d4c2cc0698"><code>a437469</code></a>
🔧 Add Typer Library Skill for Agents (<a
href="https://redirect.github.com/fastapi/typer/issues/1620">#1620</a>)</li>
<li><a
href="https://github.com/fastapi/typer/commit/ba6cc2c9e7cba35f891c91118e228e1d2da35edb"><code>ba6cc2c</code></a>
📝 Update release notes</li>
<li><a
href="https://github.com/fastapi/typer/commit/0f3ead07c2bb384fdd590e895ca6705582c58d89"><code>0f3ead0</code></a>
⬆ Bump ruff from 0.15.11 to 0.15.12 (<a
href="https://redirect.github.com/fastapi/typer/issues/1722">#1722</a>)</li>
<li><a
href="https://github.com/fastapi/typer/commit/db4ade64936599b3460f2fc0a7c550c3fedc33b0"><code>db4ade6</code></a>
📝 Update release notes</li>
<li><a
href="https://github.com/fastapi/typer/commit/5a5206ceed2afdf234f88a6e2ef74ad9ebdf0d92"><code>5a5206c</code></a>
⬆ Bump prek from 0.3.10 to 0.3.11 (<a
href="https://redirect.github.com/fastapi/typer/issues/1723">#1723</a>)</li>
<li><a
href="https://github.com/fastapi/typer/commit/959845e173b4bec0d606d99247815c2710613ca8"><code>959845e</code></a>
🔖 Release version 0.25.0</li>
<li><a
href="https://github.com/fastapi/typer/commit/5e1fcfb5935e7ac3ff3c7526ef297eae31bd4822"><code>5e1fcfb</code></a>
📝 Update release notes</li>
<li><a
href="https://github.com/fastapi/typer/commit/dfb21ad034804584702d553ebfba40d8f4d791b9"><code>dfb21ad</code></a>
🚸 Don't truncate code lines in traceback when formatted with Rich (<a
href="https://redirect.github.com/fastapi/typer/issues/1695">#1695</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/fastapi/typer/compare/0.16.0...0.25.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `uvicorn` from 0.35.0 to 0.47.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/Kludex/uvicorn/releases">uvicorn's
releases</a>.</em></p>
<blockquote>
<h2>Version 0.47.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Eagerly import the ASGI app in the parent process by <a
href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/Kludex/uvicorn/pull/2919">Kludex/uvicorn#2919</a></li>
<li>Add <code>ssl_context_factory</code> for custom
<code>SSLContext</code> configuration by <a
href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/Kludex/uvicorn/pull/2920">Kludex/uvicorn#2920</a></li>
<li>Treat <code>fd=0</code> as a valid file descriptor with
reload/workers by <a
href="https://github.com/eltoder"><code>@​eltoder</code></a> in <a
href="https://redirect.github.com/Kludex/uvicorn/pull/2927">Kludex/uvicorn#2927</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Kludex/uvicorn/compare/0.46.0...0.47.0">https://github.com/Kludex/uvicorn/compare/0.46.0...0.47.0</a></p>
<h2>Version 0.46.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Support <code>ws_max_size</code> in <code>wsproto</code>
implementation by <a
href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/Kludex/uvicorn/pull/2915">Kludex/uvicorn#2915</a></li>
<li>Support <code>ws_ping_interval</code> and
<code>ws_ping_timeout</code> in <code>wsproto</code> implementation by
<a href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/Kludex/uvicorn/pull/2916">Kludex/uvicorn#2916</a></li>
<li>Use <code>bytearray</code> for incoming WebSocket message buffer in
websockets-sansio by <a
href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/Kludex/uvicorn/pull/2917">Kludex/uvicorn#2917</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0">https://github.com/Kludex/uvicorn/compare/0.45.0...0.46.0</a></p>
<h2>Version 0.45.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Preserve forwarded client ports in proxy headers middleware by <a
href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/Kludex/uvicorn/pull/2903">Kludex/uvicorn#2903</a></li>
<li>Accept <code>os.PathLike</code> for <code>log_config</code> by <a
href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/Kludex/uvicorn/pull/2905">Kludex/uvicorn#2905</a></li>
<li>Accept <code>log_level</code> strings case-insensitively by <a
href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/Kludex/uvicorn/pull/2907">Kludex/uvicorn#2907</a></li>
<li>Raise helpful <code>ImportError</code> when PyYAML is missing for
YAML log config by <a
href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/Kludex/uvicorn/pull/2906">Kludex/uvicorn#2906</a></li>
<li>Revert empty context for ASGI runs by <a
href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/Kludex/uvicorn/pull/2911">Kludex/uvicorn#2911</a></li>
<li>Add <code>--reset-contextvars</code> flag to isolate ASGI request
context by <a href="https://github.com/Kludex"><code>@​Kludex</code></a>
in <a
href="https://redirect.github.com/Kludex/uvicorn/pull/2912">Kludex/uvicorn#2912</a></li>
<li>Revert &quot;Emit <code>http.disconnect</code> on server shutdown
for streaming responses&quot; (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2829">#2829</a>)
by <a href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/Kludex/uvicorn/pull/2913">Kludex/uvicorn#2913</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a
href="https://github.com/Krishnachaitanyakc"><code>@​Krishnachaitanyakc</code></a>
made their first contribution in <a
href="https://redirect.github.com/Kludex/uvicorn/pull/2870">Kludex/uvicorn#2870</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0">https://github.com/Kludex/uvicorn/compare/0.44.0...0.45.0</a></p>
<h2>Version 0.44.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Implement websocket keepalive pings for websockets-sansio by <a
href="https://github.com/Kludex"><code>@​Kludex</code></a> in <a
href="https://redirect.github.com/Kludex/uvicorn/pull/2888">Kludex/uvicorn#2888</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0">https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0</a></p>
<h2>Version 0.43.0</h2>
<h2>Changed</h2>
<ul>
<li>Emit <code>http.disconnect</code> ASGI <code>receive()</code> event
on server shutting down for streaming responses (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2829">#2829</a>)</li>
<li>Use native <code>context</code> parameter for
<code>create_task</code> on Python 3.11+ (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2859">#2859</a>)</li>
<li>Drop cast in ASGI types (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2875">#2875</a>)</li>
</ul>
<hr />
<p><strong>Full Changelog</strong>: <a
href="https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0">https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0</a></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md">uvicorn's
changelog</a>.</em></p>
<blockquote>
<h2>0.47.0 (May 14, 2026)</h2>
<h3>Added</h3>
<ul>
<li>Add <code>ssl_context_factory</code> for custom
<code>SSLContext</code> configuration (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2920">#2920</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Eagerly import the ASGI app in the parent process (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2919">#2919</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Treat <code>fd=0</code> as a valid file descriptor with
reload/workers (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2927">#2927</a>)</li>
</ul>
<h2>0.46.0 (April 23, 2026)</h2>
<h3>Added</h3>
<ul>
<li>Support <code>ws_max_size</code> in <code>wsproto</code>
implementation (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2915">#2915</a>)</li>
<li>Support <code>ws_ping_interval</code> and
<code>ws_ping_timeout</code> in <code>wsproto</code> implementation (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2916">#2916</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Use <code>bytearray</code> for incoming WebSocket message buffer in
<code>websockets-sansio</code> (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2917">#2917</a>)</li>
</ul>
<h2>0.45.0 (April 21, 2026)</h2>
<h3>Added</h3>
<ul>
<li>Add <code>--reset-contextvars</code> flag to isolate ASGI request
context (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2912">#2912</a>)</li>
<li>Accept <code>os.PathLike</code> for <code>log_config</code> (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2905">#2905</a>)</li>
<li>Accept <code>log_level</code> strings case-insensitively (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2907">#2907</a>)</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Revert &quot;Emit <code>http.disconnect</code> on server shutdown
for streaming responses&quot; (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2913">#2913</a>)</li>
<li>Revert &quot;Explicitly start ASGI run with empty context&quot; (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2911">#2911</a>)</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Preserve forwarded client ports in proxy headers middleware (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2903">#2903</a>)</li>
<li>Raise helpful <code>ImportError</code> when PyYAML is missing for
YAML log config (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2906">#2906</a>)</li>
</ul>
<h2>0.44.0 (April 6, 2026)</h2>
<h3>Added</h3>
<ul>
<li>Implement websocket keepalive pings for websockets-sansio (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2888">#2888</a>)</li>
</ul>
<h2>0.43.0 (April 3, 2026)</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/Kludex/uvicorn/commit/479a2c0c89186714f1aac52aecdebebf271395ac"><code>479a2c0</code></a>
Version 0.47.0 (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2937">#2937</a>)</li>
<li><a
href="https://github.com/Kludex/uvicorn/commit/89347fd166ebedf98fb3f806ce8ea44e93b1c2b5"><code>89347fd</code></a>
Add 7-day cooldown for dependency resolution via uv exclude-newer (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2936">#2936</a>)</li>
<li><a
href="https://github.com/Kludex/uvicorn/commit/767315b38ae509cee9fe8ee9d09f6da920536096"><code>767315b</code></a>
Drop unused contents/actions permissions from zizmor workflow (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2935">#2935</a>)</li>
<li><a
href="https://github.com/Kludex/uvicorn/commit/f25ee43e68a9678453cbca99ad96f1a447ff34af"><code>f25ee43</code></a>
chore(deps): bump urllib3 from 2.6.3 to 2.7.0 (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2933">#2933</a>)</li>
<li><a
href="https://github.com/Kludex/uvicorn/commit/8782666189a3d36c978de5698620db705659bf44"><code>8782666</code></a>
Fix typo in <code>docs/deployment/index.md</code>. (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2932">#2932</a>)</li>
<li><a
href="https://github.com/Kludex/uvicorn/commit/ad5ff87c869e8a34e9b04fcd5ca38d65c526893c"><code>ad5ff87</code></a>
Treat <code>fd=0</code> as a valid file descriptor with reload/workers
(<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2927">#2927</a>)</li>
<li><a
href="https://github.com/Kludex/uvicorn/commit/6761b2c8f9272fa0e908d0b9cdcb3cb0aa11382f"><code>6761b2c</code></a>
Remove Hugging Face sponsor block from docs (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2923">#2923</a>)</li>
<li><a
href="https://github.com/Kludex/uvicorn/commit/438f64834de00708a9bb3548a36090e7a924ad84"><code>438f648</code></a>
Surface sponsors on welcome page and sidebar (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2921">#2921</a>)</li>
<li><a
href="https://github.com/Kludex/uvicorn/commit/10ddc6dd296cb6e432a00835abe27f1c822373c1"><code>10ddc6d</code></a>
Add <code>ssl_context_factory</code> for custom <code>SSLContext</code>
configuration (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2920">#2920</a>)</li>
<li><a
href="https://github.com/Kludex/uvicorn/commit/b499bc45101d920e691e384025d728507215d4d1"><code>b499bc4</code></a>
Eagerly import the ASGI app in the parent process (<a
href="https://redirect.github.com/Kludex/uvicorn/issues/2919">#2919</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/Kludex/uvicorn/compare/0.35.0...0.47.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `openai` from 2.14.0 to 2.37.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/openai/openai-python/releases">openai's
releases</a>.</em></p>
<blockquote>
<h2>v2.37.0</h2>
<h2>2.37.0 (2026-05-13)</h2>
<p>Full Changelog: <a
href="https://github.com/openai/openai-python/compare/v2.36.0...v2.37.0">v2.36.0...v2.37.0</a></p>
<h3>Features</h3>
<ul>
<li>…
@onematchfox onematchfox deleted the fix-ui-memory-configuration branch May 21, 2026 06:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants