Note: unwatched flows also never boil
New Features ๐
- Add
flow-run watchcommand to watch any flow run until it reaches a terminal state by @devin-ai-integration[bot] in #21260 - Add
with_context()for propagating Prefect run context into user-spawned subprocesses by @desertaxle in #21304
Enhancements โโ
- Add bounded queue support to
QueueServiceto prevent OOM during server outages by @zionts in #21033 - Add time-based checkpoint to events websocket client by @zangell44 in #21264
- Add
positionto block schema properties for UI field ordering by @devin-ai-integration[bot] in #21307 - Add opt-in BuildKit/buildx support via
python-on-whalesby @devin-ai-integration[bot] in #21286 - Remove default timeout on
suspend_flow_runby @devin-ai-integration[bot] in #21285 - Include
PREFECT_CLIENT_CUSTOM_HEADERSin standalone version check by @devin-ai-integration[bot] in #21262
Bug Fixes ๐
- Fix
PrefectFutureList.result()raisingAttributeErrorafter flow resolution by @devin-ai-integration[bot] in #21221 - Fix Jinja template parameter type coercion in
RunDeploymentactions by @devin-ai-integration[bot] in #21231 - Fix
prefect deploy --allto respect default work pool settings by @bdalpe in #21258 - Fix
UnicodeDecodeErrorwhen subprocess outputs non-UTF-8 bytes by @Krishnachaitanyakc in #21267 - Fix
ValueErrorwhen deploying flows whose source is outside cwd by @devin-ai-integration[bot] in #21281 - Inline orphan condition into batch delete to prevent vacuum timeout by @devin-ai-integration[bot] in #21298
- Default missing
Content-Typetoapplication/jsonfor old client compatibility by @chuqCTC in #21302 - Fix
allow_failure()not working with mapped tasks inwait_forby @devin-ai-integration[bot] in #21305 - Respect
PREFECT_SERVER_ANALYTICS_ENABLEDenv var in CLI by @devin-ai-integration[bot] in #21315 - Preserve field aliases during Block serialization with
include_secretsby @devin-ai-integration[bot] in #21306 - Skip
dotenv_valueswhen.envis not a regular file by @devin-ai-integration[bot] in #21320 - Fix heartbeat starvation under CPU-bound workloads by @desertaxle in #21276
- Fix
EventsWorkerclass variable mutation and add_on_item_droppedfor queue cleanup by @devin-ai-integration[bot] in #21273 - Preserve deployment concurrency lease ID across state transitions by @bunchesofdonald in #21280
Development & Tidiness ๐งน
- Fix flaky test: switch work queue tests to in-process client by @devin-ai-integration[bot] in #21042
- Add pre-commit hook to prevent double backticks by @desertaxle in #21211
- Fix flaky test: handle
CancelledErrorduring sync concurrency slot release by @devin-ai-integration[bot] in #21212 - Split client tests into two matrix jobs to avoid CI timeouts by @devin-ai-integration[bot] in #21213
- Replace bare
except:with explicitException/BaseExceptionbranches inrun_flow()by @devin-ai-integration[bot] in #21228 - Raise versioningit default-version so Dependabot
uv locksucceeds by @devin-ai-integration[bot] in #21230 - Split orchestration tests into core and API suites by @devin-ai-integration[bot] in #21232
- Set versioningit
default-tagabove integration floors by @devin-ai-integration[bot] in #21234 - Batch Python dependabot updates weekly with grouping by @devin-ai-integration[bot] in #21242
- Fix Docker CI job failing on dependabot PRs by @devin-ai-integration[bot] in #21243
- Add document-changes skill and CI workflow by @desertaxle in #21248
- Remove internal
Runnerusage from bundle execution and CLI paths by @desertaxle in #21252 - Exclude auto-generated docs from document-changes skill by @devin-ai-integration[bot] in #21275
- Move Postgres container to a service in python-tests workflow by @devin-ai-integration[bot] in #21282
Documentation ๐
- Correct PrivateLink scope โ API only, not UI by @aaazzam in #21204
- Document Kubernetes Worker RBAC permissions by @devin-ai-integration[bot] in #21207
- Expand GitHub App integration docs for enterprise SAML/SSO use cases by @devin-ai-integration[bot] in #21182
- Document parameter resolution behavior and
quote/opaqueannotations by @devin-ai-integration[bot] in #21214 - Add network configuration guide for restricted environments by @devin-ai-integration[bot] in #21215
- Warn about default persistence with ephemeral infrastructure by @devin-ai-integration[bot] in #21236
- Expand testing how-to with harness internals and troubleshooting by @devin-ai-integration[bot] in #21249
- Add docs broken link checker CI workflow and fix broken links by @devin-ai-integration[bot] in #21250
- Correct pip install command for dev dependencies by @devin-ai-integration[bot] in #21255
- Add Mintlify keywords to all doc pages missing them by @devin-ai-integration[bot] in #21263
- Add section on reading persisted results by @devin-ai-integration[bot] in #21278
- Add
prefect-slurmto the integrations catalog by @desertaxle in #21229 - Remove Cloudflare reference from network access docs by @devin-ai-integration[bot] in #21289
- Update PrivateLink docs with setup, validation, and troubleshooting by @jamiezieziula in #21288
- Update callout for deploy CLI options with multiple targets by @bdalpe in #21299
- Remove expired docs banner by @jakekaplan in #21321
Full Changelog: 3.6.23...3.6.24