Skip to content

Rust #325: give child runs their parent's memos and search attributes - #874

Merged
rmcdaniel merged 1 commit into
mainfrom
rust-325-child-visibility
Oct 30, 2026
Merged

rmcdaniel merged 1 commit into
mainfrom
rust-325-child-visibility

Conversation

@rmcdaniel

Copy link
Copy Markdown
Member

Part of #325. Follows #869.

What changes

Published PHP copies memos and search attributes to new child runs (inheritTypedVisibilityMetadata), each copy recorded as inherited at sequence 1:

  • a parent run's to its child's first run;
  • a failed child run's to the run retrying it.

Native copied them only on continue-as-new. So a child's description and run list showed an empty memo, and a visibility query for the parent's attribute did not find the child.

  • Shared copy. Continue-as-new's memo and search-attribute copy is now two shared helpers in continuations.rs: inheritable_memos and inherit_visibility.
  • Children. start_child and the child retry call them right after creating the run. Continue-as-new uses them unchanged.
  • Object backoffs (Security's re-review of Rust #325: retry children and keep their timeout options as published PHP does #869). A child backoff sent as a JSON object, which PHP reads as its values, is now checked at admission like a list. Before, an extreme value of that shape was refused only when the retry started; it never overflowed.

Fixture child-visibility

Raw worker HTTP on protocol 1.20, in a fresh namespace with one registered keyword attribute. A parent started with a memo and the attribute starts one child under a retry policy. The probe records:

  • the child's description;
  • after a failure, the retry's description;
  • the child's run list;
  • a query for the attribute. PHP lists every matching child run, the failed first run and the pending retry alike.

Local checks

  • child-visibility. It passes on a fresh published 2.11.7 harness and on native built from this branch, and compare accepts the pair.
  • Neighbors. child-retries and continue-transfers pass on that native image.
  • Rust suites. Library 363 and integration 640, all passing. Includes the new a_child_and_its_retry_inherit_the_parents_memos_and_search_attributes and an object-backoff extreme-value control.
  • Node unit suite. 6383 pass. The one failure is the PhpImageContextTest local false failure.

Checkpoint.

🤖 Generated with Claude Code

Published PHP copies a parent run's memos and search attributes to its
child's first run, and a failed child run's to the run retrying it
(inheritTypedVisibilityMetadata). Native copied them only on
continue-as-new. That copy is now two shared helpers, used for the
child's first run and its retries too, so their descriptions, run lists
and visibility queries match PHP's. The child-visibility fixture records
it against published 2.11.7.

A child backoff sent as an object is also checked at admission, as PHP
reads its values.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant