3.8.7 - There's no place like local
Released on September 25, 2026
New Features ๐
- Add browser-local pinned deployments to the React UI by @zzstoatzz in #23143
Enhancements โโ
- Format deployment Created/Updated timestamps in ui-v2 metadata by @devin-ai-integration[bot] in #23112
- Show tag names inline and make tag overflow focusable in ui-v2 by @devin-ai-integration[bot] in #23116
- Set browser tab titles on entity and index pages in ui-v2 by @devin-ai-integration[bot] in #23179
- Add
container_wait_timeouttoDockerWorkerJobConfigurationby @devin-ai-integration[bot] in #23151 - Add
flow_run(state_type, coalesce(start_time, expected_start_time))index by @devin-ai-integration[bot] in #23128 - Log the real size when refusing to publish an oversized event by @David-Wu1119 in #23180
Bug Fixes ๐
- Improve dark-mode readability of flow run cards in ui-v2 by @devin-ai-integration[bot] in #23114
- Fix V2 run-list wrapping and toolbar overflow at constrained widths by @devin-ai-integration[bot] in #23115
- Restore deployment, work pool, and work queue links on V2 flow-run cards by @devin-ai-integration[bot] in #23113
- Render
data:image/*URIs in ui-v2 markdown by @devin-ai-integration[bot] in #23156 - Prevent revocation of live filesystem concurrency leases by @devin-ai-integration[bot] in #22936
- Accept
Nonevalues infind_placeholdersby @devin-ai-integration[bot] in #23158 - Deliver
include_filessidecar for direct Docker submissions by @devin-ai-integration[bot] in #22858 - Persist failed task exceptions according to
persist_resultin both task engines by @devin-ai-integration[bot] in #23160 - Make Azure bundle uploads idempotent for reused sidecar keys by @devin-ai-integration[bot] in #23170
- Fix retry budget for completed subflows on parent retry by @zzstoatzz in #23153
- Fix reading results persisted to an unsaved local filesystem outside the default storage path by @devin-ai-integration[bot] in #23188
- Allow clearing deployment
job_variableswith an empty dict by @devin-ai-integration[bot] in #23203 - Omit inferred
securityGroupsso ECS tasks use the VPC default security group by @devin-ai-integration[bot] in #23132 - Fix race between
WatcherThreadCancelScopetimeout injection and scope exit by @devin-ai-integration[bot] in #23089 - Return
0.0fromclamped_poisson_intervalfor non-positive intervals by @devin-ai-integration[bot] in #23208 - Fix date clearing on cancel by @uinstinct in #23148
- Fix falsy variables rendered as blank by @uinstinct in #23096
- Fix next date selection selecting previous date by @uinstinct in #23081
- Fix typo in search deployment placeholder by @uinstinct in #23176
- Fix interval form showing incorrect value and time unit by @uinstinct in #23209
Integrations & Dependencies ๐ค
- Bump
soupsievefrom 2.8.4 to 2.9 by @dependabot[bot] in #23147
Development & Tidiness ๐งน
- Omit UI source maps and nightly source distributions by @desertaxle in #23120
- Fix flaky interval schedule anchor time test when the clock reads 14:35 by @devin-ai-integration[bot] in #23178
- Fix date-dependent failure in interval schedule form test by @devin-ai-integration[bot] in #23125
- Fix flaky
test_multiple_workers_receive_distinct_messagesby @devin-ai-integration[bot] in #23149 - Fix two tests that do not check what their names say by @devin-ai-integration[bot] in #23142
- Make no-op comparisons in tests actually assert by @David-Wu1119 in #23141
- Run Biome from
node_modulesin UI v2 lint job by @devin-ai-integration[bot] in #23168
Documentation ๐
- Add Osano consent manager to Prefect docs by @desertaxle in #23133
- State when a deployment concurrency slot is acquired and released by @devin-ai-integration[bot] in #23085
- Update docs footer to use the X logo and add Bluesky by @zzstoatzz in #23210
- Remove duplicate 'the' in Modal deployment guide by @mrchatam in #23091
- Link agent setup guides from README by @zzstoatzz in #23145
Full Changelog: 3.8.6...3.8.7