Repository navigation
feat: add Actor.child_runs with clients for named child runs - #1151
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1151 +/- ##
==========================================
+ Coverage 93.16% 93.20% +0.03%
==========================================
Files 54 54
Lines 3702 3721 +19
==========================================
+ Hits 3449 3468 +19
Misses 253 253
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:
|
vdusek
force-pushed
the
feat/child-runs-api
branch
from
October 6, 2026 13:20
08fe7c0 to
f93b3d9
Compare
vdusek
marked this pull request as ready for review
October 7, 2026 06:10
Contributor
Author
|
TODO:
Both are moot since 7d9cbab: ✍️ Drafted by Claude Code |
Mantisus
reviewed
Oct 7, 2026
# Conflicts: # src/apify/_actor.py
Mantisus
approved these changes
Oct 9, 2026
Mantisus
left a comment
Collaborator
There was a problem hiding this comment.
One moment. Otherwise LGTM
# Conflicts: # src/apify/_actor.py
Pijukatel
approved these changes
Oct 9, 2026
Actor.child_runs() to list named child runsActor.child_runs with clients for named child runs
# Conflicts: # src/apify/_actor.py # src/apify/_child_runs.py # tests/e2e/test_actor_child_runs.py # tests/unit/actor/test_actor_child_runs.py
This was referenced Oct 9, 2026
vdusek
added a commit
that referenced
this pull request
Oct 15, 2026
Follow-up to #1149 and #1151 that aligns named child runs with the final version of apify/apify-sdk-js#759. Changes: - A different Actor, task or input under an existing `run_name` raises a `ValueError` only when the recorded run would be reused (reattached, returned as `SUCCEEDED`, or resurrected). When the recorded run `FAILED` or is gone, a new run starts with the new request, the old run moves to `history`, and the record takes the new checksum ([agreed here](apify/apify-sdk-js#759 (comment))). - The client of a named run is stored only after the run is started or reused. - The `run_name` docstrings describe the new rule. No action on [B4nan's comment](apify/apify-sdk-js#759 (comment)) about loading the child-run record lazily instead of in Actor init. JS kept the load in `init()`, because the synchronous `Actor.childRuns` getter needs the records, and Python already loads them the same way in `__aenter__`. The docs in #1160 still say a name is bound to its first input. That will be fixed there. *✍️ Drafted by Claude Code*
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.
Actor.child_runsis a sync property that maps each run name to aRunClientAsyncfor the current run under that name. It has the same shape asActor.childRunsin the JS SDK (apify/apify-sdk-js#759). The client covers the run and its storages:The SDK reads the registry from the default key-value store when the Actor initializes, so runs recorded before a migration or resurrection are included and reading the property makes no API calls. That adds one record read to every init. A malformed record fails the init and leaves the Actor uninitialized. Runs started without a
run_namearen't tracked. Runs that were replaced under a name stay in thehistoryof the__ACTOR_CHILD_RUNSrecord and aren't exposed.A run started or reattached with a custom
tokengets a client with that token. A run recorded before a migration and not reattached since gets the default client, because the token isn't stored.It also fixes a duplicate
max_itemsdeprecation warning from #1149: a named start that resurrects its recorded run no longer warns a second time from inside the SDK.Docs are in #1160.
Closes: #1129
✍️ Drafted by Claude Code