diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ac1997..4f1931c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,18 @@ sibling project the same week this note was added. ## [Unreleased] +## [0.0.56] - 2026-09-02 + +`status_request_fields` is declared: `["target_scope"]`, the same +vocabulary as `plan_request_fields`. A consumer that reads the declaration +may send `--target-scope` to `status` and measure the inventory the plan it +is about to bind will measure, instead of the global namespaces at a +workspace root. The runtime has honoured the flag since 0.0.55; this release +adds the sentence that lets a consumer send it, in the order every +`provider-info` member follows: kit 0.2.9 names it, `ai-stp-cli 0.0.15` +accepts it, then the seven declare it. Kit 0.2.9 is vendored. Nothing else +moves. + ## [0.0.55] - 2026-09-02 A plan whose scope contradicts the target's record is refused by diff --git a/Cargo.lock b/Cargo.lock index bf2172a..a133c96 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -66,7 +66,7 @@ checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] name = "harness-runtime" -version = "0.0.55" +version = "0.0.56" dependencies = [ "provider-v3", "serde", @@ -128,7 +128,7 @@ dependencies = [ [[package]] name = "opencode-setup-system" -version = "0.0.55" +version = "0.0.56" dependencies = [ "harness-runtime", "provider-v3", @@ -147,7 +147,7 @@ dependencies = [ [[package]] name = "provider-v3" -version = "0.0.55" +version = "0.0.56" dependencies = [ "serde", "serde_json", @@ -209,7 +209,7 @@ dependencies = [ [[package]] name = "setup-core" -version = "0.0.55" +version = "0.0.56" dependencies = [ "miniz_oxide", "serde", diff --git a/Cargo.toml b/Cargo.toml index 2003889..cfd5d41 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ members = [ ] [workspace.package] -version = "0.0.55" +version = "0.0.56" 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.55" } -provider-v3 = { path = "crates/provider-v3", version = "0.0.55" } -harness-runtime = { path = "crates/harness-runtime", version = "0.0.55" } +setup-core = { path = "crates/setup-core", version = "0.0.56" } +provider-v3 = { path = "crates/provider-v3", version = "0.0.56" } +harness-runtime = { path = "crates/harness-runtime", version = "0.0.56" } [workspace.lints.rust] unsafe_code = "forbid" diff --git a/README.md b/README.md index cadac6d..edbd0b7 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.55 \ + ghcr.io/nddev-opennetwork/opencode-setup-system:0.0.56 \ status --target /config/ --json ``` diff --git a/crates/provider-v3/src/info.rs b/crates/provider-v3/src/info.rs index 7b145fa..b3e4ad4 100644 --- a/crates/provider-v3/src/info.rs +++ b/crates/provider-v3/src/info.rs @@ -232,8 +232,9 @@ pub struct ProviderInfo { /// The arguments `status` accepts beside its target, once the kit names /// the member. /// - /// Empty and therefore absent until kit `0.2.9` publishes the member and - /// a released consumer accepts it -- the same two gates every + /// Empty and therefore absent until the kit publishes the member and a + /// released consumer accepts it -- kit `0.2.9` and `ai-stp-cli 0.0.15` + /// did on 2026-09-02 -- the same two gates every /// `provider-info` field has to pass, because the field set is compared /// for exact equality and an unknown member refuses the whole document. /// The runtime already honours `status --target-scope` (0.0.55); this is @@ -408,9 +409,11 @@ impl ProviderInfo { TargetScope::REQUEST_FIELD.to_owned(), EndState::REQUEST_FIELD.to_owned(), ], - // Held until the kit names it; see the field's own note. The test - // beside `plan_request_fields`' flips this the day it does. - status_request_fields: Vec::new(), + // Declared 2026-09-02 in the same order as the two above: kit 0.2.9 + // names the member (`provider-info.schema.json`), ai-stp-cli + // 0.0.15 accepts it, and only then does a release carry it. The + // test beside `plan_request_fields` holds it to the kit's enum. + status_request_fields: vec![TargetScope::REQUEST_FIELD.to_owned()], }) } diff --git a/install.ps1 b/install.ps1 index 43b7696..124ae07 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.55", + [string]$Version = "0.0.56", [string]$InstallDir = "$env:LOCALAPPDATA\Programs\opencode-setup-system" ) $ErrorActionPreference = "Stop" diff --git a/install.sh b/install.sh index 428ef92..b7e4361 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.55}" +VERSION="${1:-0.0.56}" PREFIX="${OPENCODE_INSTALL_DIR:-$HOME/.local/bin}" case "$(uname -s)" in diff --git a/provider-kit/v3/KIT-IDENTITY.json b/provider-kit/v3/KIT-IDENTITY.json index 969fd03..a47c19b 100644 --- a/provider-kit/v3/KIT-IDENTITY.json +++ b/provider-kit/v3/KIT-IDENTITY.json @@ -1,12 +1,12 @@ { - "aggregate_digest": "sha256:2a8777184eb1c4e3a445606dfb591c41f92df89fff795649d330b9ff4db066fa", + "aggregate_digest": "sha256:8abeee1e3469b84b57492ad7d73d794416bca439e381becc0d36ea703bded33b", "files": [ "conformance-cases.json", "manifest.json", "provider-info.schema.json", "status-response.schema.json" ], - "kit_version": "0.2.8", + "kit_version": "0.2.9", "protocol_version": 3, "schema": "ai-stp-provider-kit-identity/1" } diff --git a/provider-kit/v3/SHA256SUMS b/provider-kit/v3/SHA256SUMS index e38a7cb..30015df 100644 --- a/provider-kit/v3/SHA256SUMS +++ b/provider-kit/v3/SHA256SUMS @@ -1,4 +1,4 @@ fe04d03b15cfe8d5b61835eafd3ea788074684e2be69d419f9c22a37ea0461b7 conformance-cases.json -cdaa34cd38e1ff0005793280194c31c4781c4505cbc3da6e823811e88f4aea5e manifest.json -165075bb253bdc1746e67a776957f709f4bbd36fe97d62cff9003af9d0f65186 provider-info.schema.json +11d32dbfa04c9262ce5829f8168c97ff85abe10d9fa9c396437de23af2e2f95d manifest.json +1ab7321772d06980555846406df2c828f6d304efddcf109a40728dd10c1aa38e provider-info.schema.json 2c5e01df3b02369832b74842b128c42b6b84d1e1455db3800474e54e71b645e4 status-response.schema.json diff --git a/provider-kit/v3/manifest.json b/provider-kit/v3/manifest.json index fb21eba..5e8ecf8 100644 --- a/provider-kit/v3/manifest.json +++ b/provider-kit/v3/manifest.json @@ -39,7 +39,7 @@ ], "decision": "docs/adr/ADR-0061-capability-negotiated-provider-protocol-v3.md", "generated_from": "apps/cli/src/ai_stp_cli/provider/protocol_v3.py", - "kit_version": "0.2.8", + "kit_version": "0.2.9", "operation_network": { "backup": [ { diff --git a/provider-kit/v3/provider-info.schema.json b/provider-kit/v3/provider-info.schema.json index d62e97b..ac00ee3 100644 --- a/provider-kit/v3/provider-info.schema.json +++ b/provider-kit/v3/provider-info.schema.json @@ -217,6 +217,16 @@ "type": "array", "uniqueItems": true }, + "status_request_fields": { + "items": { + "enum": [ + "target_scope" + ], + "type": "string" + }, + "type": "array", + "uniqueItems": true + }, "supported_arch": { "items": { "minLength": 1,