3.8.0 - You had me at first paint
Released on July 23, 2026 Enhancements ➕➕- Add deployment filters to flow run triggers by @samiat4911 in #22319
- Make the V2 UI the default for self-hosted servers by @devin-ai-integration[bot] in #22519
- Copy additional options when using “Copy to new run” in the V2 UI by @devin-ai-integration[bot] in #22567
- Add “Copy to new run” to the flow run menu in the V2 UI by @devin-ai-integration[bot] in #22565
- Make URLs in run logs clickable in the V2 UI by @devin-ai-integration[bot] in #22496
- Allow year/month selection and manual typing in date inputs in the V2 UI by @devin-ai-integration[bot] in #22495
- Add composable worker initializer to
ProcessPoolTaskRunnerby @devin-ai-integration[bot] in #22591 - Canonicalize legacy setting names across settings handling and documentation generators by @devin-ai-integration[bot] in #22503
- Harden
RemoteFileSystempath resolution containment and rebuild absolute URLs by @devin-ai-integration[bot] in #22476 - Handle
module-pathentrypoints when generating default pull step by @devin-ai-integration[bot] in #22493 - Preserve empty
pull: []inprefect deployinstead of forcingset_working_directoryby @devin-ai-integration[bot] in #22490 - Prevent duplicate server-minted flow-run state timestamps by @devin-ai-integration[bot] in #22512
- Keep flow run watch alive across stream disconnects by @devin-ai-integration[bot] in #22550
- Fix
db_vacuumretention-override full scan ofevent_resourcesby @devin-ai-integration[bot] in #22536 - Record lease at acquisition so a cancelled acquire can’t leak a slot by @devin-ai-integration[bot] in #22542
- Fix deployment search empty state blocking typing in the V2 UI by @devin-ai-integration[bot] in #22497
- Guard deployment Parameters tab against missing schema properties by @devin-ai-integration[bot] in #22604
- Give
TaskRunFilterState.typeandTaskRunFilterState.namea default ofNoneby @chuenchen309 in #22526 - Preserve stdlib precedence in flow runs by @AkhilTrivediX in #22529
- Make zero-limit behavior consistent for core pagination endpoints by @devin-ai-integration[bot] in #22566
- Redact API key from lazy logging args in
ObfuscateApiKeyFilterby @devin-ai-integration[bot] in #22552 - Guard non-thread-safe
TTLCachein_read_toml_filewith a lock by @devin-ai-integration[bot] in #22571 - Fix
as_completedtimeout enforcement in worker threads and on Windows by @devin-ai-integration[bot] in #22607 - Enforce
READ COMMITTEDisolation for PostgreSQL server transactions by @devin-ai-integration[bot] in #22531
- Quote argument-hint YAML values so Copilot CLI
≥1.0.65loads all skills by @thejesh23 in #22484 - Prevent recurring UI dependency PR failures by @devin-ai-integration[bot] in #22541
- Cover
truncated_toinutilities.textby @eeshsaxena in #22532 - Stabilize flaky cleanup renewal and flow-discovery log tests by @devin-ai-integration[bot] in #22572
- Clarify
/api/healthvs/api/readyfor Kubernetes probes by @br413 in #22500 - Document PrivateLink tenant authentication (
vpce-idbinding) by @jimid27 in #22498 - Update variables concept docs to reflect JSON values and dash support by @devin-ai-integration[bot] in #22501
- Fix title in run background tasks documentation by @uinstinct in #22561
- Make minor fixes in Docker workflow documentation by @uinstinct in #22585
- Update migration timeout guidance to reference
PREFECT_SERVER_DATABASE_MIGRATION_TIMEOUTby @github-actions[bot] in #22610 - Document
initializer/initargssupport inProcessPoolTaskRunnerby @github-actions[bot] in #22595 - Document new
IfPossibleDocker image pull policy option by @github-actions[bot] in #22515