PrefectHQ
prefect
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Optimizations
Branches
Benchmarks
Runs
Performance History
Latest Results
Keep remaining non-Optional at the budget comparison Pyright's CI config rejects `deadline is not None and remaining <= 0`: it does not narrow `remaining` through the `deadline` correlation (reportOptionalOperand on both wait paths). Compute and compare the remaining budget inside the `deadline is not None` branch so the operand is always float there. Co-Authored-By: ZCode <zcode@bigmodel.ai>
Wilson0511:fix/memory-lock-acquire-toctou
3 hours ago
Share the acquire-timeout budget across stale-entry retries Codex review on efd6d8a (both P2s): - A stale-entry retry re-entered the wait with the caller's full acquire_timeout, so one call could wait nearly twice the requested maximum (and repeated replacements could extend it without bound). acquire_lock/aacquire_lock now compute a single monotonic deadline up front and the internal retry path re-derives the remaining budget each wait; a retry that finds the budget spent returns False instead of waiting again. - The replacement tests now synchronize on the waiter actually entering the stale object's acquire before the entry is expired (the async twin replaced its fixed sleep with the same handshake), so the stale-object branch is guaranteed to be exercised. - New regression: the retry spends the remaining budget, not a fresh one (total wait for a mid-budget replacement stays under the single acquire_timeout; a budget-restarting retry would run ~140% of it). Co-Authored-By: ZCode <zcode@bigmodel.ai>
Wilson0511:fix/memory-lock-acquire-toctou
3 hours ago
fix(utilities): scan pydantic models and dataclasses for ambiguous hash inputs Codex review on #23819 noted the ambiguity scan missed tuples hidden inside Pydantic models: the JSON serializer dumps models with model_dump(mode="json"), which normalizes tuple and list fields to the same array, so the collision survived inside the wrapper. Scan and encode models (and dataclasses, which the serializer flattens the same way) through their python-mode dump, which preserves container types. Unambiguous inputs still take the legacy path, so persistent hashes such as block schema checksums are unchanged. Signed-off-by: Shahzeb Ali <126076773+Shahzeb-DataEngineer@users.noreply.github.com>
Shahzeb-DataEngineer:fix/hash-objects-type-preserving
3 hours ago
fix parallel tasks failing when using kwargs
uinstinct:kwargs
6 hours ago
Keep hashes unchanged for JSON-native dicts using tag key names Co-authored-by: Alex Streed <desertaxle@users.noreply.github.com>
devin/1794201032-hash-objects-type-preserving
8 hours ago
Promote hashing to a subpackage and document its contracts Co-authored-by: Alex Streed <desertaxle@users.noreply.github.com>
devin/1794201032-hash-objects-type-preserving
8 hours ago
test(server): check db vacuum tasks run once across two scheduler cycles The two-cycle test now holds whichever task takes the slot first, waits for the second cycle's copies to park, and asserts one execution per key. The vacuum tests share one helper that stubs the maintenance connection. The scheduler docstring says that Docket drops the extra copy.
ShikhJohari:t3code/22912-serialize-db-vacuum-tasks
9 hours ago
Make nested state aggregation opt-in behind an experimental setting Recursive aggregation changes existing flow and task outcomes: a flow returning [[Failed(...)]] previously completed and now fails. Gate it behind the new `experiments.aggregate_nested_states` setting, disabled by default, following the default-off pattern of `runner.crash_on_cancellation_failure`. - Add `PREFECT_EXPERIMENTS_AGGREGATE_NESTED_STATES` (default false). When disabled, `return_value_to_state` and its sync counterpart keep the historical behavior: only a single state or a flat collection of states is aggregated. - When enabled, nested collections of states are aggregated for flows and tasks, with sync/async regressions. - `get_state_exception`/`aget_state_exception` keep understanding nested collections regardless of the setting, so a persisted aggregate state still reports its failure when read back under a different setting; covered by round-trip tests (in-memory and via persisted result metadata). - Document the collection boundaries (mixed data, empty containers, reference cycles, 1000-level depth cap) and a migration note (opt in via the setting; preserve intentional state-as-data returns with `quote()` or by leaving the setting off) on the flows concept page; regenerate the settings reference and schema.
Nacl-HCl:fix-nested-states-final-state-23137
11 hours ago
Latest Branches
CodSpeed Performance Gauge
+23%
Fix MemoryLockManager.acquire_lock silently revoking a holder after entry replacement
#23789
3 hours ago
0a39a5f
Wilson0511:fix/memory-lock-acquire-toctou
CodSpeed Performance Gauge
+22%
fix(utilities): make hash_objects type-preserving so tuple/list inputs do not collide
#23819
3 hours ago
179f4b7
Shahzeb-DataEngineer:fix/hash-objects-type-preserving
CodSpeed Performance Gauge
+23%
fix parallel tasks failing when using kwargs
#23820
6 hours ago
432c6c1
uinstinct:kwargs
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs