Repository navigation
Conversation
trissim
marked this pull request as ready for review
October 23, 2026 09:09
There was a problem hiding this comment.
Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.
An organization owner can choose the repository organization as the billing source for reviews requested by members with a paid Copilot license. Learn about Copilot code review billing.
Contributor
Author
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.
Carry maintained a second name-to-class roster in its own init_subclass, despite its subclasses already declaring the membership. Carry now inherits DeclaredFamily; the shared family registry owns registration and abstract-member exclusion. The old dict and registration hook are deleted.
CarryChain.at reads Carry.members_with(Carry), retaining its current-tree filter, Git addition ordering and declared dependency edges. The other reader, step_worker, imports the requested module and selects its step from that family by the existing step.name(). No persistent or replacement name dictionary remains.
Baseline at origin/main a82d185, before this change:
Interpreter after list at 184edef (identical ten classes, identical order):
Both lists were printed by
CarryChain.at(Path.cwd()).stepsin isolated interpreter invocations with this checkout's src/tools selected explicitly. The baseline is fetched main a82d185, including the ClaimFields -> ThreadNameOwners dependency from #2706.git grep -n 'Carry\.declared' -- src tools testsreturns zero matches. The general .declared search's remaining hits refer to other facts, including FieldCodec field declarations and RehearsalFiles.declared, and stay unchanged. No pytest ran. This change deletes 14 lines and adds 5 across carry.py and step_worker.py.Assumed: each carry module supplies its one concrete step; file stems remain the step-worker import address and Git ordering identity, while DeclaredFamily supplies membership. Both ends of the transient step input use the target build's FieldCodec.