chore: sync Rust client with Apify OpenAPI spec v2-2026-06-29T142258Z - #10
Merged
Conversation
Bump API_SPEC_VERSION to v2-2026-06-29T142258Z (from v2-2026-06-25T142310Z) and the crate to 0.4.2. An operation- and parameter-level audit against the new spec, with the JavaScript reference client as the parity authority for the in-scope surface, found the in-scope typed API unchanged, so this is a patch release with no public interface change. Also addresses review feedback: - run_store_actor example now discovers its actor through the Store API. - Documented DownloadItemsFormat variants (+ a download_items snippet), the forefront flag, and the untyped request-queue return shapes. - Account-usage example/doc derive the lookup date from the current day instead of a hardcoded historical date. - HTTP retry backoff tidied: atomic jitter via fetch_add, a total retry loop without a dead fallback branch, and saturating backoff arithmetic.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Synchronizes the Apify Rust client with OpenAPI specification
v2-2026-06-29T142258Z(fromv2-2026-06-25T142310Z) and bumps the crate to0.4.2.An operation- and parameter-level audit of every in-scope operation against the new specification — with the JavaScript reference client (
apify-client-js/src) as the parity authority for which endpoints/parameters are in scope — found the in-scope typed API surface unchanged: same paths, operations, query/header parameters, request bodies and response schemas. The recently added pay-per-eventchargeandvalidate-inputoperations remain covered and correct. The endpoints the client does not cover (run-sync/run-sync-get-dataset-items,/v2/tools/decode-and-verify&encode-and-sign,/v2/browser-info, and the keyedPOSTcreate variants that duplicate coveredPUTwrites) are confirmed out of scope — the reference client exposes none of them. So the spec bump is version-only for the in-scope surface, and this is a patch release with no public interface change.Changes
src/version.rs—API_SPEC_VERSION→v2-2026-06-29T142258Z.Cargo.toml— crateversion0.4.1→0.4.2(patch; also exposed viaCLIENT_VERSION).CHANGELOG.md— new[0.4.2]entry documenting the spec sync and audit outcome.Review fixes (no behaviour change to the public API)
examples/run_store_actor.rs— now discovers the Actor through the Store API (client.store().list(...)) and runs the resolvedapify/hello-worldentry, so it genuinely demonstrates running an Actor found in the Store.docs/storages.md— lists allDownloadItemsFormatvariants with a runnabledownload_itemssnippet; explains theforefrontflag (front-vs-back of queue); documents the JSON shape of the untyped request-queue / statistics return values.examples/get_account.rs,docs/misc.md— derive themonthly_usage_for_datelookup date from the current day instead of a hardcoded historical date.src/http_client.rs— retry backoff cleanup: jitter now advances its shared state with a single atomicfetch_add(matching its comment), the retry loop is a totalloop {}without a dead fallback branch (max_attemptsviasaturating_add), and backoff doubling usessaturating_mulfor consistency with the per-attempt timeout.Verification
cargo fmt --all -- --checkandcargo clippy --all-targets -- -D warnings— clean.cargo test --doc— 24 passed.cargo build --examples— clean.cargo test --lib --testsagainst the live API (APIFY_TOKEN) — all 16 test binaries green (0 failures), including the 8 example smoke tests (tests/examples.rs).Generated by Claude Code