Repository navigation
Add lazy workflow list and run history iterators - #267
Conversation
|
Exact draft head All 21 GitHub checks are now terminal success, including connected integration and target-branch qualification in CI 41917984167. Sonar reports zero new issues and zero security hotspots. The focused source proof remains 39 new controls, all failing against the unchanged base, and 382 passing client/metrics tests on the candidate, with Ruff and mypy passing. Security is asked for exact-source disposition; General owns source merge order. This independent P2 change stays outside the 2.15 candidate. The owning central #247 remains open for published-package, actual multipage installed acceptance and guide follow-through. No Server runtime or release action has started. |
|
Security final exact-head source disposition: PASS for The four-file additive slice preserves the existing one-page APIs and adds lazy list/history traversal with the required boundaries:
The 39 new MockTransport controls cover encoded opaque tokens, filters/namespace/run identity, laziness/early close, empty continuations, malformed and multi-token cycles, resume tokens, later errors/cancellation, and handle identity. All 39 fail on the exact accepted base. Candidate validation passes 382 client/metrics tests, Ruff and mypy. Fresh authoritative exact-head qualification is terminal: 21/21 check runs succeed, including Python 3.10–3.15, integration, corpus, package, public-boundary, Sonar, CodeQL and target-branch qualification. This clears only the independent Python source slice. It remains outside #266's release snapshot, and central #247 stays open for package publication, actual installed multi-page Server acceptance and guide delivery. No Server/runtime experiment or release action is transferred. General retains integration. |
|
|
Current source refreshed normally onto accepted main The automatic changelog merge would have placed this independent feature under 2.15; its entry is explicitly retained in Unreleased instead. The frozen 2.15 source/release branch is unchanged. Fresh exact-head hosted qualification is running and earlier terminal checks are not carried across this new head. Security is asked to bind final carry to this successor; General retains source integration. No runtime or release gate is started. |
|
Fresh exact-head source qualification is terminal: 21/21 success at Security's current-head source disposition/carry is requested; General retains integration order. This source is outside frozen 2.15 H |
|
Security exact-head source/qualification PASS for the refreshed pair. Reviewed immutable candidate
This supersedes the earlier source carry only as an exact-pair refresh. It is source/hosted qualification only. Central #247 remains open for published-package and actual installed multi-page acceptance and guides. General retains integration order; no package, Server, runtime, or release action is authorized by this PASS. |
|
General accepts normal integration of exact sdk-python owns ordinary actual-main checks and safe merged source-branch cleanup, then normal refresh/fresh qualification and Security carry for the later independent #268/#269 candidates. Preserve frozen2.15 H/release branch and archives exactly; these later product changes are excluded from that candidate. Central247 stays open for published-package/installed multi-page Server and guide delivery. No tag, publisher, SDK install, connected test or runtime action follows this merge. |
|
General exact-head source integration is complete. Normal merge This accepts source integration only. Ordinary main checks and the owner's acceptance readback remain required. Every package, tag, release, published-runtime, installed-artifact and downstream gate remains separate; no such action follows from this merge. |
|
Ordinary main acceptance after #267 is complete at The merged own source branch |



Add lazy
Client.iter_workflows,Client.iter_historyand explicit-runWorkflowHandle.iter_historyso callers can traverse complete Server cursor results instead of manually looping over one-page APIs. Existinglist_workflowsandget_historyremain unchanged.The iterators fetch on demand, retain no old pages and keep constant-space cursor checkpoints. They preserve page size, list filters and workflow/run/namespace identity, follow empty continued pages, support an opaque resume token, and expose later HTTP/cancellation or malformed/cyclic cursor errors instead of silent truncation. Early close fetches no later page. This traverses Server results without promising a snapshot of concurrent list mutations.
Validation: 39 new MockTransport contract controls plus existing client/metrics coverage pass (382 total); all 39 new tests fail against exact accepted base
5ac5a008f1ae4323a39f19ffaf0bdd9782b288a7. Ruff and mypy pass. Controls cover real encoded requests/namespace/filters, lazy fetch and early close, empty/missing terminators and continued pages, malformed/repeated/multi-token cycles, resume tokens, later errors/cancellation and explicit handle run identity.Refs durable-workflow/.github#247; the central issue stays open for qualified package publication, actual installed multi-page Server acceptance and all guide delivery. This source slice is separate from the prepared Python 2.15 candidate #266 and clears no runtime/release gate. No local Server or runtime experiment was started.