Skip to content

feat!: add zstd compression and parentRequestId, sync with Apify OpenAPI spec v2-2026-11-09T143926Z - #22

Merged
Pijukatel merged 7 commits into
masterfrom
claude/brave-hypatia-d87ffi
Nov 11, 2026
Merged

Pijukatel merged 7 commits into
masterfrom
claude/brave-hypatia-d87ffi

Conversation

@Pijukatel

Copy link
Copy Markdown
Collaborator

Summary

Syncs the PHP client with OpenAPI spec v2-2026-11-09T143926Z (apify/apify-docs#3173, #3199) and apify-client-js #1198, #1200 and #1205. Applies requirement updates from apify/apify-client-orchestration#66 and #67, and cleans up docs and comments. CLIENT_VERSION goes to 0.14.0 (breaking).

Spec sync

  • zstd is documented as a Content-Encoding value.
  • The Server Actor docs link and wording are updated.

zstd request compression (JS #1200)

  • New ZstdHttpCompressor (levels 1–19, default 3) and compression: 'zstd'. Needs the PECL zstd extension.
  • New integration-zstd CI job. It fails if the extension or the token is missing.

parentRequestId for Server Actor requests (JS #1198)

  • New ActorServerRequestOptions::$parentRequestId, sent as X-Actor-Request-ID.
  • JS #1205 only regenerates JS types, so nothing was ported.

Other changes

  • The compressors have named quality limits. The default compression is built from the compressor classes.
  • setRecordJson() takes an optional SetRecordOptions.
  • PHPStan is raised from level 6 to 8.

Docs and comments cleanup

  • Shortened or removed redundant and outdated comments across src/, tests/, README.md, docs/ and the workflows. These edits change no code.

Breaking changes

  • compression: 'brotli', 'gzip' or 'zstd', and the three compressor classes, now throw RuntimeException when their PHP extension is missing, instead of sending the body uncompressed. The default setting stays best-effort. Listed in the CHANGELOG.

Generated by Claude Code

…mpression and parentRequestId, trim docs and comments

Adds ZstdHttpCompressor and ActorServerRequestOptions::parentRequestId, bumps the spec version, and removes redundant, outdated and wordy comments and documentation.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_017ocuAJkLeAK9WauXA9zCTU
Fails fast for a codec without its extension, names the compressor limits, builds the default compression from the compressors, adds SetRecordOptions to setRecordJson(), adds zstd integration tests and a CI job, and fixes the review comments on prose.

Co-Authored-By: Claude Sonnet 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_017ocuAJkLeAK9WauXA9zCTU
@Pijukatel Pijukatel added adhoc Ad-hoc unplanned task added during the sprint. t-tooling Issues with this label are in the ownership of the tooling team. labels Nov 10, 2026 — with Claude
@apify-service-account apify-service-account added the tested Temporary label used only programatically for some analytics. label Nov 10, 2026
@Pijukatel
Pijukatel merged commit ed4aa86 into master Nov 11, 2026
4 of 8 checks passed
@Pijukatel
Pijukatel deleted the claude/brave-hypatia-d87ffi branch November 11, 2026 07:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

adhoc Ad-hoc unplanned task added during the sprint. t-tooling Issues with this label are in the ownership of the tooling team. tested Temporary label used only programatically for some analytics.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants