Repository navigation
Conversation
BREAKING CHANGE: `RequestQueueClient.list_and_lock_head()` and `prolong_request_lock()` take `lock_secs: int` instead of `lock_duration: timedelta`. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017ocuALBprYy13aVai5MaVb
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1199 +/- ##
==========================================
- Coverage 95.68% 90.90% -4.79%
==========================================
Files 62 62
Lines 6651 6650 -1
==========================================
- Hits 6364 6045 -319
- Misses 287 605 +318
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
apify-factory
left a comment
There was a problem hiding this comment.
Looks good, nothing blocking.
Compared with:
apify/apify-coresrc/api/src/routes/request_queues/queue_head_lock.ts:62: Both lock handlers parse thelockSecsquery string as an integer number of seconds (request_lock.ts:55 does the same), which matches the int the client now sends unchanged.apify/apify-client-jssrc/resource_clients/request_queue.ts:276: The JSlistAndLockHeadandprolongRequestLock(line 725) also takelockSecsas a number of seconds, so the new Python parameter matches.apify/apify-sdk-pythonsrc/apify/storage_clients/_apify/_request_queue_shared_client.py:532: The SDK still passeslock_duration=here and at line 659, so it will need updating when it moves to the new client major; itsapify-client<4.0.0pin keeps it safe until then.
🏭 Factory review — ℹ️ not auto-approved
This change was reviewed but cannot be auto-approved: a gate failed, so the review cannot end in an approval.
| check | result |
|---|---|
| Static gates | ❌ 14/16 — pr-open-and-ready, pr-title |
| Review findings | ✅ none |
| Reviewer escalation | ❌ This intentionally breaks the public signatures of list_and_lock_head() and prolong_request_lock() (lock_duration: timedelta becomes lock_secs: int), so a maintainer should confirm the major-version plan and the follow-up SDK update. |
Juror 1 — claude-sonnet-5-5, adversarial |
⏭️ skipped — a gate failed |
Why it was not auto-approved
Failed gates:
pr-open-and-ready: PR is a draftpr-title: breaking changes are never auto-approved
The comments above are the review itself; this section only explains the approval decision. Push a change and request @apify-factory again to re-run it, or ask a human to review.
Reviewed 03ef238ac · workflow run
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_017ocuALBprYy13aVai5MaVb
apify-factory
left a comment
There was a problem hiding this comment.
Looks good, just one note on the SDK.
🏭 Factory review — ℹ️ not auto-approved
This change was reviewed but cannot be auto-approved: a gate failed, so the review cannot end in an approval.
| check | result |
|---|---|
| Static gates | ❌ 14/16 — pr-open-and-ready, pr-title |
| Review findings | ❌ not clean |
| Reviewer escalation | ❌ Intentional breaking change to the public RequestQueueClient signatures that the Python SDK's shared request queue client depends on. |
Juror 1 — claude-sonnet-5-5, adversarial |
⏭️ skipped — a gate failed |
Why it was not auto-approved
Failed gates:
pr-open-and-ready: PR is a draftpr-title: breaking changes are never auto-approved
The comments above are the review itself; this section only explains the approval decision. Push a change and request @apify-factory again to re-run it, or ask a human to review.
Reviewed a72ff1d72 · workflow run
| @@ -732,7 +730,7 @@ async def list_head(self, *, limit: int | None = None, timeout: Timeout = 'short | |||
| async def list_and_lock_head( | |||
| self, | |||
There was a problem hiding this comment.
Note: the Python SDK still calls list_and_lock_head(lock_duration=...) and prolong_request_lock(..., lock_duration=...) with a timedelta, so on this client version every shared request-queue fetch fails with TypeError: unexpected keyword argument. The SDK has to switch to lock_secs=int(...total_seconds()) in step with this release. (apify-sdk-python src/apify/storage_clients/_apify/_request_queue_shared_client.py:659)
|
Testing the AI review. Seems ok. |
RequestQueueClient.list_and_lock_head()andprolong_request_lock()now takelock_secs: int, matching thelockSecsquery parameter they send, instead of alock_durationtimedelta.The value is passed through unchanged, so there is no conversion step between the caller and the request.
Integration tests are updated and new unit tests check the query parameter for both methods in the sync and async client.
Generated by Claude Code