Repository navigation
State that timers and retry intervals have one-second resolution #361
Copy link
Copy link
Closed
Labels
authority:githubGitHub is the authoritative lifecycle record for this workGitHub is the authoritative lifecycle record for this workcompletion:evidence-verifiedAcceptance, fixed version, and required operational evidence are publicly verifiedAcceptance, fixed version, and required operational evidence are publicly verifieddocumentationImprovements or additions to documentationImprovements or additions to documentationintake:approvedCurrent issue title and body revision is approved for authority intakeCurrent issue title and body revision is approved for authority intakekind:cross-repositoryWork spans more than one public repositoryWork spans more than one public repositorypriority:P3Lower-priority product improvementLower-priority product improvementrepo:documentationOwned by the public documentation repositoryOwned by the public documentation repositorystatus:doneDerived from the authoritative closed issue stateDerived from the authoritative closed issue state
Description
Problem
Timer delays and retry intervals have one-second resolution, but no docs page says so. SDKs that accept finer values round them up silently, so a 100 ms retry interval waits a full second.
- The worker protocol carries retry backoff as integer seconds, Python timers take integer
delay_seconds, and embeddedbackoff()returns seconds. - Python's retry policy accepts a float
initial_interval_secondsand rounds each interval up to a whole second. - Rust takes a
Durationand also rounds up. - The timers guide and the retry sections don't state the resolution or the rounding.
Source-verified, not reproduced.
Acceptance criteria
- The timers and retry documentation state that timer delays and retry intervals resolve to whole seconds, and that a fractional interval is rounded up to the next second.
- The Python and Rust retry-policy references state the same rounding at the parameter that accepts fractional values.
- The testing guidance says how to keep retry-heavy tests fast without relying on sub-second intervals.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
authority:githubGitHub is the authoritative lifecycle record for this workGitHub is the authoritative lifecycle record for this workcompletion:evidence-verifiedAcceptance, fixed version, and required operational evidence are publicly verifiedAcceptance, fixed version, and required operational evidence are publicly verifieddocumentationImprovements or additions to documentationImprovements or additions to documentationintake:approvedCurrent issue title and body revision is approved for authority intakeCurrent issue title and body revision is approved for authority intakekind:cross-repositoryWork spans more than one public repositoryWork spans more than one public repositorypriority:P3Lower-priority product improvementLower-priority product improvementrepo:documentationOwned by the public documentation repositoryOwned by the public documentation repositorystatus:doneDerived from the authoritative closed issue stateDerived from the authoritative closed issue state
Activity
rmcdaniel commentedon Oct 22, 2026
Accepted as P3 documentation work, owned by General. Source review confirms
whole-second durable timer commands and activity retry backoff. Python's
generated fractional retry intervals use ceiling; Rust rounds positive
fractional
Durationvalues up, including durable timers. The Rust timer APIalready documents this; its retry parameter reference and the website need
equally explicit guidance.
The documentation must distinguish those conversions from APIs typed as integer
seconds. It must not promise that every runtime accepts fractional timers or
that explicit integer backoff lists perform the same conversion. A 100 ms
generated retry interval becomes one second; scheduling and worker load can
make actual execution later. Whole-second resolution is not a precision or
latency guarantee.
No sub-second timer feature is needed to correct this documentation gap. If
implementation work reveals inconsistent validation or conversion, record and
fix that as product work rather than describing it as intended behavior.
Next action after the current P1 image follow-through and Python #199 delivery:
update the timer, retry and testing guides in all eight website languages,
with their source hashes, plus the Python/Rust retry-policy parameter references.
Keep retry-heavy tests fast with the existing virtual-time/mocked test tools
where supported, or zero-delay bounded retry fixtures where that is the actual
contract; do not invent sub-second wall-clock guarantees.
rmcdaniel commentedon Oct 23, 2026
Implementation is now in three draft PRs:
68c775a395: timer, retry and fast-testing guidance in English, German,Spanish, French, Brazilian Portuguese, Ukrainian, Japanese and Simplified
Chinese. All three reviewed source hashes are updated for each translation.
2cf90bf: class/parameter and generated reference documentation, distinguishinggenerated fractional intervals from integer backoff lists and HTTP retries.
8f6f4b1: rounding documented directly on both retry-policy builder methods.All 105 current-guide translation/hash checks pass locally, with existing code
example parity. Python's executable AST is unchanged after removing docstrings.
The clean local checkout could not start the separate Docusaurus link check
without dependencies; the normal hosted install, link/build and SDK checks are
running independently. No local build, application, database or paid host is
needed for this documentation change.
No runtime, package release, version, schema or precision feature is changed.
Next: finish exact candidate review/checks, merge, then verify all eight public
guide paths and the actual Python/Rust parameter references before closing.
rmcdaniel commentedon Oct 23, 2026
Delivered and verified on the public documentation sites.
merged as
258e2cf72ec5338fd789eebac928c884d7136879, exact qualified treedd602332. All nine candidate checks pass. Deployment39887651069
passes. All 24 actual public timer/retry/testing page checks pass across
English, German, Spanish, French, Brazilian Portuguese, Ukrainian, Japanese
and Simplified Chinese, with their own localized headings and no English
fallback. All 105 guide translation/hash and existing code-parity checks pass.
merged as
3dd5cf5f10c1bfbe31ebd6e4ce5bc04732e0aab6, treedc2cd53b.All 18 candidate checks pass. Portal
39887915660
passes, and the actual deployment audit binds that exact source. The public
parameter table and generated class documentation both contain the conversion.
merged as
72aa2810042d4735aab42d13c72a0c4de60cd0e8, tree20d7d069.Seventeen candidate checks pass with two explicit worker-qualification skips.
Documentation deployment
39887556469
passes. Both actual public retry builder methods show the rounding contract.
All three PR issue APIs report zero OPEN/CONFIRMED Sonar findings. Completed
remote branches are deleted and verified absent.
The guides distinguish integer-second APIs from fractional values that are
rounded up, and explain that eligibility is not an exact execution-time
guarantee. Tests use controlled time or finite zero-delay fixtures rather than
assuming sub-second durable intervals. Runtime behavior, dependencies and
package versions do not change. Python's portal manifest says 2.9.1; this docs
deployment does not publish the still-pending PyPI package.
Public references: timers,
retries,
fast delay tests,
Python parameters,
and Rust builder methods.