Stop the docs saying the migration does not work

Two places told an operator that `run` is unimplemented and refuses: the
usage text, and the first line of the README's status. Both predate `run`
being wired up, and the README contradicted itself three lines later, where
the command table says it works. Anyone reading either would conclude the
tool cannot migrate.

The rest of that section had drifted too: staging exists as a package, and
the package table was missing it along with applyplan, while the line counts
had aged. Recounted, and the column now says what it is measuring.

`report` really is unimplemented, so the usage text now says so where it is
advertised.
This commit is contained in:
2026-08-24 12:19:26 -07:00
parent e955a41d58
commit 558af1005f
2 changed files with 18 additions and 14 deletions
+16 -12
View File
@@ -12,9 +12,9 @@ Go, standard library only — no external dependencies.
## Status
Partially implemented. Roughly 8,800 lines of tested code. Every phase
except staging now exists as a package, including cutover, but nothing wires
them into a production run yet, so `run` still refuses.
Roughly 14,600 lines of Go, stdlib only, of which about 6,300 are tests.
Every phase exists as a package and `run` wires them into a migration that
has been performed end to end.
| Command | State |
|---|---|
@@ -39,17 +39,21 @@ not data volume.
Package state:
Lines are implementation only; each package carries its tests alongside.
| Package | Lines | Tests |
|---|---|---|
| `internal/backup` | 1806 | yes |
| `internal/preflight` | 1329 | yes |
| `internal/stalwartapi` | 1276 | yes |
| `internal/cutover` | 1186 | yes |
| `internal/validate` | 792 | yes |
| `internal/recovery` | 702 | yes |
| `internal/checkpoint` | 556 | yes |
| `internal/service` | 467 | yes |
| `internal/plan` | 195 | yes |
| `internal/stalwartapi` | 1456 | yes |
| `internal/backup` | 1333 | yes |
| `internal/preflight` | 1035 | yes |
| `internal/applyplan` | 913 | yes |
| `internal/cutover` | 784 | yes |
| `internal/recovery` | 431 | yes |
| `internal/checkpoint` | 406 | yes |
| `internal/validate` | 382 | yes |
| `internal/stage` | 233 | yes |
| `internal/service` | 201 | yes |
| `internal/plan` | 130 | yes |
| `internal/config` | stub | — |
## Why not a shell script
+2 -2
View File
@@ -48,7 +48,7 @@ func usage() {
commands:
preflight run read-only checks and print the migration plan
rehearse convert this instance's settings and report what will NOT carry over (read-only)
run perform the migration (not implemented yet - refuses)
run perform the migration (needs --yes and --recovery-point-confirmed)
status show the state of an in-progress or completed run
report print the validation report for a run`)
report print the validation report for a run (not implemented yet)`)
}