upgrade_regime.py python
47 lines 2.0 KB
Raw
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