Skip to content

Use the declared family as the carry-step roster - #2708

Closed
trissim wants to merge 1 commit into
mainfrom
next/carry-family
Closed

trissim wants to merge 1 commit into
mainfrom
next/carry-family

Conversation

@trissim

@trissim trissim commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

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:

carry_declared_failures (DeclaredFailures)
carry_drop_connectivity (DropConnectivity)
carry_claim_fields (ClaimFields)
carry_context_request_key (ContextRequestKey)
carry_finished_turns (FinishedTurns)
thread_name_owners (ThreadNameOwners)
carry_owner_requests (OwnerRequests)
carry_turn_owner (TurnOwner)
carry_dead_turns (DeadTurns)
carry_bus_history (BusHistory)

Interpreter after list at 184edef (identical ten classes, identical order):

carry_declared_failures (DeclaredFailures)
carry_drop_connectivity (DropConnectivity)
carry_claim_fields (ClaimFields)
carry_context_request_key (ContextRequestKey)
carry_finished_turns (FinishedTurns)
thread_name_owners (ThreadNameOwners)
carry_owner_requests (OwnerRequests)
carry_turn_owner (TurnOwner)
carry_dead_turns (DeadTurns)
carry_bus_history (BusHistory)

Both lists were printed by CarryChain.at(Path.cwd()).steps in 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 tests returns 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.

@trissim
trissim marked this pull request as ready for review October 23, 2026 09:09
Copilot AI balanced review requested due to automatic review settings October 23, 2026 09:09

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

@trissim

trissim commented Oct 23, 2026

Copy link
Copy Markdown
Contributor Author

Superseded on main: #2696/#2709 already made Carry a DeclaredFamily with discovery_package="cutover" and Carry.member_named(name) (carry.py:46, step_worker.py:24). Carry.declared is gone from main; CarryChain.at gives the same 10 steps. Nothing left in this branch beyond the weaker copy.

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.

2 participants