refactor(rollout): split lifecycle and receiver capabilities - #26
Draft
leviking98z-rgb wants to merge 1 commit into
Draft
refactor(rollout): split lifecycle and receiver capabilities#26leviking98z-rgb wants to merge 1 commit into
leviking98z-rgb wants to merge 1 commit into
Conversation
2 tasks
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.
Summary
Refactors rollout engines around explicit, composable capability surfaces instead of a fat base class with unsupported
NotImplementedErrormethods.DefaultRolloutMemoryLifecycleand require every rollout engine to declareMEMORY_LIFECYCLE.BaseRolloutEngine; unsupported transports are now absent and rejected by capability planning.target_modulesbehavior.The change removes 429 lines of duplicated base stubs and engine forwards. The protocols, reusable implementations, docs, and persistent guard make this PR net +58 lines; the goal here is an enforceable extension boundary rather than a standalone LOC reduction.
Related Issue
N/A
Test Plan
SKIP=no-commit-to-branch pre-commit run --all-files --show-diff-on-failure— passed, including recipe targets, architecture boundaries, and framework contracts.python -m compileall -q unirl lint/check_framework_contracts.py— passed.python lint/check_framework_contracts.py— passed: 7 rollout engines, 6 weight syncs, 19 model pipelines, 2 train backends, 2 wire types, 4 loop programs, and 13 entrypoints conform.target_modulessuppression, weight-version increments, LoRA dirty-state forwarding, and rejection of incomplete declared method surfaces.Compatibility / Risk
BaseRolloutEngine. Out-of-tree code that blindly calls an unsupported transport now gets normal attribute absence instead of a delayedNotImplementedError; it should query declared capabilities.MEMORY_LIFECYCLEand structurally implement every receiver capability they advertise.target_modulesbehavior, and the one-off harness covers those differences.Reviewer Notes
refactor/trainer-loop-programs) and should be reviewed as the next architecture slice.Checklist