From c629a6c3b4bdc1b330fc9a648fa4dfd004a109a7 Mon Sep 17 00:00:00 2001 From: rldyourmnd Date: Mon, 31 Aug 2026 08:13:36 +0500 Subject: [PATCH] feat: enable Antigravity software lifecycle on Windows Rendered from NDDev-it-com/setup-systems by tools/render_public_trees.py at 0.0.48. This tree is generated: fix the source and the renderer, never this checkout. --- CHANGELOG.md | 15 +++++++++++++ Cargo.lock | 8 +++---- Cargo.toml | 8 +++---- README.md | 2 +- crates/opencode-setup-system/src/software.rs | 23 ++++++++++++++++++++ install.ps1 | 2 +- install.sh | 2 +- 7 files changed, 49 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index ff1ea57..dd625d5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,21 @@ sibling project the same week this note was added. ## [Unreleased] +## [0.0.48] - 2026-08-31 + +Antigravity's official updater publishes native Windows x86_64 and +arm64 executables for both releases this provider can move between. Those exact +PE files, their lengths and their digests were already present in the provider, +but stale availability metadata still named both Windows platforms as +unpublished, so a valid software plan was refused before it could name the +artifact. + +The stale refusal is gone. Install, update, status, rollback and removal now use +the same measured two-release lifecycle on all six native platform pairs. A +generated invariant also rejects any current or previous release that calls a +platform both published and unpublished, preventing the artifact table and the +capability declaration from silently disagreeing again. + ## [0.0.47] - 2026-08-31 A target caught part-way through a change can be recovered from the daily diff --git a/Cargo.lock b/Cargo.lock index 8d373df..6e25d82 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -66,7 +66,7 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "harness-runtime" -version = "0.0.47" +version = "0.0.48" dependencies = [ "provider-v3", "serde", @@ -128,7 +128,7 @@ dependencies = [ [[package]] name = "opencode-setup-system" -version = "0.0.47" +version = "0.0.48" dependencies = [ "harness-runtime", "provider-v3", @@ -147,7 +147,7 @@ dependencies = [ [[package]] name = "provider-v3" -version = "0.0.47" +version = "0.0.48" dependencies = [ "serde", "serde_json", @@ -209,7 +209,7 @@ dependencies = [ [[package]] name = "setup-core" -version = "0.0.47" +version = "0.0.48" dependencies = [ "miniz_oxide", "serde", diff --git a/Cargo.toml b/Cargo.toml index 8bcdb28..4c8998d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ members = [ ] [workspace.package] -version = "0.0.47" +version = "0.0.48" edition = "2024" rust-version = "1.89" license = "AGPL-3.0-or-later" @@ -23,9 +23,9 @@ sha2 = "0.11" # `setup-core::archive`); an inflate loop is not, because its bugs are # memory-safety bugs and it is not improved by being hand-written here. miniz_oxide = "0.9" -setup-core = { path = "crates/setup-core", version = "0.0.47" } -provider-v3 = { path = "crates/provider-v3", version = "0.0.47" } -harness-runtime = { path = "crates/harness-runtime", version = "0.0.47" } +setup-core = { path = "crates/setup-core", version = "0.0.48" } +provider-v3 = { path = "crates/provider-v3", version = "0.0.48" } +harness-runtime = { path = "crates/harness-runtime", version = "0.0.48" } [workspace.lints.rust] unsafe_code = "forbid" diff --git a/README.md b/README.md index 1ff9329..1d612ed 100644 --- a/README.md +++ b/README.md @@ -179,7 +179,7 @@ release is a convenience, not the authorised copy. ```bash docker run --rm -v "$HOME/.config:/config" \ - ghcr.io/nddev-opennetwork/opencode-setup-system:0.0.47 \ + ghcr.io/nddev-opennetwork/opencode-setup-system:0.0.48 \ status --target /config/ --json ``` diff --git a/crates/opencode-setup-system/src/software.rs b/crates/opencode-setup-system/src/software.rs index 632cdb3..a04db4c 100644 --- a/crates/opencode-setup-system/src/software.rs +++ b/crates/opencode-setup-system/src/software.rs @@ -245,4 +245,27 @@ mod tests { .unwrap_or_default(); assert_eq!(unpublished, SOFTWARE.unsupported); } + + #[test] + fn no_release_calls_a_platform_both_published_and_unpublished() { + let baseline = measured(); + for name in ["software_artifacts", "previous_software_artifacts"] { + let Some(block) = baseline.get(name) else { + continue; + }; + let published = block["platforms"].as_object().unwrap(); + let unpublished = block + .get("unpublished") + .and_then(serde_json::Value::as_array) + .into_iter() + .flatten() + .filter_map(serde_json::Value::as_str); + for platform in unpublished { + assert!( + !published.contains_key(platform), + "{name}: {platform} is both published and unpublished" + ); + } + } + } } diff --git a/install.ps1 b/install.ps1 index de15b19..e3fbe3a 100644 --- a/install.ps1 +++ b/install.ps1 @@ -7,7 +7,7 @@ # powershell -ExecutionPolicy Bypass -File install.ps1 -Version 0.1.0 [CmdletBinding()] param( - [string]$Version = "0.0.47", + [string]$Version = "0.0.48", [string]$InstallDir = "$env:LOCALAPPDATA\Programs\opencode-setup-system" ) $ErrorActionPreference = "Stop" diff --git a/install.sh b/install.sh index 507d8c6..4086b88 100644 --- a/install.sh +++ b/install.sh @@ -14,7 +14,7 @@ set -eu REPO="NDDev-OpenNetwork/opencode-setup-system" BINARY="opencode-setup-system" -VERSION="${1:-0.0.47}" +VERSION="${1:-0.0.48}" PREFIX="${OPENCODE_INSTALL_DIR:-$HOME/.local/bin}" case "$(uname -s)" in