Version check: at startup the app runs cv4pve-cli --version. If the result differs from cli.TESTED_VERSION (2.4.0), a warning names the version found and the version tested.
Why: the app parses output formats that are not a stable API: the config list text, prune-backups as a JSON string, the CT ip-addresses JSON string, and the exit codes with --wait. A newer cv4pve-cli could break these in confusing ways.
Missing binary: if cv4pve-cli cannot be run at all, one error says so, instead of every later call failing without an explanation.
README: notes the tested version.
Verification
446 tests pass.
ruff check and ruff format --check report no issues.
betterleaks found no secrets.
Live: cli.version() returns 2.4.0, so no warning is shown.
This is the first PR of the low-priority / nice-to-have stack. The stack is merged in order at the end.
## What
- **Version check:** at startup the app runs `cv4pve-cli --version`. If the result differs from `cli.TESTED_VERSION` (2.4.0), a warning names the version found and the version tested.
- **Why:** the app parses output formats that are not a stable API: the `config list` text, `prune-backups` as a JSON string, the CT `ip-addresses` JSON string, and the exit codes with `--wait`. A newer cv4pve-cli could break these in confusing ways.
- **Missing binary:** if `cv4pve-cli` cannot be run at all, one error says so, instead of every later call failing without an explanation.
- **README:** notes the tested version.
## Verification
- 446 tests pass.
- `ruff check` and `ruff format --check` report no issues.
- `betterleaks` found no secrets.
- Live: `cli.version()` returns `2.4.0`, so no warning is shown.
This is the first PR of the low-priority / nice-to-have stack. The stack is merged in order at the end.
Closes #14
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
At startup the app runs `cv4pve-cli --version`. If it differs from
cli.TESTED_VERSION (2.4.0), a warning says which version was found
and which one was tested. The app parses output formats that are not
a stable API: the config list text, prune-backups as a JSON string,
the CT ip-addresses JSON string and the exit codes with --wait. A
newer cv4pve-cli could break them in confusing ways.
If cv4pve-cli cannot be run at all, an error says so once, instead of
every later call failing without explanation. The README notes the
tested version.
Closes#14
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What
cv4pve-cli --version. If the result differs fromcli.TESTED_VERSION(2.4.0), a warning names the version found and the version tested.config listtext,prune-backupsas a JSON string, the CTip-addressesJSON string, and the exit codes with--wait. A newer cv4pve-cli could break these in confusing ways.cv4pve-clicannot be run at all, one error says so, instead of every later call failing without an explanation.Verification
ruff checkandruff format --checkreport no issues.betterleaksfound no secrets.cli.version()returns2.4.0, so no warning is shown.This is the first PR of the low-priority / nice-to-have stack. The stack is merged in order at the end.
Closes #14
Co-Authored-By: Claude Opus 5.5 noreply@anthropic.com