Conversation
`support_control.py` registered seven unrelated top-level commands in one 898-line module. Move `promotion-gate`, `promotion-readiness` (with its `record` subcommand), and `upgrade-plan` into `cli_commands/support_control_promotion.py` so one cohesive canary-promotion and upgrade-propagation group has a bounded owner. Registration and dispatch move together, the three commands stay inside `SUPPORT_CONTROL_COMMANDS`, and no public invocation, flag, payload, or exit code changes: `promotion-gate` and `upgrade-plan` emit byte-identical JSON before and after, and `promotion-readiness record` differs only in its `generated_at` timestamp. Refs loopx-project#4639, GH-C06 Signed-off-by: BigDataDZ <76271875+BigDataDZ@users.noreply.github.com>
12 tasks
Contributor
7 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.
Goal And Delivered Outcome
loopx/cli_commands/support_control.pyregistered seven unrelated top-level commands in one 898-line module, and the canary-promotion group had no owner of its own.promotion-gate,promotion-readiness, andupgrade-planare registered and dispatched inside the shared support-control seam, so any new promotion flag grows a module that also owns update, registry, and status serving; after,loopx/cli_commands/support_control_promotion.pyowns both halves of that group,support_control.pydrops to 758 lines, and the module-size/ownership smoke plus a new ownership test pin the boundary.main.Scope And Continuation
tests/test_support_control_promotion_ownership.pypins set membership, single registration, both halves living in the new module, and fall-through for unrelated commands.update,registry,registry-boundary, andserve-statusstay insupport_control.pyand are the next GH-C06 slice.Validation
e1ca326fc(rebased onto currentmain)staticpassedpython3 examples/cli-command-module-size-ownership-command-modularization-smoke.py—ok; each of the three commands is registered by exactly one module and every module stays inside its budgetunitpassedpython3 -m pytest -q tests/test_support_control_promotion_ownership.py tests/test_cli_entrypoint.py tests/test_command_invocation.py— 22 passed, 1 skipped; the new ownership test covers set membership, single registration, both halves in the owner module, and fall-throughreal_entrypointpassedpython3 -m loopx.cli --format json --registry <synthetic project registry> --runtime-root <temp runtime> promotion-gateand... upgrade-planemit their usual payloads;promotion-readiness record --dashboard-readiness skippedstays a dry run (appended: false)regression_paritypassedpromotion-gateandupgrade-planare byte-identical,promotion-readiness recorddiffers only in itsgenerated_attimestamp; no flag, payload key, help text, or exit code changedintegrationblockedpython3 regression/cli-command-module-contract.pyfails on this checkout at thedoctorstep because no installedloopxCLI is on PATH; verified identical failure on unmodifiedmain(stash/pop), so it is an environment prerequisite, not this diffregression/cli-command-module-contract.pycould not be run to completion in this environment for the reason above.Frontend / Visual Evidence
Type of Change
LoopX Area
Technical Direction
refresh-state) and refactor(cli): extract registry admin lifecycle commands (GH-C06) #3656 (registry admin) extractions.Shared-authority RFC fixture impact
Boundary Checklist
.loopx/,.codex/goals/, and liveACTIVE_GOAL_STATE.md).none.Signed-off-bytrailer (git commit -s).