feat: add repository rename orchestration CLI
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Build and Publish Multi-Context Image / build-and-push (push) Successful in 25s

Assistant: codex
Assistant-Model: gpt-5.6-sol
Assistant-Session: 01a049a4-ee9f-78e1-9d66-2cb0f9bea3e3
This commit is contained in:
tegwick 2026-08-29 12:00:22 +02:00
parent 6312db8700
commit 6b82215ae7
11 changed files with 1373 additions and 4 deletions

View file

@ -346,7 +346,7 @@ pass (the build retains one pre-existing `/docs/intakes` broken-link warning).
```task
id: STATE-WP-0085-T05
status: todo
status: done
priority: high
state_hub_task_id: "d85da2ea-8037-5117-a41a-d400ca68bf10"
```
@ -376,6 +376,26 @@ Acceptance:
- CLI retries preserve operation identity;
- no command logs credentials, authorization headers, or secret-bearing URLs.
Result (2026-08-29): added `statehub repo rename`
`preflight`/`start`/`apply`/`status`/`verify`/`rollback` commands over the
repository-ID-addressed lifecycle. The versioned
`state-hub.repository-rename-cli.v1` JSON envelope reports lifecycle state and
the next safe command; human output distinguishes planned, achieved, failed,
and rolled-back operations. Preflight tokens are never printed and are passed
to `start` through an exclusive mode-0600 JSON file (or stdin). Evidence and
check inputs receive the same private-file guard, credential-bearing response
fields and URLs are redacted, and no Forgejo credential option exists.
Mutations require a client-owned operation UUID plus the exact rename or
rollback confirmation. State Hub accepts and globally resolves that UUID;
same-intent creation retries remain no-ops after token expiry or a canonical
slug rebind, while changed target/actor intent fails closed. Rollback preflight
and execution are deliberately separate. Wheel force-includes make the
declared `statehub` entry point installable outside the checkout. Verification:
789 repository tests and the 70-page dashboard build passed before the final
retry hardening; the resulting focused suites pass 14 CLI and 7 API tests, and
a clean wheel installation exposes the complete rename command tree. The
dashboard retains the pre-existing `/docs/intakes` broken-link warning.
## Generate a target-repository migration workplan
```task