# Eva-CLI V1.5 Migration Declaration (Historical)

> Language: English
>
> Published default: `docs/en/release/v1.5-migration-guide.md`
>
> Translation: [Simplified Chinese](../../zh-CN/release/V1.5迁移指南.md)

Updated: 2026-07-14

Status: historical declaration for the V1.4 internal milestone to `v1.5.0`; not a current upgrade guide or an automated compatibility diff.

## Scope

V1.5 declared the V1.4 command surface compatible while adding `eva-release` and the `eva release ...` command group. V1.4 was an internal milestone, not a Git tag, so the declaration was not derived from a `v1.4`-to-`v1.5.0` tag comparison.

Current installation and upgrade procedures are maintained in [Install, Upgrade, and Uninstall](install-upgrade-uninstall.md).

![Eva-CLI release history boundary](../../../assets/release-history-boundary.svg)

## Version Context

| Signal | Meaning |
| --- | --- |
| V1.0 | Internal milestone commit `437087c`; no `v1.0` tag exists |
| V1.4 | Internal lifecycle milestone commit `909ab07`; no `v1.4` tag exists |
| V1.5.0 | Annotated tag `v1.5.0`, resolving to commit `74d85e7da58ac40ef5d30b38e2844dee503a44c0` |
| Current `main` | Cargo and CLI report `1.11.5-alpha`; later V1.12-V1.17 strings are legacy evidence IDs, not release tags |

## Declared V1.5 Change

| Area | Historical declaration |
| --- | --- |
| Existing commands | No V1.0-V1.4 command was intentionally removed or renamed |
| New commands | `release check`, `release security`, `release perf`, and `release migration` were added |
| JSON and exit codes | Existing envelope fields and exit-code meanings were declared stable |
| Configuration | Checked-in sample manifests were expected to remain loadable |
| Breaking changes | None were declared for the internal V1.4-to-V1.5 transition |

This table records the V1.5 policy decision. It is not proof produced by a schema, storage, or CLI compatibility engine.

## Recorded Upgrade Sequence

The V1.5 documentation recorded this source-checkout sequence:

```powershell
cargo build --release
cargo run -- upgrade check --output json
cargo run -- release check --output json
cargo run -- release security --output json
cargo run -- release perf --output json
cargo run -- release migration --from-version 1.4.0 --to-version 1.5.0 --output json
```

Run it from a `v1.5.0` checkout only when reproducing that historical checkpoint. Running it on `main` exercises current `1.11.5-alpha` code.

## Validation Strength

| Step | What it does | What it does not do |
| --- | --- | --- |
| `cargo build` | Compiles the selected source checkout | Compare two released versions |
| `upgrade check` | Builds an in-memory readiness, migration, drain, and rollback report | Start a candidate process or perform an upgrade |
| `release check` | Aggregates gate objects and any explicitly supplied evidence | Run the commands named in those objects |
| `release security` | Prints compiled security findings | Invoke a live vulnerability scanner |
| `release perf` | Prints fixed smoke observations and budgets | Measure production performance |
| `release migration` | Echoes supplied non-empty version labels with a declared `compatible` result and no breaking changes | Diff tags, schemas, manifests, storage, or command output |

The current implementation still treats `release migration` as a declaration. Its default labels have moved beyond V1.5, but the command does not infer compatibility from repository history.

## V1.5 Operational Boundary

At the immutable `v1.5.0` tag:

- `.eva/tasks` was a local diagnostic format rather than a durable public database;
- `restore plan` returned `apply_allowed:false` and there was no restore-apply command;
- `upgrade check` did not start Supervisor or Runtime processes and there was no upgrade-apply command;
- `hardware bind --apply` validated a logical plan without opening raw I/O;
- release commands did not mutate project state or invoke external providers.

Current `main` has separate controlled restore-apply, rollback, upgrade-apply, durable, and provider paths. Their present limits are documented in operations and planning; they do not change the V1.5 tag record.

## Related References

- [V1.5 compatibility policy](v1.5-compatibility-policy.md)
- [V1.5 release hardening evidence model](v1.5-release-hardening.md#evidence-model)
- [Current install, upgrade, and uninstall guide](install-upgrade-uninstall.md)
- [Current backup and restore boundary](../operations/backup-migration-release-snapshot.md)
- [Current process upgrade boundary](../operations/process-level-upgrade.md)
- [Current V1.x incomplete feature inventory](../planning/v1.x-incomplete-feature-inventory.md)
