3.6.6 - The Eternal Docket of the Spotless Server
Released on December 08, 2025 Enhancements ➕➕- Add client-side configuration for deployment concurrency grace period by @devin-ai-integration[bot] in #19489
- Add PostgreSQL
search_pathsupport via settings by @devin-ai-integration[bot] in #19620 - Add memory safeguards to event persister service by @desertaxle in #19651
- Add perpetual services infrastructure and convert
cancellation_cleanupto perpetual Docket task by @zzstoatzz in #19715 - Convert
pause_expirationsservice to perpetual Docket task by @zzstoatzz in #19719
- Prevent uvloop from setting global event loop policy in healthcheck by @zzstoatzz in #19660
- Clarify
result_storageusage with@taskand@flowdecorators by @devin-ai-integration[bot] in #19671 - Exclude
DEFAULTcache policy from triggering automaticpersist_resultby @devin-ai-integration[bot] in #19673 - Remove return type annotation from settings serializer to fix OpenAPI schema by @zzstoatzz in #19616
- Use
history_interval_secondsas parameter name in OpenAPI schema by @desertaxle in #19659
- Turn off dependabot for Vue UI package updates by @desertaxle in #19636
- Add weekly release kickoff workflow by @desertaxle in #19661
- Migrate
prefect.input.actionsfromsync_compatibletoasync_dispatchby @zzstoatzz in #19632 - Remove auto-generate docs workflow by @desertaxle in #19665
- Fix incorrect Dockerfile example in “Deploy via Python” guide by @desertaxle in #19653
3.6.5 - Batch Me If You Can
Released on December 04, 2025 Enhancements ➕➕- Raise if event is too big by @jakekaplan in #19531
- Support
Pathobjects inresult_storageparameter by @zzstoatzz in #19533 - Hide “Join the Community” in air-gapped deployments by @zzstoatzz in #19540
- Parametrize
xreadgroupbatch size in consumer and addEventPersisterservice setting by @saschwartz in #19545 - Parametrize
xautoclaimbatch size by @saschwartz in #19557 - Parametrize
TaskRunRecorderandTriggerservice message read batch size by @saschwartz in #19559 - Add Slack GovCloud (slack-gov.com) webhook support to
SlackWebhookblock by @devin-ai-integration[bot] in #19565 - Support dot-delimited syntax for
job_variablesin workers by @devin-ai-integration[bot] in #19619 - Add client-side caching for concurrency limits by @devin-ai-integration[bot] in #19625
- Support
username:passwordauth for self-hosted BitBucket instances by @zzstoatzz in #19516 - Optimize
/api/task_runs/countendpoint performance by @naaa760 in #19548 - Fix docker compose file in self hosted docs by @rodeyfeld in #19551
- Fix performance issues with sync tasks on Windows by @desertaxle in #19595
- Fix dead thread hang by @zzstoatzz in #19601
- Allow Jinja templates in trigger enabled field during YAML loading by @zzstoatzz in #19610
- Fix compatibility with
fastapi==0.123.7by @desertaxle in #19626 - Allow EC2 task definitions to omit
launchTypefor capacity providers by @zzstoatzz in #19630
- Update sucrase to remove vulnerable glob dependency by @zzstoatzz in #19599
- Add timeout to worker teardown to prevent test flakes by @zzstoatzz in #19465
- Update CODEOWNERS by @desertaxle in #19578
- Pin
pytest-asyncioto fix 3.10 client tests by @desertaxle in #19609 - Fix flakes in
TestReadTaskRunCountsByState::test_returns_all_state_typesby @desertaxle in #19612
- Add per-worker task concurrency example by @zzstoatzz in #19541
- Improve database maintenance documentation and examples by @zzstoatzz in #19604
- Fix YAML key for Bitbucket repository by @desertaxle in #19607
- Add Google Tag Manager integration to docs by @zzstoatzz in #19629
3.6.4 - No Deployment Left Unparametrized
Released on November 21, 2025 Bug Fixes 🐞- fix: preserve event template parameters in deployment triggers by @zzstoatzz in #19504
- Fix truncating log behavior by @jakekaplan in #19496
- Chore: Bump ui library by @znicholasbrown in #19492
- docs: Add migration note about unmapped mutable objects by @zzstoatzz in #19494
3.6.3 - That’s JSON Bourne
Released on November 19, 2025 Enhancements ➕➕- Add
-o jsonoutput option toprefect flow-run lscommand by @devin-ai-integration[bot] in #19484 - fix: allow pause_flow_run() to pause parent flow when called from task by @zzstoatzz in #19457
- Use acquisition service pattern for lease-based concurrency slots by @bunchesofdonald in #19451
- fix: respect subflow attributes (log_prints, result_storage) when running inside task by @zzstoatzz in #19450
- fix: defer forward reference resolution in ValidatedFunction by @zzstoatzz in #19452
- fix: validate deployment triggers after templating so jinja-based booleans work, should close #19348 by @iclectic in #19414
- fix: show detailed validation errors for top-level prefect.yaml fields by @zzstoatzz in #19468
- Clamp denied_slots decay rate to match retry-after calculation by @bunchesofdonald in #19466
- Fix: Enable parameter type checking for @task decorator by @zzstoatzz in #19459
- add —build-arg to dev build-image command to allow direct passing of… by @conrade-ctc in #19473
- Add database cleanup example with human/AI approval by @zzstoatzz in #19456
3.6.2 - The Missing Link
Released on November 13, 2025 Enhancements ➕- Add causal link from automation action events to triggering events by @zzstoatzz in #19426
- cap retry-after for concurrency limits to prevent excessive delays by @zzstoatzz in #19428
- accept numeric values for PREFECT_API_SERVICES_LATE_RUNS_AFTER_SECONDS by @zzstoatzz in #19434
- add work_queue_id to DeploymentResponse by @zzstoatzz in #19417
- correct GitHub Actions conditional syntax in integration release workflow by @zzstoatzz in #19439
3.6.1 - Pop, Lock it, Docket
Released on November 10, 2025 Enhancements ➕- Add logfire sampling configuration and fix boolean env var handling by @zzstoatzz in #19383
- Fix interactive deploy CLI selecting wrong flow when opting out by @zzstoatzz in #19392
- Fix deployment.parameters in nested flows using ContextVars by @zzstoatzz in #19366
- Upgrade pydocket to stable 0.13.0 release by @zzstoatzz in #19401
- Add client methods for querying events via REST API by @zzstoatzz in #19382
3.6.0 - Throw it on the docket and we’ll get to it in a jiffy
This release addspydocket, a background task system, to replace FastAPI’s background_tasks. Background tasks now include automatic retries and can optionally use Redis as a backing layer for enhanced durable execution.
Released on November 07, 2025
Enhancements ➕➕
- Replace FastAPI
background_taskusage withpydocketby @desertaxle in #19377 - Emit events for deployment pull step execution by @zzstoatzz in #19339
- Fix import order dependency and circular import issues by @zzstoatzz in #19344
- Fix
deployment.parametersin subprocess flows by @zzstoatzz in #19331 - Fix misleading
pyrighterror when calling async task with wrong argument types by @zzstoatzz in #19327 - Fix
EventsWorkersingleton leak inprefect_test_harnessby @zzstoatzz in #19343 - Fix
run_deploymentexecution graph display when called from tasks by @desertaxle in #19361 - Fix automation deletion deadlock by enforcing consistent lock ordering by @zzstoatzz in #19369
- Update
prefect-ui-libraryto latest version by @znicholasbrown in #19350
- Remove legacy settings imports from CLI by @desertaxle in #19353
- Clean up root directory by @zzstoatzz in #19355
- Replace Optional with pipe syntax in _trim_traceback function by @devin-ai-integration[bot] in #19358
- Auto-close superseded documentation PRs by @zzstoatzz in #19357
- Add @chrisguidry as a CODEOWNER by @desertaxle in #19368
- Sync UI v2 OpenAPI schema with node v20.19.0 by @zzstoatzz in #19373
- Migrate
RedisStorageContainerfromsync_compatibletoasync_dispatchby @devin-ai-integration[bot] in #19363
- Add Pulumi section to Infrastructure as Code documentation by @bdalpe in #19352
- Fix link in ECS worker docs by @mattiamatrix in #19364