diff --git a/.gitignore b/.gitignore index a2ce605..aa970d7 100644 --- a/.gitignore +++ b/.gitignore @@ -82,3 +82,4 @@ create-labels.sh *.key.b64 minisign_ci.key minisign_ci.key.b64 +issues_audit.json diff --git a/CHANGELOG.md b/CHANGELOG.md index fef9103..7ff78d7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,117 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 --- ## [Unreleased] +# v1.35.0 + +## CLI --- Install Lifecycle & Environment Diagnostics + +This release introduces a complete install lifecycle for the Vix CLI, +including environment diagnostics, secure upgrades, uninstall logic, and +install metadata tracking. + +## ✨ New + +### `vix doctor` + +Environment and install health checker. + +- Detects OS and architecture +- Detects current binary location +- Reads `install.json` metadata +- Checks PATH consistency +- Verifies required tools (curl/wget, tar, sha256, etc.) +- Optional GitHub latest release check (`--online`) +- JSON output mode (`--json`) +- Proper exit codes for CI usage + +Example: + +``` bash +vix doctor +vix doctor --online +vix doctor --json --online +``` + +### `vix upgrade` + +Secure binary upgrade mechanism. + +- Resolves latest tag from GitHub +- Verifies sha256 +- Verifies minisign (when available) +- Atomic install (tmp + move) +- Writes structured `install.json` metadata +- Preserves install directory + +Example: + +``` bash +vix upgrade +``` + +### `vix uninstall` + +Robust uninstall command. + +- Removes current binary +- Supports `--all` to remove all detected binaries in PATH +- Supports `--purge` to delete local store/cache +- Gracefully handles permission errors +- Provides sudo hint when required +- Post-check detects remaining binaries in PATH + +Example: + +``` bash +vix uninstall +vix uninstall --all --purge +``` + +## 🔐 Install Metadata (`install.json`) + +Upgrades now generate structured metadata: + +``` json +{ + "repo": "vixcpp/vix", + "version": "v1.35.0", + "installed_version": "v1.35.0", + "installed_at": "...", + "os": "linux", + "arch": "x86_64", + "install_dir": "...", + "download_bytes": 0, + "asset_url": "..." +} +``` + +This enables: + +- Reliable diagnostics (`doctor`) +- PATH validation +- Upgrade comparison +- Future telemetry-safe tooling + +## 🎯 Help Output Improvements + +The CLI help output is now structured and linked: + +- Section-based layout +- Quick start block +- Install lifecycle commands surfaced +- Documentation links included +- Registry link added + +Improves discoverability and developer experience. + +## Stability + +This release does not modify runtime modules.\ +Changes are isolated to the CLI module. + +Vix.cpp continues to move toward a fully self-managed, production-grade +runtime. + v1.22.13: sync cli/middleware/p2p and extend middleware example - update submodules: cli, middleware, p2p diff --git a/modules/cache b/modules/cache index ab21950..01c5286 160000 --- a/modules/cache +++ b/modules/cache @@ -1 +1 @@ -Subproject commit ab2195058e2dacab4bca7a1d12207677bb9cf8ca +Subproject commit 01c5286d4905032ee1676a5d07a07ce5b7bed286 diff --git a/modules/cli b/modules/cli index 87ca37d..b5c8e0a 160000 --- a/modules/cli +++ b/modules/cli @@ -1 +1 @@ -Subproject commit 87ca37d58fa3fadf0233e40f3af756cf64c18bdb +Subproject commit b5c8e0a992c0da118f3bc86ee9e7202819c3b8b7 diff --git a/modules/json b/modules/json index b2d5b40..1cb0227 160000 --- a/modules/json +++ b/modules/json @@ -1 +1 @@ -Subproject commit b2d5b40b3a693a1a507024047b82ea6f3d754ff5 +Subproject commit 1cb02272a5c3f76b839d4e448345bb7cb89e70f7 diff --git a/modules/p2p b/modules/p2p index 6e03b18..01bfe8e 160000 --- a/modules/p2p +++ b/modules/p2p @@ -1 +1 @@ -Subproject commit 6e03b188382468d73d43a9f69c1fdce61077eb89 +Subproject commit 01bfe8e57e89ef13719ec0e721db5358d3cc3f37