sync openapi spec with conveyor; add task created_at/updated_at to results (ENG-232) - #19
Open
emirlan-zen wants to merge 1 commit into
Open
sync openapi spec with conveyor; add task created_at/updated_at to results (ENG-232)#19emirlan-zen wants to merge 1 commit into
emirlan-zen wants to merge 1 commit into
Conversation
…sults (ENG-232) TaskResult gains required created_at/updated_at (AwareDatetime) — updated_at on a terminal row is the settle time, the freshness signal for recurring jobs. Regenerated via make generate from conveyor's docs/openapi.yaml (conveyor#296); reference doc rebuilt via make docs; test fixtures updated for the now-required fields. The gateway_error prose keeps the SDK's Zenrows brand casing (#18) over the upstream spec's. Spec ride-alongs from conveyor main: rerun-always-async wording (ENG-226), export cap wording (20 GiB), extract/extract_fields param docs (ENG-230). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.
Syncs
docs/openapi.yamlfrom conveyor and regenerates the models (make generate, datamodel-code-generator 0.64.0) + reference doc (make docs).Headline change (ENG-232, ZenRows/conveyor#296)
TaskResultgains requiredcreated_at/updated_at(AwareDatetime). On a terminal rowupdated_atis the settle time — when the scrape finished — so recurring-job callers can verify result freshness instead of trackingexternal_idand diffingtask_idacross runs. Caveat carried from the spec: partial-retry inherited rows (source_run_idset) report copy time.Spec ride-alongs (already on conveyor main)
202is the normal path,201the legacy sync fallback.extract/extract_fieldsparam docs (ENG-230).The
gateway_errordocstring keeps the SDK's "Zenrows" brand casing (#18) rather than reverting to the upstream spec's "ZenRows".Merge ordering
The new fields are required in the model, so this SDK rev will reject
/resultsresponses from a server that doesn't return them yet. Condition met (2026-08-26): conveyor#296 is merged and deployed to prod via the CI/CD pipeline. Verified live on prod with this exact SDK build: submit → scrape → typedcreated_at/updated_atround-trip passed, and existing prod jobs render the fields on read. Safe to merge.Follow-up after both merge: bump the pinned SDK rev in conveyor's
e2e_tests/pyproject.toml(currently pinned to the deletedsync-spec-post-methodline'se0359e1) and tighten the raw-httpx timestamp e2e to use the typed fields.Testing
make test(126 passed — fixtures updated for the now-required fields),make lint,make typecheckall green.Integration-tested against dev (
conveyor-dev-api:116) with this exact build installed into conveyor's e2e venv:test_results_listing,test_submit_and_wait, andtest_download_bodyall pass — every result row parsed through the stricter model (fields now required) — plus a direct typed-access check (row.created_at/row.updated_atas tz-aware datetimes, settle 1.5s after task creation on a live job).🤖 Generated with Claude Code