Skip to content

4.12.0

Choose a tag to compare

@github-actions github-actions released this 04 Nov 19:43
· 235 commits to main since this release
4b2440a

4.12.0

  • Keep one in-flight poll per task family while filling the configured workflow
    and activity execution slots (#199). A received task finishes hydration and
    initial lease confirmation before polling refills a spare slot. Its execution
    slot stays occupied through completion reporting, so slow callbacks can run
    concurrently without multiplying idle long polls.

  • Reuse worker-authenticated activity lease capability observations instead of
    fetching /cluster/info for every activity (#199). Client clones share one
    discovery when needed and refresh only after an explicit capability refusal. Original claim,
    ownership and deadline validation still apply to every renewal.

  • Add a public raw request API for tools that must reach every Server route
    and report its response unchanged (#180). Client::control_plane_request
    and Client::worker_plane_request take a RawRequest (path segments the
    SDK percent-encodes, query pairs, a verbatim JSON body, a timeout and
    optional version-header overrides) and return a RawResponse for every
    HTTP status, with the exact body bytes and all headers.
    RawResponse::error_for_status gives the same Error::Http or
    Error::Protocol a typed call would, and refusal() decodes reason,
    rejection_reason, message, error and validation_errors. Raw
    requests make one attempt and never rewrite bodies. Worker-plane 2xx
    responses must echo a same-major, equal-or-newer-minor protocol version in
    both the header and the body. Typed methods remain the API for
    applications.

  • Add ClientBuilder::danger_accept_invalid_certs for self-hosted Servers
    whose certificates cannot be verified. It defaults to false; prefer
    additional_root_certificates_pem for a private CA.

  • Replay condition-wait histories in which the Server recorded a second open
    of a wait that was still open (#191, #192). A wait is now linked to the
    same logical wait by its state when the next open was recorded: if it was
    still open, the next open is a repeated open. So an orphaned duplicate whose
    timer fires later no longer fails replay with
    condition_wait_reopened_after_timeout (the sdk-php#283 shape). On PHP
    Server 2.x, condition members of one parallel or select group woken by
    one signal no longer fail the next task with
    condition_wait_group_reopen_mismatch, and each member consumes its own
    reopen, including when another member such as a timer sits between them
    (#194). A pending scope cancellation over such a group selects its original
    members by sequence. A wait that timed out before the next open still ends
    it. Both histories were refused by 4.11.1 as well.