upgrade_regime.py
python
sha256:a78e7e5a8740e03315f325d19edeb3aa1b306b3337d04abbaa9a9e0f3bbeb7a1
docs: MuseHub-first before ISR #74 — staging solidify NEXT
Human
1 day ago
| 1 | """``ok upgrade-regime`` CLI command (§O2.7).""" |
| 2 | |
| 3 | from __future__ import annotations |
| 4 | |
| 5 | from argparse import Namespace |
| 6 | |
| 7 | from cli.context import CliContext |
| 8 | from cli.output import CommandReport |
| 9 | from tools.upgrade_regime.ceremony import run_upgrade_regime |
| 10 | |
| 11 | |
| 12 | def run_upgrade_regime_command(args: Namespace, ctx: CliContext) -> int: |
| 13 | """Execute Stage 3 ``muse-only`` → ``muse+git-mirror`` ceremony.""" |
| 14 | code, upgrade = run_upgrade_regime(args, ctx) |
| 15 | report = CommandReport() |
| 16 | report.data.update(upgrade.to_payload()) |
| 17 | for err in upgrade.errors: |
| 18 | ctx.output.error(err) |
| 19 | report.errors.append(err) |
| 20 | for warn in upgrade.warnings: |
| 21 | ctx.output.warn(warn) |
| 22 | report.add_warning(warn) |
| 23 | |
| 24 | if ctx.output.json_mode: |
| 25 | payload = report.to_payload() |
| 26 | if report.errors: |
| 27 | payload["errors"] = list(report.errors) |
| 28 | ctx.output.emit_json(payload) |
| 29 | else: |
| 30 | if code == 0 and not upgrade.errors: |
| 31 | if upgrade.start_state == "complete-upgrade" and not upgrade.live_bridge_invoked: |
| 32 | ctx.output.emit("already upgraded (idempotent)") |
| 33 | elif upgrade.dry_run and not upgrade.apply: |
| 34 | ctx.output.emit("dry-run: no files written") |
| 35 | ctx.output.emit(f"start_state: {upgrade.start_state}") |
| 36 | ready = "yes" if upgrade.ready_for_live_bridge else "no" |
| 37 | ctx.output.emit(f"ready_for_live_bridge: {ready}") |
| 38 | ctx.output.emit(upgrade.next_live_step) |
| 39 | ctx.output.emit(upgrade.hard_stop_c8) |
| 40 | else: |
| 41 | ctx.output.emit("upgrade-regime complete through C5") |
| 42 | ready = "yes" if upgrade.ready_for_live_bridge else "no" |
| 43 | ctx.output.emit(f"ready_for_live_bridge: {ready}") |
| 44 | if not upgrade.ready_for_live_bridge and upgrade.ready_for_footprint: |
| 45 | ctx.output.emit("footprint ready; configure git remote before --live-bridge (G8)") |
| 46 | ctx.output.emit(upgrade.hard_stop_c8) |
| 47 | return code |
File History
1 commit
sha256:a78e7e5a8740e03315f325d19edeb3aa1b306b3337d04abbaa9a9e0f3bbeb7a1
docs: MuseHub-first before ISR #74 — staging solidify NEXT
Human
1 day ago