Released on September 19, 2025
Enhancements ➕➕
- split
deploy.py
into a module by @zzstoatzz in #18925 - Add minimal V1→V2 concurrency adapter by @zzstoatzz in #18971
- Update task concurrency slot orchestration rules to work with global concurrency limits by @desertaxle in #18983
- Update task engine to use GCLs to limit task concurrency by @desertaxle in #18982
- Migrate V1 concurrency limits to V2 format in database by @zzstoatzz in #18968
- Add pagination support to lease storage
read_active_lease_ids
by @zzstoatzz in #18973 - Add
list_holders_for_limit
toConcurrencyLeaseStorage
protocol by @zzstoatzz in #18970
Bug Fixes 🐞
- Fix
set_working_directory
to return absolute path by @desertaxle in #18932 - Silence retryable SQLite lock errors by @zzstoatzz in #18957
- Fix
wait()
to monitor all futures concurrently with timeout by @zzstoatzz in #18960 - Fix blocks not registering schema for nested Blocks in piped union types by @GalLadislav in #18920
- Fix atomicity issue in GCL-backed tag-based concurrency limits by @desertaxle in #18991
Development & Tidiness 🧹
- Add Python environment setup to Claude workflow by @desertaxle in #18931
- Add models for validating loaded
prefect.yaml
files by @desertaxle in #18941 - Replace pre-push docs generation with GitHub Action by @desertaxle in #18930
- Install
mdxify
explicitly in CI by @desertaxle in #18954 - Add starlette status code compatibility layer by @zzstoatzz in #18963
Documentation 📓
- fix: add redirect setting to docs.json to fix /latest path 404s by @zzstoatzz in #18945
- fix: add errors.404.redirect setting to fix /latest path 404s by @zzstoatzz in #18946
Full Changelog: 3.4.18...3.4.19