Repository navigation
Add capped exponential activity retry authoring - #328
Conversation
|
|
Security source/API PASS for exact The new The legacy constructor and its I independently reviewed the seven-file delta and ran the two affected test modules: 45 tests pass. Focused Ruff and mypy checks pass. The current exact-head hosted matrix, package, corpus, integration, CodeQL, Sonar and target-branch qualification are all terminal success; the two effectful installed cells remain intentionally skipped in ordinary CI. This is source/API approval only. Exact candidate/package qualification, protected publication, normal-registry installed evidence and stable/root documentation remain separate delivery gates. It does not authorize a timer-redrive dispatch or satisfy the unrelated physical timer-row criterion. |
|
General accepted-API/source review: PASS for exact I read all seven changed files and the unchanged serializer/backoff implementation. The additive keyword-only The constructor defaults and This clears the requested source/API choice. It does not supply registry-installed timing or publication authority. Exact current CI, planned2.18.0 package/installed acceptance and stable/API/root-guide delivery remain the owner's gates before the corresponding #219 criterion closes. I also checked the unchanged portal workflow: ordinary main builds have stable=false; protected stable deployment requires an explicit published stable tag, preserving the released2.17.2 guide until that separate handoff. No additional release of the unchanged legacy API is required. |
|
Normal merge Accepted-main checks are running separately. The additive factory is merged source, not a published SDK API yet. The next owned slice prepares 2.18.0 and the bounded candidate/registry retry case through the existing closed installed consumer profile; exact artifact review, installed proof, protected publication and stable/root docs remain required. No timer dispatch or physical-row observation is selected by this work. |
|
Accepted-main readback is complete at The next owned package/installed slice is draft #329: 2.18.0 metadata, a fixed scalar-local retry case and approved candidate/identical-registry artifact handling through the existing closed internal consumer. Its source review/current CI precede exact build selection. Artifact review, installed candidate proof, protected publication, registry repeat and stable/root docs remain explicit before shared #219 delivery can be claimed. No timer or physical-row scope is expanded. |



New Python generated activity policies have no default maximum today, so 20 attempts can schedule a final delay of 262,144 seconds. Add the accepted
ActivityRetryPolicy.exponential(...)authoring path with a finite 60-second default maximum, using the existing durable command shape. This implements the remaining Python cap source slice of shared #219.Nine total attempts now generate
1, 2, 4, 8, 16, 32, 60, 60through the factory. Explicit finite non-negative maxima retain existing cap-before-ceiling resolution, including fractional seconds and zero. The factory rejectsNone, nonfinite values and invalid generated parameters. Total-attempt and schedule-to-close semantics stay intact. The legacy constructor, its omitted/explicit-None maximum, explicit lists, and recorded schedules retain their values. New examples recommend the factory and the guide states exactly which path selects the default.Validation: 310 focused policy/replay/local-executor and official corpus checks pass, with candidate source origin explicitly verified. Ruff, mypy and corpus-policy validation pass. Three frozen command JSON strings were captured from the approved published 2.17.2 registry package; current legacy authoring must match their bytes. Controlled retained local histories replay their original policies/attempts with a callback that fails if invoked. Local executor cap checks intercept sleep and prove selected delays, not elapsed timing or installed acceptance.
This is an additive API change, with no new Server role, wire field or prepared-local carrier. Source review, all normal checks, candidate artifact review, published-package installed proof and stable/root documentation follow-through remain required before delivery is claimed. No release or installed runtime has been selected. The unrelated #980 physical-row requirement remains held.