From d3d71a115726c3bd985fc0bbb11f9228b408a1a9 Mon Sep 17 00:00:00 2001 From: jeremydixon22 Date: Sat, 3 Oct 2026 02:08:19 -0400 Subject: [PATCH 1/6] Accept published Python baseline wheels and prepare Vyral 0.3.4 --- .github/workflows/publish-first-cohort.yml | 36 +++++++++--------- .../python-runtime-qualification.yml | 2 +- README.md | 4 +- clients/javascript/package-lock.json | 4 +- clients/javascript/package.json | 2 +- clients/python/pyproject.toml | 2 +- docs/maintainers/releasing.md | 12 +++--- docs/reference/stability.md | 4 +- packaging/publication-cohort.json | 10 ++--- .../packages.lock.json | 2 +- .../packages.lock.json | 2 +- .../packages.lock.json | 4 +- scripts/verify-publication-cohort.py | 8 ++-- scripts/verify-publication-policy.py | 6 +-- scripts/verify-release-artifacts.sh | 4 +- scripts/verify-version-policy.py | 4 +- .../Vyral.Abstractions.csproj | 4 +- src/Vyral.Cli/packages.lock.json | 6 +-- src/Vyral.Cloudflare/packages.lock.json | 2 +- src/Vyral.Google/packages.lock.json | 2 +- src/Vyral.HostedWorker/packages.lock.json | 24 ++++++------ src/Vyral.Local/Vyral.Local.csproj | 4 +- src/Vyral.Providers.Onnx/packages.lock.json | 2 +- src/Vyral.Server/packages.lock.json | 20 +++++----- tests/Vyral.Tests.Aws/packages.lock.json | 10 ++--- tests/Vyral.Tests.Azure/packages.lock.json | 8 ++-- .../Vyral.Tests.Cloudflare/packages.lock.json | 10 ++--- .../packages.lock.json | 2 +- tests/Vyral.Tests.Google/packages.lock.json | 10 ++--- tests/Vyral.Tests.Local/packages.lock.json | 38 +++++++++---------- tests/Vyral.Tests.MySql/packages.lock.json | 16 ++++---- tests/Vyral.Tests.Pgvector/packages.lock.json | 8 ++-- .../Vyral.Tests.Providers/packages.lock.json | 8 ++-- .../packages.lock.json | 4 +- tests/Vyral.Tests.Temporal/packages.lock.json | 8 ++-- tools/Vyral.Benchmarks/packages.lock.json | 2 +- .../packages.lock.json | 2 +- .../packages.lock.json | 2 +- 38 files changed, 149 insertions(+), 149 deletions(-) diff --git a/.github/workflows/publish-first-cohort.yml b/.github/workflows/publish-first-cohort.yml index 9c267fd..d82ab3d 100644 --- a/.github/workflows/publish-first-cohort.yml +++ b/.github/workflows/publish-first-cohort.yml @@ -8,7 +8,7 @@ on: required: true type: choice options: - - v0.3.3 + - v0.3.4 npm_direct_token_published: description: The exact authorized npm archive has been published with an operator-controlled token required: true @@ -21,7 +21,7 @@ on: permissions: {} concurrency: - group: publish-package-release-v0.3.3 + group: publish-package-release-v0.3.4 cancel-in-progress: false jobs: @@ -51,7 +51,7 @@ jobs: test "$GITHUB_REF" = "refs/heads/main" test "$CONFIRM" = "true" test "$NPM_DIRECT_TOKEN_PUBLISHED" = "true" - test "$RELEASE_TAG" = "v0.3.3" + test "$RELEASE_TAG" = "v0.3.4" git fetch --force --tags origin test "$(git cat-file -t "refs/tags/${RELEASE_TAG}")" = "tag" source_sha="$(git rev-parse "${RELEASE_TAG}^{commit}")" @@ -114,8 +114,8 @@ jobs: done python -m build --outdir artifacts/publish/pypi runtimes/python for package in \ - Vyral.Abstractions.0.3.3 \ - Vyral.Local.0.3.3; do + Vyral.Abstractions.0.3.4 \ + Vyral.Local.0.3.4; do test -s "artifacts/publish/nuget/${package}.nupkg" test -s "artifacts/publish/nuget/${package}.snupkg" done @@ -129,12 +129,12 @@ jobs: npm test npm pack --json --pack-destination ../../artifacts/publish/npm ) - test -s artifacts/publish/npm/vyral-client-0.3.3.tgz + test -s artifacts/publish/npm/vyral-client-0.3.4.tgz - name: Retain immutable publication distributions uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: - name: package-release-v0.3.3 + name: package-release-v0.3.4 path: artifacts/publish if-no-files-found: error retention-days: 30 @@ -157,7 +157,7 @@ jobs: - name: Download the authorized distributions uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: - name: package-release-v0.3.3 + name: package-release-v0.3.4 path: dist - name: Exchange the GitHub OIDC token for a short-lived NuGet key @@ -172,8 +172,8 @@ jobs: run: | set -euo pipefail for package in \ - Vyral.Abstractions.0.3.3 \ - Vyral.Local.0.3.3; do + Vyral.Abstractions.0.3.4 \ + Vyral.Local.0.3.4; do dotnet nuget push "dist/nuget/${package}.nupkg" \ --api-key "$NUGET_API_KEY" \ --skip-duplicate \ @@ -197,7 +197,7 @@ jobs: - name: Download the authorized distributions uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: - name: package-release-v0.3.3 + name: package-release-v0.3.4 path: dist - name: Publish the Python runtime with its PyPI attestation @@ -225,16 +225,16 @@ jobs: - name: Download the authorized distribution uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 with: - name: package-release-v0.3.3 + name: package-release-v0.3.4 path: dist - name: Verify the exact authorized registry archive run: | set -euo pipefail - expected_integrity="sha512-$(openssl dgst -sha512 -binary dist/npm/vyral-client-0.3.3.tgz | base64 -w 0)" - test "$(npm view vyral-client@0.3.3 version)" = "0.3.3" - test "$(npm view vyral-client@0.3.3 repository.url)" = "git+https://github.com/univeracity/vyral.git" - test "$(npm view vyral-client@0.3.3 dist.integrity)" = "$expected_integrity" + expected_integrity="sha512-$(openssl dgst -sha512 -binary dist/npm/vyral-client-0.3.4.tgz | base64 -w 0)" + test "$(npm view vyral-client@0.3.4 version)" = "0.3.4" + test "$(npm view vyral-client@0.3.4 repository.url)" = "git+https://github.com/univeracity/vyral.git" + test "$(npm view vyral-client@0.3.4 dist.integrity)" = "$expected_integrity" verify: name: Verify public package availability @@ -252,8 +252,8 @@ jobs: nuget_abstractions="$(curl --fail --silent --show-error https://api.nuget.org/v3-flatcontainer/vyral.abstractions/index.json | jq -r '.versions[-1]')" || true nuget_local="$(curl --fail --silent --show-error https://api.nuget.org/v3-flatcontainer/vyral.local/index.json | jq -r '.versions[-1]')" || true pypi="$(curl --fail --silent --show-error https://pypi.org/pypi/vyral/json | jq -r '.info.version')" || true - npm_version="$(curl --fail --silent --show-error https://registry.npmjs.org/vyral-client/0.3.3 | jq -r '.version')" || true - if [[ "$nuget_abstractions" == "0.3.3" && "$nuget_local" == "0.3.3" && "$pypi" == "0.1.4" && "$npm_version" == "0.3.3" ]]; then + npm_version="$(curl --fail --silent --show-error https://registry.npmjs.org/vyral-client/0.3.4 | jq -r '.version')" || true + if [[ "$nuget_abstractions" == "0.3.4" && "$nuget_local" == "0.3.4" && "$pypi" == "0.1.4" && "$npm_version" == "0.3.4" ]]; then printf 'NuGet, PyPI and npm expose every authorized package version.\n' >> "$GITHUB_STEP_SUMMARY" exit 0 fi diff --git a/.github/workflows/python-runtime-qualification.yml b/.github/workflows/python-runtime-qualification.yml index 14f8ea3..fa910ef 100644 --- a/.github/workflows/python-runtime-qualification.yml +++ b/.github/workflows/python-runtime-qualification.yml @@ -168,7 +168,7 @@ jobs: raise SystemExit("The baseline runtime wheel SHA-256 is invalid.") name = Path(urlsplit(url).path).name if not re.fullmatch( - r"vyral_runtime-0\.1\.\d+-py3-none-any\.whl", + r"vyral(?:_runtime)?-0\.1\.\d+-py3-none-any\.whl", name, ): raise SystemExit( diff --git a/README.md b/README.md index 6d9bf37..8491abc 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@

Apache-2.0 license CI status - Version 0.3.3 + Version 0.3.4 Python 3.10 or newer MCP 2026-07-28 Readiness is evidence-scoped @@ -204,7 +204,7 @@ also need TLS, rate limits, authenticated ingress, and deployment-specific identity policy. See the [CanonicalStore guide](docs/concepts/canonical-store.md) and the [deployment guide](deploy). -The general package release is `v0.3.3` (core NuGet and JavaScript SDK `0.3.3`, +The general package release is `v0.3.4` (core NuGet and JavaScript SDK `0.3.4`, prototype Python runtime `0.1.4`). It advances independently of the server container. The lightweight Python HTTP SDK is available as a release archive, not a PyPI publication. diff --git a/clients/javascript/package-lock.json b/clients/javascript/package-lock.json index 92d42de..e03d6cc 100644 --- a/clients/javascript/package-lock.json +++ b/clients/javascript/package-lock.json @@ -1,12 +1,12 @@ { "name": "vyral-client", - "version": "0.3.3", + "version": "0.3.4", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "vyral-client", - "version": "0.3.3", + "version": "0.3.4", "license": "Apache-2.0", "devDependencies": { "typescript": "7.0.2" diff --git a/clients/javascript/package.json b/clients/javascript/package.json index 0f1937a..145ece9 100644 --- a/clients/javascript/package.json +++ b/clients/javascript/package.json @@ -1,6 +1,6 @@ { "name": "vyral-client", - "version": "0.3.3", + "version": "0.3.4", "description": "JavaScript HTTP client for the Vyral local server", "type": "module", "main": "./src/index.js", diff --git a/clients/python/pyproject.toml b/clients/python/pyproject.toml index db3acb9..38b690c 100644 --- a/clients/python/pyproject.toml +++ b/clients/python/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "vyral-client" -version = "0.3.3" +version = "0.3.4" description = "Python HTTP client for the Vyral local server" requires-python = ">=3.10" readme = "README.md" diff --git a/docs/maintainers/releasing.md b/docs/maintainers/releasing.md index 6a7290e..e97b52e 100644 --- a/docs/maintainers/releasing.md +++ b/docs/maintainers/releasing.md @@ -48,7 +48,7 @@ retained as release evidence. registry version, repository URL, and SHA-512 archive integrity against its independently built distribution. This exception does not claim npm OIDC provenance or a trusted-publisher relationship. The operator renewed this exact-archive exception for - `vyral-client@0.3.3`; use the same local-token publication and protected integrity + `vyral-client@0.3.4`; use the same local-token publication and protected integrity verification boundary. Other npm versions require new explicit authorization or an account configuration that permits npm trusted publishing. Do not place the token in GitHub, the repository, or a workflow file. @@ -100,13 +100,13 @@ The exact currently authorized package cohort is recorded in The manual [`Publish package release`](../../.github/workflows/publish-first-cohort.yml) workflow is the only source path allowed to publish that cohort. Its filename is retained because NuGet and PyPI trusted-publisher identities include the workflow filename. It accepts only the -reviewed `v0.3.3` package patch, and before packaging requires a GitHub-verified signed +reviewed `v0.3.4` package patch, and before packaging requires a GitHub-verified signed annotated tag at current `main` plus a successful canonical Release Integrity push run for that commit. Each registry job uses its own protected environment and least-privilege identity. It has no automatic trigger. The patch publishes -`Vyral.Abstractions` and `Vyral.Local` `0.3.3`, the Python runtime `0.1.4`, -and the JavaScript HTTP SDK `vyral-client@0.3.3`. Execution registry packages -remain unchanged. The lightweight Python HTTP SDK source is versioned `0.3.3` +`Vyral.Abstractions` and `Vyral.Local` `0.3.4`, the Python runtime `0.1.4`, +and the JavaScript HTTP SDK `vyral-client@0.3.4`. Execution registry packages +remain unchanged. The lightweight Python HTTP SDK source is versioned `0.3.4` and packaged for GitHub release use; its PyPI distribution remains outside the cohort. The server's `0.3.1` security correction is a deliberately separate, @@ -138,7 +138,7 @@ GitHub Actions OIDC trusted publishing; NuGet additionally needs the `NUGET_USERNAME` environment variable for its short-lived-key exchange. The separate container workflow uses only the repository-scoped `GITHUB_TOKEN` with `packages: write`. npm uses the explicitly renewed operator-token exception -for `vyral-client@0.3.3`: publish only the exact authorized archive after the signed +for `vyral-client@0.3.4`: publish only the exact authorized archive after the signed tag and canonical checks exist, then dispatch with `npm_direct_token_published: true`. The protected npm environment verifies its version, repository URL and SHA-512 integrity against an independently built archive. No npm token is placed in GitHub diff --git a/docs/reference/stability.md b/docs/reference/stability.md index 64a73f8..ba577a9 100644 --- a/docs/reference/stability.md +++ b/docs/reference/stability.md @@ -49,8 +49,8 @@ that was produced for 0.2. A future execution minor release must regenerate its qualification evidence and update all related package and descriptor versions together. -The general GitHub package release is `v0.3.3`: core NuGet and HTTP SDK packages -use `0.3.3`, and the prototype Python runtime uses `0.1.4`. The server container +The general GitHub package release is `v0.3.4`: core NuGet and HTTP SDK packages +use `0.3.4`, and the prototype Python runtime uses `0.1.4`. The server container remains the separately tagged `server-v0.3.6` release. Contract catalog versions remain `0.3.0` within this compatible patch; execution evidence remains on `0.2.0`. diff --git a/packaging/publication-cohort.json b/packaging/publication-cohort.json index d0f4ead..57c0d5d 100644 --- a/packaging/publication-cohort.json +++ b/packaging/publication-cohort.json @@ -5,7 +5,7 @@ { "ecosystem": "nuget", "name": "Vyral.Abstractions", - "version": "0.3.3", + "version": "0.3.4", "source": "src/Vyral.Abstractions/Vyral.Abstractions.csproj", "environment": "publish-nuget", "maturity": "public" @@ -13,7 +13,7 @@ { "ecosystem": "nuget", "name": "Vyral.Local", - "version": "0.3.3", + "version": "0.3.4", "source": "src/Vyral.Local/Vyral.Local.csproj", "environment": "publish-nuget", "maturity": "public" @@ -29,7 +29,7 @@ { "ecosystem": "npm", "name": "vyral-client", - "version": "0.3.3", + "version": "0.3.4", "source": "clients/javascript/package.json", "environment": "publish-npm", "maturity": "public" @@ -50,7 +50,7 @@ ], "authorization": { "mode": "manual-protected-environment", - "releaseTag": "v0.3.3", + "releaseTag": "v0.3.4", "workflow": ".github/workflows/publish-first-cohort.yml", "requirements": [ "a GitHub-verified signed annotated release tag that resolves to current main", @@ -82,5 +82,5 @@ } ] }, - "authorizationBoundary": "This reviewed authorization permits only the listed package patch through the named manual workflow. It excludes unchanged execution packages, the Python HTTP client registry distribution, provider packages, and container publication. The npm 0.3.3 archive has an explicitly authorized operator-token exception; no npm token is stored in GitHub, source or workflow files, and no npm OIDC provenance is claimed." + "authorizationBoundary": "This reviewed authorization permits only the listed package patch through the named manual workflow. It excludes unchanged execution packages, the Python HTTP client registry distribution, provider packages, and container publication. The npm 0.3.4 archive has an explicitly authorized operator-token exception; no npm token is stored in GitHub, source or workflow files, and no npm OIDC provenance is claimed." } diff --git a/samples/Vyral.CanonicalProjectionStarter/packages.lock.json b/samples/Vyral.CanonicalProjectionStarter/packages.lock.json index 1bcd333..e86ec70 100644 --- a/samples/Vyral.CanonicalProjectionStarter/packages.lock.json +++ b/samples/Vyral.CanonicalProjectionStarter/packages.lock.json @@ -74,7 +74,7 @@ "SQLitePCLRaw.bundle_e_sqlite3": "[3.0.5, )", "SQLitePCLRaw.core": "[3.0.5, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { diff --git a/samples/Vyral.Execution.AzureDurableFunctionsSmoke/packages.lock.json b/samples/Vyral.Execution.AzureDurableFunctionsSmoke/packages.lock.json index 35e14a6..2ef12ac 100644 --- a/samples/Vyral.Execution.AzureDurableFunctionsSmoke/packages.lock.json +++ b/samples/Vyral.Execution.AzureDurableFunctionsSmoke/packages.lock.json @@ -419,7 +419,7 @@ "Azure.Storage.Blobs": "[12.29.2, )", "Microsoft.Azure.Cosmos": "[3.62.1, )", "Newtonsoft.Json": "[13.0.4, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution.AzureDurable": "[0.2.0, )" } }, diff --git a/samples/Vyral.Execution.TemporalSample/packages.lock.json b/samples/Vyral.Execution.TemporalSample/packages.lock.json index 06edf1f..3a01279 100644 --- a/samples/Vyral.Execution.TemporalSample/packages.lock.json +++ b/samples/Vyral.Execution.TemporalSample/packages.lock.json @@ -404,7 +404,7 @@ "dependencies": { "Temporalio": "[1.18.0, )", "Temporalio.Extensions.Hosting": "[1.18.0, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution.Temporal": "[0.2.0, )" } }, @@ -422,7 +422,7 @@ "SQLitePCLRaw.bundle_e_sqlite3": "[3.0.5, )", "SQLitePCLRaw.core": "[3.0.5, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { diff --git a/scripts/verify-publication-cohort.py b/scripts/verify-publication-cohort.py index a864bfa..bd21cf0 100755 --- a/scripts/verify-publication-cohort.py +++ b/scripts/verify-publication-cohort.py @@ -15,7 +15,7 @@ ( "nuget", "Vyral.Abstractions", - "0.3.3", + "0.3.4", "src/Vyral.Abstractions/Vyral.Abstractions.csproj", "publish-nuget", "public", @@ -23,7 +23,7 @@ ( "nuget", "Vyral.Local", - "0.3.3", + "0.3.4", "src/Vyral.Local/Vyral.Local.csproj", "publish-nuget", "public", @@ -39,7 +39,7 @@ ( "npm", "vyral-client", - "0.3.3", + "0.3.4", "clients/javascript/package.json", "publish-npm", "public", @@ -60,7 +60,7 @@ } AUTHORIZATION = { "mode": "manual-protected-environment", - "releaseTag": "v0.3.3", + "releaseTag": "v0.3.4", "workflow": ".github/workflows/publish-first-cohort.yml", "requirements": ( "a GitHub-verified signed annotated release tag that resolves to current main", diff --git a/scripts/verify-publication-policy.py b/scripts/verify-publication-policy.py index 84cc6a3..9d6b500 100644 --- a/scripts/verify-publication-policy.py +++ b/scripts/verify-publication-policy.py @@ -126,7 +126,7 @@ def main() -> int: for requirement in ( "workflow_dispatch:", "release_tag:", - "v0.3.3", + "v0.3.4", "confirm:", "type: boolean", "GITHUB_TOKEN: ${{ github.token }}", @@ -137,14 +137,14 @@ def main() -> int: "name: publish-nuget", "name: publish-pypi", "name: publish-npm", - "name: package-release-v0.3.3", + "name: package-release-v0.3.4", 'SOURCE_DATE_EPOCH: "315532800"', "NuGet/login@8d196754b4036150537f80ac539e15c2f1028841", "pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33", "skip-existing: true", "npm_direct_token_published:", 'test "$NPM_DIRECT_TOKEN_PUBLISHED" = "true"', - "npm view vyral-client@0.3.3 dist.integrity", + "npm view vyral-client@0.3.4 dist.integrity", "expected_integrity", "Verify public package availability", ): diff --git a/scripts/verify-release-artifacts.sh b/scripts/verify-release-artifacts.sh index 56e24e2..4b3b8e8 100755 --- a/scripts/verify-release-artifacts.sh +++ b/scripts/verify-release-artifacts.sh @@ -310,8 +310,8 @@ for package in packages: package_id = value("id") package_version = value("version") expected_versions = { - "Vyral.Abstractions": "0.3.3", - "Vyral.Local": "0.3.3", + "Vyral.Abstractions": "0.3.4", + "Vyral.Local": "0.3.4", "Vyral.Primitives": "0.2.0", "Vyral.Execution": "0.2.0", "Vyral.Execution.Aws": "0.2.0", diff --git a/scripts/verify-version-policy.py b/scripts/verify-version-policy.py index aab1085..1c94a60 100755 --- a/scripts/verify-version-policy.py +++ b/scripts/verify-version-policy.py @@ -13,8 +13,8 @@ ROOT = Path(__file__).resolve().parent.parent PRODUCT_VERSION = "0.3.0" -CORE_PACKAGE_VERSION = "0.3.3" -SDK_PACKAGE_VERSION = "0.3.3" +CORE_PACKAGE_VERSION = "0.3.4" +SDK_PACKAGE_VERSION = "0.3.4" SERVER_IMAGE_VERSION = "0.3.6" EXECUTION_VERSION = "0.2.0" PYTHON_RUNTIME_VERSION = "0.1.4" diff --git a/src/Vyral.Abstractions/Vyral.Abstractions.csproj b/src/Vyral.Abstractions/Vyral.Abstractions.csproj index ad5afa1..cf591d8 100644 --- a/src/Vyral.Abstractions/Vyral.Abstractions.csproj +++ b/src/Vyral.Abstractions/Vyral.Abstractions.csproj @@ -6,8 +6,8 @@ net8.0;net10.0 - 0.3.3 - 0.3.3 + 0.3.4 + 0.3.4 enable enable diff --git a/src/Vyral.Cli/packages.lock.json b/src/Vyral.Cli/packages.lock.json index fdfafbd..e3c3282 100644 --- a/src/Vyral.Cli/packages.lock.json +++ b/src/Vyral.Cli/packages.lock.json @@ -302,7 +302,7 @@ "Azure.Storage.Blobs": "[12.29.2, )", "Microsoft.Azure.Cosmos": "[3.62.1, )", "Newtonsoft.Json": "[13.0.4, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution.AzureDurable": "[0.2.0, )" } }, @@ -311,7 +311,7 @@ "dependencies": { "Microsoft.ML.OnnxRuntime": "[1.29.0, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.execution": { @@ -333,7 +333,7 @@ "SQLitePCLRaw.bundle_e_sqlite3": "[3.0.5, )", "SQLitePCLRaw.core": "[3.0.5, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { diff --git a/src/Vyral.Cloudflare/packages.lock.json b/src/Vyral.Cloudflare/packages.lock.json index 9a43e1f..9c9ac16 100644 --- a/src/Vyral.Cloudflare/packages.lock.json +++ b/src/Vyral.Cloudflare/packages.lock.json @@ -55,7 +55,7 @@ "AWSSDK.S3": "[4.0.102.4, )", "AWSSDK.Signin": "[4.0.101.8, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { diff --git a/src/Vyral.Google/packages.lock.json b/src/Vyral.Google/packages.lock.json index 7e1f261..d5479f8 100644 --- a/src/Vyral.Google/packages.lock.json +++ b/src/Vyral.Google/packages.lock.json @@ -251,7 +251,7 @@ "dependencies": { "Npgsql": "[10.0.3, )", "Pgvector": "[0.3.2, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { diff --git a/src/Vyral.HostedWorker/packages.lock.json b/src/Vyral.HostedWorker/packages.lock.json index fce3bd2..293fa7d 100644 --- a/src/Vyral.HostedWorker/packages.lock.json +++ b/src/Vyral.HostedWorker/packages.lock.json @@ -509,7 +509,7 @@ "AWSSDK.S3": "[4.0.102.4, )", "AWSSDK.Signin": "[4.0.101.8, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.azure": { @@ -518,7 +518,7 @@ "Azure.Storage.Blobs": "[12.29.2, )", "Microsoft.Azure.Cosmos": "[3.62.1, )", "Newtonsoft.Json": "[13.0.4, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution.AzureDurable": "[0.2.0, )" } }, @@ -526,7 +526,7 @@ "type": "Project", "dependencies": { "AWSSDK.S3": "[4.0.102.4, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Aws": "[0.3.0, )" } }, @@ -535,7 +535,7 @@ "dependencies": { "Microsoft.ML.OnnxRuntime": "[1.29.0, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.execution": { @@ -549,7 +549,7 @@ "dependencies": { "AWSSDK.DynamoDBv2": "[4.0.103.5, )", "AWSSDK.SQS": "[4.0.100.11, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )" } }, @@ -583,7 +583,7 @@ "Google.Cloud.Storage.V1": "[4.15.0, )", "Google.Cloud.Tasks.V2": "[3.6.0, )", "Npgsql": "[10.0.3, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )", "Vyral.Pgvector": "[0.3.0, )" } @@ -595,7 +595,7 @@ "SQLitePCLRaw.bundle_e_sqlite3": "[3.0.5, )", "SQLitePCLRaw.core": "[3.0.5, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.mcp": { @@ -603,7 +603,7 @@ "dependencies": { "ModelContextProtocol.AspNetCore": "[2.2.0, )", "ModelContextProtocol.Extensions.Tasks": "[2.2.0, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )", "Vyral.Primitives": "[0.2.0, )", "Vyral.Providers.Abstractions": "[0.3.0, )" @@ -613,7 +613,7 @@ "type": "Project", "dependencies": { "MySqlConnector": "[2.6.2, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.pgvector": { @@ -621,7 +621,7 @@ "dependencies": { "Npgsql": "[10.0.3, )", "Pgvector": "[0.3.2, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { @@ -670,7 +670,7 @@ "AWSSDK.DynamoDBv2": "[4.0.103.5, )", "AWSSDK.SQS": "[4.0.100.11, )", "Google.Apis.Auth": "[1.76.0, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Azure": "[0.3.0, )", "Vyral.Cloudflare": "[0.3.0, )", "Vyral.Embeddings.Onnx": "[0.3.0, )", @@ -678,7 +678,7 @@ "Vyral.Execution.Aws": "[0.2.0, )", "Vyral.Execution.Local": "[0.2.0, )", "Vyral.Google": "[0.3.0, )", - "Vyral.Local": "[0.3.3, )", + "Vyral.Local": "[0.3.4, )", "Vyral.Mcp": "[0.3.0, )", "Vyral.MySql": "[0.3.0, )", "Vyral.Pgvector": "[0.3.0, )", diff --git a/src/Vyral.Local/Vyral.Local.csproj b/src/Vyral.Local/Vyral.Local.csproj index bf4d804..f0f5e5c 100644 --- a/src/Vyral.Local/Vyral.Local.csproj +++ b/src/Vyral.Local/Vyral.Local.csproj @@ -13,8 +13,8 @@ net10.0 - 0.3.3 - 0.3.3 + 0.3.4 + 0.3.4 enable enable diff --git a/src/Vyral.Providers.Onnx/packages.lock.json b/src/Vyral.Providers.Onnx/packages.lock.json index 38753a0..d0b911a 100644 --- a/src/Vyral.Providers.Onnx/packages.lock.json +++ b/src/Vyral.Providers.Onnx/packages.lock.json @@ -34,7 +34,7 @@ "dependencies": { "Microsoft.ML.OnnxRuntime": "[1.29.0, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { diff --git a/src/Vyral.Server/packages.lock.json b/src/Vyral.Server/packages.lock.json index 568c6b3..02d4d1b 100644 --- a/src/Vyral.Server/packages.lock.json +++ b/src/Vyral.Server/packages.lock.json @@ -512,7 +512,7 @@ "AWSSDK.S3": "[4.0.102.4, )", "AWSSDK.Signin": "[4.0.101.8, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.azure": { @@ -521,7 +521,7 @@ "Azure.Storage.Blobs": "[12.29.2, )", "Microsoft.Azure.Cosmos": "[3.62.1, )", "Newtonsoft.Json": "[13.0.4, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution.AzureDurable": "[0.2.0, )" } }, @@ -529,7 +529,7 @@ "type": "Project", "dependencies": { "AWSSDK.S3": "[4.0.102.4, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Aws": "[0.3.0, )" } }, @@ -538,7 +538,7 @@ "dependencies": { "Microsoft.ML.OnnxRuntime": "[1.29.0, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.execution": { @@ -552,7 +552,7 @@ "dependencies": { "AWSSDK.DynamoDBv2": "[4.0.103.5, )", "AWSSDK.SQS": "[4.0.100.11, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )" } }, @@ -580,7 +580,7 @@ "Google.Cloud.Storage.V1": "[4.15.0, )", "Google.Cloud.Tasks.V2": "[3.6.0, )", "Npgsql": "[10.0.3, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )", "Vyral.Pgvector": "[0.3.0, )" } @@ -592,7 +592,7 @@ "SQLitePCLRaw.bundle_e_sqlite3": "[3.0.5, )", "SQLitePCLRaw.core": "[3.0.5, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.mcp": { @@ -600,7 +600,7 @@ "dependencies": { "ModelContextProtocol.AspNetCore": "[2.2.0, )", "ModelContextProtocol.Extensions.Tasks": "[2.2.0, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )", "Vyral.Primitives": "[0.2.0, )", "Vyral.Providers.Abstractions": "[0.3.0, )" @@ -610,7 +610,7 @@ "type": "Project", "dependencies": { "MySqlConnector": "[2.6.2, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.pgvector": { @@ -618,7 +618,7 @@ "dependencies": { "Npgsql": "[10.0.3, )", "Pgvector": "[0.3.2, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { diff --git a/tests/Vyral.Tests.Aws/packages.lock.json b/tests/Vyral.Tests.Aws/packages.lock.json index 4baea56..2703d56 100644 --- a/tests/Vyral.Tests.Aws/packages.lock.json +++ b/tests/Vyral.Tests.Aws/packages.lock.json @@ -214,7 +214,7 @@ "AWSSDK.S3": "[4.0.102.4, )", "AWSSDK.Signin": "[4.0.101.8, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.execution": { @@ -228,7 +228,7 @@ "dependencies": { "AWSSDK.DynamoDBv2": "[4.0.103.5, )", "AWSSDK.SQS": "[4.0.100.11, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )" } }, @@ -255,7 +255,7 @@ "SQLitePCLRaw.bundle_e_sqlite3": "[3.0.5, )", "SQLitePCLRaw.core": "[3.0.5, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { @@ -271,11 +271,11 @@ "type": "Project", "dependencies": { "Microsoft.NET.Test.Sdk": "[18.9.0, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )", "Vyral.Execution.Local": "[0.2.0, )", "Vyral.Execution.WorkerClient": "[0.2.0, )", - "Vyral.Local": "[0.3.3, )", + "Vyral.Local": "[0.3.4, )", "Vyral.Primitives": "[0.2.0, )", "Vyral.Providers.Abstractions": "[0.3.0, )", "xunit": "[2.9.3, )" diff --git a/tests/Vyral.Tests.Azure/packages.lock.json b/tests/Vyral.Tests.Azure/packages.lock.json index 7ed32c8..850bfc7 100644 --- a/tests/Vyral.Tests.Azure/packages.lock.json +++ b/tests/Vyral.Tests.Azure/packages.lock.json @@ -476,7 +476,7 @@ "Azure.Storage.Blobs": "[12.29.2, )", "Microsoft.Azure.Cosmos": "[3.62.1, )", "Newtonsoft.Json": "[13.0.4, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution.AzureDurable": "[0.2.0, )" } }, @@ -522,7 +522,7 @@ "SQLitePCLRaw.bundle_e_sqlite3": "[3.0.5, )", "SQLitePCLRaw.core": "[3.0.5, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { @@ -538,11 +538,11 @@ "type": "Project", "dependencies": { "Microsoft.NET.Test.Sdk": "[18.9.0, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )", "Vyral.Execution.Local": "[0.2.0, )", "Vyral.Execution.WorkerClient": "[0.2.0, )", - "Vyral.Local": "[0.3.3, )", + "Vyral.Local": "[0.3.4, )", "Vyral.Primitives": "[0.2.0, )", "Vyral.Providers.Abstractions": "[0.3.0, )", "xunit": "[2.9.3, )" diff --git a/tests/Vyral.Tests.Cloudflare/packages.lock.json b/tests/Vyral.Tests.Cloudflare/packages.lock.json index 54b81ea..bf9b864 100644 --- a/tests/Vyral.Tests.Cloudflare/packages.lock.json +++ b/tests/Vyral.Tests.Cloudflare/packages.lock.json @@ -204,14 +204,14 @@ "AWSSDK.S3": "[4.0.102.4, )", "AWSSDK.Signin": "[4.0.101.8, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.cloudflare": { "type": "Project", "dependencies": { "AWSSDK.S3": "[4.0.102.4, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Aws": "[0.3.0, )" } }, @@ -244,7 +244,7 @@ "SQLitePCLRaw.bundle_e_sqlite3": "[3.0.5, )", "SQLitePCLRaw.core": "[3.0.5, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { @@ -260,11 +260,11 @@ "type": "Project", "dependencies": { "Microsoft.NET.Test.Sdk": "[18.9.0, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )", "Vyral.Execution.Local": "[0.2.0, )", "Vyral.Execution.WorkerClient": "[0.2.0, )", - "Vyral.Local": "[0.3.3, )", + "Vyral.Local": "[0.3.4, )", "Vyral.Primitives": "[0.2.0, )", "Vyral.Providers.Abstractions": "[0.3.0, )", "xunit": "[2.9.3, )" diff --git a/tests/Vyral.Tests.Conformance/packages.lock.json b/tests/Vyral.Tests.Conformance/packages.lock.json index a7de0be..9efe413 100644 --- a/tests/Vyral.Tests.Conformance/packages.lock.json +++ b/tests/Vyral.Tests.Conformance/packages.lock.json @@ -191,7 +191,7 @@ "SQLitePCLRaw.bundle_e_sqlite3": "[3.0.5, )", "SQLitePCLRaw.core": "[3.0.5, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { diff --git a/tests/Vyral.Tests.Google/packages.lock.json b/tests/Vyral.Tests.Google/packages.lock.json index a48b919..486e912 100644 --- a/tests/Vyral.Tests.Google/packages.lock.json +++ b/tests/Vyral.Tests.Google/packages.lock.json @@ -415,7 +415,7 @@ "Google.Cloud.Storage.V1": "[4.15.0, )", "Google.Cloud.Tasks.V2": "[3.6.0, )", "Npgsql": "[10.0.3, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )", "Vyral.Pgvector": "[0.3.0, )" } @@ -427,7 +427,7 @@ "SQLitePCLRaw.bundle_e_sqlite3": "[3.0.5, )", "SQLitePCLRaw.core": "[3.0.5, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.pgvector": { @@ -435,7 +435,7 @@ "dependencies": { "Npgsql": "[10.0.3, )", "Pgvector": "[0.3.2, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { @@ -451,11 +451,11 @@ "type": "Project", "dependencies": { "Microsoft.NET.Test.Sdk": "[18.9.0, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )", "Vyral.Execution.Local": "[0.2.0, )", "Vyral.Execution.WorkerClient": "[0.2.0, )", - "Vyral.Local": "[0.3.3, )", + "Vyral.Local": "[0.3.4, )", "Vyral.Primitives": "[0.2.0, )", "Vyral.Providers.Abstractions": "[0.3.0, )", "xunit": "[2.9.3, )" diff --git a/tests/Vyral.Tests.Local/packages.lock.json b/tests/Vyral.Tests.Local/packages.lock.json index 92b7bb2..b39f402 100644 --- a/tests/Vyral.Tests.Local/packages.lock.json +++ b/tests/Vyral.Tests.Local/packages.lock.json @@ -968,7 +968,7 @@ "AWSSDK.S3": "[4.0.102.4, )", "AWSSDK.Signin": "[4.0.101.8, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.azure": { @@ -977,7 +977,7 @@ "Azure.Storage.Blobs": "[12.29.2, )", "Microsoft.Azure.Cosmos": "[3.62.1, )", "Newtonsoft.Json": "[13.0.4, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution.AzureDurable": "[0.2.0, )" } }, @@ -986,32 +986,32 @@ "dependencies": { "Microsoft.Extensions.VectorData.Abstractions": "[10.9.0, )", "Microsoft.SemanticKernel.Abstractions": "[1.80.0, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.canonicalprojectionstarter": { "type": "Project", "dependencies": { "Microsoft.Data.Sqlite": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )", - "Vyral.Local": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )", + "Vyral.Local": "[0.3.4, )" } }, "vyral.cli": { "type": "Project", "dependencies": { "System.CommandLine": "[2.0.0-beta4.22272.1, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Azure": "[0.3.0, )", "Vyral.Embeddings.Onnx": "[0.3.0, )", - "Vyral.Local": "[0.3.3, )" + "Vyral.Local": "[0.3.4, )" } }, "vyral.cloudflare": { "type": "Project", "dependencies": { "AWSSDK.S3": "[4.0.102.4, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Aws": "[0.3.0, )" } }, @@ -1020,7 +1020,7 @@ "dependencies": { "Microsoft.ML.OnnxRuntime": "[1.29.0, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.execution": { @@ -1034,7 +1034,7 @@ "dependencies": { "AWSSDK.DynamoDBv2": "[4.0.103.5, )", "AWSSDK.SQS": "[4.0.100.11, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )" } }, @@ -1069,7 +1069,7 @@ "Google.Cloud.Storage.V1": "[4.15.0, )", "Google.Cloud.Tasks.V2": "[3.6.0, )", "Npgsql": "[10.0.3, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )", "Vyral.Pgvector": "[0.3.0, )" } @@ -1081,7 +1081,7 @@ "SQLitePCLRaw.bundle_e_sqlite3": "[3.0.5, )", "SQLitePCLRaw.core": "[3.0.5, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.mcp": { @@ -1089,7 +1089,7 @@ "dependencies": { "ModelContextProtocol.AspNetCore": "[2.2.0, )", "ModelContextProtocol.Extensions.Tasks": "[2.2.0, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )", "Vyral.Primitives": "[0.2.0, )", "Vyral.Providers.Abstractions": "[0.3.0, )" @@ -1099,7 +1099,7 @@ "type": "Project", "dependencies": { "MySqlConnector": "[2.6.2, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.pgvector": { @@ -1107,7 +1107,7 @@ "dependencies": { "Npgsql": "[10.0.3, )", "Pgvector": "[0.3.2, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { @@ -1156,7 +1156,7 @@ "AWSSDK.DynamoDBv2": "[4.0.103.5, )", "AWSSDK.SQS": "[4.0.100.11, )", "Google.Apis.Auth": "[1.76.0, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Azure": "[0.3.0, )", "Vyral.Cloudflare": "[0.3.0, )", "Vyral.Embeddings.Onnx": "[0.3.0, )", @@ -1164,7 +1164,7 @@ "Vyral.Execution.Aws": "[0.2.0, )", "Vyral.Execution.Local": "[0.2.0, )", "Vyral.Google": "[0.3.0, )", - "Vyral.Local": "[0.3.3, )", + "Vyral.Local": "[0.3.4, )", "Vyral.Mcp": "[0.3.0, )", "Vyral.MySql": "[0.3.0, )", "Vyral.Pgvector": "[0.3.0, )", @@ -1180,11 +1180,11 @@ "type": "Project", "dependencies": { "Microsoft.NET.Test.Sdk": "[18.9.0, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )", "Vyral.Execution.Local": "[0.2.0, )", "Vyral.Execution.WorkerClient": "[0.2.0, )", - "Vyral.Local": "[0.3.3, )", + "Vyral.Local": "[0.3.4, )", "Vyral.Primitives": "[0.2.0, )", "Vyral.Providers.Abstractions": "[0.3.0, )", "xunit": "[2.9.3, )" diff --git a/tests/Vyral.Tests.MySql/packages.lock.json b/tests/Vyral.Tests.MySql/packages.lock.json index 984f8ae..233e58b 100644 --- a/tests/Vyral.Tests.MySql/packages.lock.json +++ b/tests/Vyral.Tests.MySql/packages.lock.json @@ -195,15 +195,15 @@ "type": "Project", "dependencies": { "Microsoft.Data.Sqlite": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )", - "Vyral.Local": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )", + "Vyral.Local": "[0.3.4, )" } }, "vyral.canonicalstore.benchmarks": { "type": "Project", "dependencies": { "MySqlConnector": "[2.6.2, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.MySql": "[0.3.0, )" } }, @@ -236,14 +236,14 @@ "SQLitePCLRaw.bundle_e_sqlite3": "[3.0.5, )", "SQLitePCLRaw.core": "[3.0.5, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.mysql": { "type": "Project", "dependencies": { "MySqlConnector": "[2.6.2, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.pgvector": { @@ -251,7 +251,7 @@ "dependencies": { "Npgsql": "[10.0.3, )", "Pgvector": "[0.3.2, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { @@ -267,11 +267,11 @@ "type": "Project", "dependencies": { "Microsoft.NET.Test.Sdk": "[18.9.0, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )", "Vyral.Execution.Local": "[0.2.0, )", "Vyral.Execution.WorkerClient": "[0.2.0, )", - "Vyral.Local": "[0.3.3, )", + "Vyral.Local": "[0.3.4, )", "Vyral.Primitives": "[0.2.0, )", "Vyral.Providers.Abstractions": "[0.3.0, )", "xunit": "[2.9.3, )" diff --git a/tests/Vyral.Tests.Pgvector/packages.lock.json b/tests/Vyral.Tests.Pgvector/packages.lock.json index d4870a5..6757015 100644 --- a/tests/Vyral.Tests.Pgvector/packages.lock.json +++ b/tests/Vyral.Tests.Pgvector/packages.lock.json @@ -216,7 +216,7 @@ "SQLitePCLRaw.bundle_e_sqlite3": "[3.0.5, )", "SQLitePCLRaw.core": "[3.0.5, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.pgvector": { @@ -224,7 +224,7 @@ "dependencies": { "Npgsql": "[10.0.3, )", "Pgvector": "[0.3.2, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { @@ -240,11 +240,11 @@ "type": "Project", "dependencies": { "Microsoft.NET.Test.Sdk": "[18.9.0, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )", "Vyral.Execution.Local": "[0.2.0, )", "Vyral.Execution.WorkerClient": "[0.2.0, )", - "Vyral.Local": "[0.3.3, )", + "Vyral.Local": "[0.3.4, )", "Vyral.Primitives": "[0.2.0, )", "Vyral.Providers.Abstractions": "[0.3.0, )", "xunit": "[2.9.3, )" diff --git a/tests/Vyral.Tests.Providers/packages.lock.json b/tests/Vyral.Tests.Providers/packages.lock.json index 4fe5ba9..4f46f86 100644 --- a/tests/Vyral.Tests.Providers/packages.lock.json +++ b/tests/Vyral.Tests.Providers/packages.lock.json @@ -183,7 +183,7 @@ "dependencies": { "Microsoft.ML.OnnxRuntime": "[1.29.0, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.execution": { @@ -215,7 +215,7 @@ "SQLitePCLRaw.bundle_e_sqlite3": "[3.0.5, )", "SQLitePCLRaw.core": "[3.0.5, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { @@ -262,11 +262,11 @@ "type": "Project", "dependencies": { "Microsoft.NET.Test.Sdk": "[18.9.0, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )", "Vyral.Execution.Local": "[0.2.0, )", "Vyral.Execution.WorkerClient": "[0.2.0, )", - "Vyral.Local": "[0.3.3, )", + "Vyral.Local": "[0.3.4, )", "Vyral.Primitives": "[0.2.0, )", "Vyral.Providers.Abstractions": "[0.3.0, )", "xunit": "[2.9.3, )" diff --git a/tests/Vyral.Tests.Temporal.WorkerHost/packages.lock.json b/tests/Vyral.Tests.Temporal.WorkerHost/packages.lock.json index 06edf1f..3a01279 100644 --- a/tests/Vyral.Tests.Temporal.WorkerHost/packages.lock.json +++ b/tests/Vyral.Tests.Temporal.WorkerHost/packages.lock.json @@ -404,7 +404,7 @@ "dependencies": { "Temporalio": "[1.18.0, )", "Temporalio.Extensions.Hosting": "[1.18.0, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution.Temporal": "[0.2.0, )" } }, @@ -422,7 +422,7 @@ "SQLitePCLRaw.bundle_e_sqlite3": "[3.0.5, )", "SQLitePCLRaw.core": "[3.0.5, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { diff --git a/tests/Vyral.Tests.Temporal/packages.lock.json b/tests/Vyral.Tests.Temporal/packages.lock.json index 3c933c6..cd96cdb 100644 --- a/tests/Vyral.Tests.Temporal/packages.lock.json +++ b/tests/Vyral.Tests.Temporal/packages.lock.json @@ -505,7 +505,7 @@ "dependencies": { "Temporalio": "[1.18.0, )", "Temporalio.Extensions.Hosting": "[1.18.0, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution.Temporal": "[0.2.0, )" } }, @@ -529,7 +529,7 @@ "SQLitePCLRaw.bundle_e_sqlite3": "[3.0.5, )", "SQLitePCLRaw.core": "[3.0.5, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { @@ -545,11 +545,11 @@ "type": "Project", "dependencies": { "Microsoft.NET.Test.Sdk": "[18.9.0, )", - "Vyral.Abstractions": "[0.3.3, )", + "Vyral.Abstractions": "[0.3.4, )", "Vyral.Execution": "[0.2.0, )", "Vyral.Execution.Local": "[0.2.0, )", "Vyral.Execution.WorkerClient": "[0.2.0, )", - "Vyral.Local": "[0.3.3, )", + "Vyral.Local": "[0.3.4, )", "Vyral.Primitives": "[0.2.0, )", "Vyral.Providers.Abstractions": "[0.3.0, )", "xunit": "[2.9.3, )" diff --git a/tools/Vyral.Benchmarks/packages.lock.json b/tools/Vyral.Benchmarks/packages.lock.json index e345e3b..3ef7db7 100644 --- a/tools/Vyral.Benchmarks/packages.lock.json +++ b/tools/Vyral.Benchmarks/packages.lock.json @@ -34,7 +34,7 @@ "dependencies": { "Microsoft.ML.OnnxRuntime": "[1.29.0, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { diff --git a/tools/Vyral.CanonicalStore.Benchmarks/packages.lock.json b/tools/Vyral.CanonicalStore.Benchmarks/packages.lock.json index a2d79aa..953164f 100644 --- a/tools/Vyral.CanonicalStore.Benchmarks/packages.lock.json +++ b/tools/Vyral.CanonicalStore.Benchmarks/packages.lock.json @@ -35,7 +35,7 @@ "type": "Project", "dependencies": { "MySqlConnector": "[2.6.2, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { diff --git a/tools/Vyral.OnnxJudgeCalibration/packages.lock.json b/tools/Vyral.OnnxJudgeCalibration/packages.lock.json index 1fe99b3..fdc023a 100644 --- a/tools/Vyral.OnnxJudgeCalibration/packages.lock.json +++ b/tools/Vyral.OnnxJudgeCalibration/packages.lock.json @@ -34,7 +34,7 @@ "dependencies": { "Microsoft.ML.OnnxRuntime": "[1.29.0, )", "System.Numerics.Tensors": "[10.0.11, )", - "Vyral.Abstractions": "[0.3.3, )" + "Vyral.Abstractions": "[0.3.4, )" } }, "vyral.primitives": { From 30fb1f81c2e37d24d757c3db1ddfd01deb8bbcde Mon Sep 17 00:00:00 2001 From: jeremydixon22 Date: Sat, 3 Oct 2026 02:08:19 -0400 Subject: [PATCH 2/6] Refresh public export for Vyral 0.3.4 --- PUBLIC-EXPORT-MANIFEST.json | 78 ++++++++++++++++++------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/PUBLIC-EXPORT-MANIFEST.json b/PUBLIC-EXPORT-MANIFEST.json index 46babcf..7aff627 100644 --- a/PUBLIC-EXPORT-MANIFEST.json +++ b/PUBLIC-EXPORT-MANIFEST.json @@ -114,7 +114,7 @@ { "mode": "644", "path": ".github/workflows/publish-first-cohort.yml", - "sha256": "3d0b82e48587d1852535fa5ee59c345f33f079fd51cb49c2bc71f7f8842822f1" + "sha256": "1af4a5096593b4bdec07f3215be7dee2fddb480df8d366a547981107b34e3547" }, { "mode": "644", @@ -124,7 +124,7 @@ { "mode": "644", "path": ".github/workflows/python-runtime-qualification.yml", - "sha256": "5cbad16456871bb1c7fd0b92c5b9dae052335db39dd924b2a83bff85547e3579" + "sha256": "97b9a47c5cd4c890dcee76f7ad8369f58a6180c1fb6432b457dc997cd64d8191" }, { "mode": "644", @@ -174,7 +174,7 @@ { "mode": "644", "path": "README.md", - "sha256": "270554dc28bfc9e342495ec1148cd47f164291e6301718c8d035b434fa084593" + "sha256": "cbbdf983fd5f07f87666871905171182b8729948a3402d8428fb58c6ecc7830a" }, { "mode": "644", @@ -259,12 +259,12 @@ { "mode": "644", "path": "clients/javascript/package-lock.json", - "sha256": "e0c342a0eeb730f5b0e338d4111920996bce92ca29f4892ea1295763057eb655" + "sha256": "05039b9131ad02b306d1daf1e9e5b4a43e9fbb29fd197d7399a2c53ea6d1d2e5" }, { "mode": "644", "path": "clients/javascript/package.json", - "sha256": "95a9988cc0dcaa0b08a8fda027a1b6173784fa98c177e2df437e0ada25e12e34" + "sha256": "fb9f67cba1498e9e99ac3d73c578f94ca48c14be126b1ca0aa02941f4cbf52ec" }, { "mode": "644", @@ -309,7 +309,7 @@ { "mode": "644", "path": "clients/python/pyproject.toml", - "sha256": "b85eca66154374e377f75b81ffcd85b97a4bb95f32a3a0529d6013fa995110e9" + "sha256": "7d7b1c50dce4da05a5601be877cf83f707bcc326f9e7843227a5668170d06df2" }, { "mode": "644", @@ -729,7 +729,7 @@ { "mode": "644", "path": "docs/maintainers/releasing.md", - "sha256": "d970da0ccd58caa70e64bab318dc74eb38bfb81a4547d91764cc85aa0be1a5e1" + "sha256": "8e9c2faf6a73a0a0b2148de34bc1c8758d4d22db2a77ed38597a4c44fe18109d" }, { "mode": "644", @@ -754,7 +754,7 @@ { "mode": "644", "path": "docs/reference/stability.md", - "sha256": "fff9123d0ad7e4cfd3e752b305e110649dcb8a8ce6144513d5d7021e180421cb" + "sha256": "6f127fb6801d2bb5f14c247b483d2977b935a463e3ae2e824350702de8ae7abf" }, { "mode": "644", @@ -834,7 +834,7 @@ { "mode": "644", "path": "packaging/publication-cohort.json", - "sha256": "ec434a615ff3cc70f447a320047cc7c119c634e9d7813b81860029d3b31ab455" + "sha256": "5a534cf84d9f0afdfb1461a9ee40d639821aaf2f8557b72365fa64a11a26a2ce" }, { "mode": "644", @@ -1604,7 +1604,7 @@ { "mode": "644", "path": "samples/Vyral.CanonicalProjectionStarter/packages.lock.json", - "sha256": "0de9918c0125459a3a119222054d0ca3974d3e96d3af5a3c1bba9d711fd6996b" + "sha256": "750487da7fed82678ff22d63b2219b129f535c39e40520ffd520b450237c4302" }, { "mode": "644", @@ -1639,7 +1639,7 @@ { "mode": "644", "path": "samples/Vyral.Execution.AzureDurableFunctionsSmoke/packages.lock.json", - "sha256": "89b80ebbc7c37274b3a0bcbb9bd966d22d9d70eac15a1a3896988e59ec17cf63" + "sha256": "38fce665fc790efb8238eedd889c06ceee0e8a4d4dbb6fb090858771007997b6" }, { "mode": "644", @@ -1709,7 +1709,7 @@ { "mode": "644", "path": "samples/Vyral.Execution.TemporalSample/packages.lock.json", - "sha256": "11579f6112e2fcf91fe345189e58800eab59bc0dbba88ffd52e4b32ad59bd766" + "sha256": "3f364c42efe1fc0d451939498457e9e7236159ab6375aa7f2f0ca20e7defb6fa" }, { "mode": "644", @@ -2164,12 +2164,12 @@ { "mode": "755", "path": "scripts/verify-publication-cohort.py", - "sha256": "4aeb37ec008dfbddd887fb93f6fd64676bb16d16762e5bed1baf112bf653e944" + "sha256": "c9a07e1ffba822a141ef500747827908de621906988112f18111e14cfc685c44" }, { "mode": "644", "path": "scripts/verify-publication-policy.py", - "sha256": "b58746ac44ed16bde9dfa829126a686fa05d4b1b0f1a478b715d9360cf9275a9" + "sha256": "45d9e837d48ee2c822d008ea93045f53bfe6f8d2c574ef9091ff54a8db507abe" }, { "mode": "755", @@ -2239,7 +2239,7 @@ { "mode": "755", "path": "scripts/verify-release-artifacts.sh", - "sha256": "d4c2b6105fed7b7965329918fea60758ef01b009ec6e57150efe44376f218103" + "sha256": "60b5b1eafa90d178f84111a1e7ad3a99531968a51b84e9d604c22a958ccea30b" }, { "mode": "644", @@ -2264,7 +2264,7 @@ { "mode": "755", "path": "scripts/verify-version-policy.py", - "sha256": "3a6fb1faf93cea4882ef71508a34f9c2042dff962821b28e13ea5b43a76aa778" + "sha256": "c0682f3d0e4b19d20377a888df11bfdad5937394380ce2b788b47c974f6a216d" }, { "mode": "755", @@ -2554,7 +2554,7 @@ { "mode": "644", "path": "src/Vyral.Abstractions/Vyral.Abstractions.csproj", - "sha256": "f9f7beda646381d714898cb9bc5388f05fe0e18275dba109809f509cad520373" + "sha256": "8cc6feabcab216b0626e47b80e5331b5d45d220792525d5c23932c49e6f4cd31" }, { "mode": "644", @@ -2714,7 +2714,7 @@ { "mode": "644", "path": "src/Vyral.Cli/packages.lock.json", - "sha256": "65dafecc24fc8c7ffb5989265210c35eaa4eb5a1b85ad4882ca7e04442a0b57a" + "sha256": "f90b80add36b2a6803ab812834b41bfd097a650d5ecc1e11d8b6ad1ab848bc1c" }, { "mode": "644", @@ -2764,7 +2764,7 @@ { "mode": "644", "path": "src/Vyral.Cloudflare/packages.lock.json", - "sha256": "b9b30c19c85c5b9af6a6372828c214a3fbeacd9d342aa9275f9598d74bfe5910" + "sha256": "d3ef4266bca97e74ba9972cb00f0b602fbe735dcb847b38e82faa4a481ae726d" }, { "mode": "644", @@ -3329,7 +3329,7 @@ { "mode": "644", "path": "src/Vyral.Google/packages.lock.json", - "sha256": "1b9239158dbe7ff2dc35aa5f2d3b3884d267b003853e7d3a7054c547ddca5296" + "sha256": "a8724d08d7d107324dff8ff95267c3e7ce0589985895be3287f3ccc51194d2c9" }, { "mode": "644", @@ -3349,7 +3349,7 @@ { "mode": "644", "path": "src/Vyral.HostedWorker/packages.lock.json", - "sha256": "d0c04f2baff0d8448b615e5a2f5c16bc19999e709138523a7cdb7254700f0134" + "sha256": "5de970712d4f9751d18e3f8a054b329362a1b6c8dda2032bc827dd4c06efd5a2" }, { "mode": "644", @@ -3464,7 +3464,7 @@ { "mode": "644", "path": "src/Vyral.Local/Vyral.Local.csproj", - "sha256": "8381e0f887d543463148b5502d399b9f4f67d3c4d4c3ef37a17bb254f210f35b" + "sha256": "b5a8e736e3732c90ae0d930f776c4da648056bafea9b187187fd6c22fb08cdb0" }, { "mode": "644", @@ -4044,7 +4044,7 @@ { "mode": "644", "path": "src/Vyral.Providers.Onnx/packages.lock.json", - "sha256": "e929b05bd085f19b15cb719d01512860733ffc8bfaf4cf4a5a18db8c597e314a" + "sha256": "748b17cf0a379a8f9a8fccffff1bfcff9f34726b5035cd74a8b9eb2d7b05de1a" }, { "mode": "644", @@ -4254,7 +4254,7 @@ { "mode": "644", "path": "src/Vyral.Server/packages.lock.json", - "sha256": "8e9a83ed6e9d14eb3f03dc466eebbef0867c463c5fb69c08c5f481910b04a260" + "sha256": "bad78edcf185846bd0cc275172278076bc90ced95bbb177065e8bfce84c23fa9" }, { "mode": "644", @@ -4319,7 +4319,7 @@ { "mode": "644", "path": "tests/Vyral.Tests.Aws/packages.lock.json", - "sha256": "dcb9bad152221a90dbbc4ac1b06c9b29e947dc4d51384451549f57ee167d22a6" + "sha256": "b1a825ff0cb73205e5b1e2384b36922161a5faf491d8cde027c2b585c7f0737f" }, { "mode": "644", @@ -4399,7 +4399,7 @@ { "mode": "644", "path": "tests/Vyral.Tests.Azure/packages.lock.json", - "sha256": "996fcafd9596308ff3756ada90627300703f4b67054dfe63dc6b580472eb0e36" + "sha256": "5ad1e738ae54f4a9c41c8219862289696f7c9dafbf324fffb0f3c3289590973b" }, { "mode": "644", @@ -4429,7 +4429,7 @@ { "mode": "644", "path": "tests/Vyral.Tests.Cloudflare/packages.lock.json", - "sha256": "2b613f0af07a5b2744968fb8cd198c98de1dfa28fe2ba2102a1e5c837d62708b" + "sha256": "02f5a2c4a9ee3a5a3f03b0cb745ff060725c09875596a523831c65da4cc4b7ac" }, { "mode": "644", @@ -4589,7 +4589,7 @@ { "mode": "644", "path": "tests/Vyral.Tests.Conformance/packages.lock.json", - "sha256": "cfc04e02df1ad6a2912d7500b26638b295432f9d9f054edac9f1d059fbe7a54a" + "sha256": "13a910d6371d12af1a4041708bc927d876cf127ae8648ce8ec62a40f3ef54b2a" }, { "mode": "644", @@ -4669,7 +4669,7 @@ { "mode": "644", "path": "tests/Vyral.Tests.Google/packages.lock.json", - "sha256": "db8d4fef9b392b2a941b51da6984e2e12c9e9ad7d2b1e42464a2f75bcdf015cf" + "sha256": "2d9364a2f0c8f9ad4bf2c637dcbd3197c1a04cf495ca3e99f7557258dd3a4205" }, { "mode": "644", @@ -4869,7 +4869,7 @@ { "mode": "644", "path": "tests/Vyral.Tests.Local/packages.lock.json", - "sha256": "e5ee91e72d3b77a2aeacbead62f3ca00b2e4353e34faeea79a89660a8b554f3c" + "sha256": "841c590d44cc66b27820f94f09507ae5eebabf2671f36e5e71df72a947130e25" }, { "mode": "644", @@ -4899,7 +4899,7 @@ { "mode": "644", "path": "tests/Vyral.Tests.MySql/packages.lock.json", - "sha256": "2d70be425f8a43a1268581b23e95a17fad00ebd83172d67edbde89864b348f6d" + "sha256": "ba07c7708464f1b174ac9882ccd4c6a1e310b2537b0dedd22a6ea70f8971ceb9" }, { "mode": "644", @@ -4934,7 +4934,7 @@ { "mode": "644", "path": "tests/Vyral.Tests.Pgvector/packages.lock.json", - "sha256": "74e7bb9e91f6001c221b2f3c5396585fbf202dd5223e9cb0224e5621a4faf5bb" + "sha256": "0222065da0c28527f45c0b98e7d410a45aa1c4e98e2eb5718f73c5333551fcc6" }, { "mode": "644", @@ -5034,7 +5034,7 @@ { "mode": "644", "path": "tests/Vyral.Tests.Providers/packages.lock.json", - "sha256": "82b4c0315a224a321a7debcee45157465161cf7ccfc7c2a558ed06590c406bf6" + "sha256": "36a0abbf79bc906bdc586dff9d4ce9ef825dbd2bc46b3a01a5734b0152120e54" }, { "mode": "644", @@ -5049,7 +5049,7 @@ { "mode": "644", "path": "tests/Vyral.Tests.Temporal.WorkerHost/packages.lock.json", - "sha256": "11579f6112e2fcf91fe345189e58800eab59bc0dbba88ffd52e4b32ad59bd766" + "sha256": "3f364c42efe1fc0d451939498457e9e7236159ab6375aa7f2f0ca20e7defb6fa" }, { "mode": "644", @@ -5124,7 +5124,7 @@ { "mode": "644", "path": "tests/Vyral.Tests.Temporal/packages.lock.json", - "sha256": "86d0d3855dad81e22233671748575c6d88e8c34f9c77e94795b3d4d7e8008bd0" + "sha256": "9c6cb1f1da3d9ffaf4f24a67d17f97681e65824a50f81d202352a060e49f20b1" }, { "mode": "644", @@ -5139,7 +5139,7 @@ { "mode": "644", "path": "tools/Vyral.Benchmarks/packages.lock.json", - "sha256": "7c9ed0553dacca75646869fceb49b603d0f7c74674bac97890aee84445d27e93" + "sha256": "12b0dd4b74502234da84bd86f1fe2bec60da0c1d9d8630924bb9f302e9fecd3d" }, { "mode": "644", @@ -5164,7 +5164,7 @@ { "mode": "644", "path": "tools/Vyral.CanonicalStore.Benchmarks/packages.lock.json", - "sha256": "5ed195bff50dd7520bc1e63b810f63abeb1c12eb035e965727cf0847bf855149" + "sha256": "20d6c6a132473d6d039b55e88558889dbe6c85f8a545e2fe5cf0bfa90fc68273" }, { "mode": "644", @@ -5184,7 +5184,7 @@ { "mode": "644", "path": "tools/Vyral.OnnxJudgeCalibration/packages.lock.json", - "sha256": "24bd8e724d5ce0d756fac5cda6f964c0fa0fbbcb0ee89bbb2d35b90f1e366fd8" + "sha256": "242a0970d354c9c2f04779f97ec8b43fdf7cca67a0f7d7c9892cb6a6bc2afcb0" }, { "mode": "644", @@ -5209,5 +5209,5 @@ ], "schemaVersion": 1, "sourceDirty": false, - "treeSha256": "c8ac050a3906e5d2d1a72f0e6d22b7816cae16b696bc2b89ef2de0fb092c67a6" + "treeSha256": "0568a86f64fdf56d1080be98759edf95c4a62fb73d4b8713eac6096263aa24eb" } From 074923fd334ba4fe2768f18c8f950fdc143f4332 Mon Sep 17 00:00:00 2001 From: jeremydixon22 Date: Sat, 3 Oct 2026 02:13:42 -0400 Subject: [PATCH 3/6] Qualify current-schema upgrades against the observed baseline ledger --- scripts/verify-python-runtime-upgrade.py | 51 +++++++++++++++++++++--- 1 file changed, 45 insertions(+), 6 deletions(-) diff --git a/scripts/verify-python-runtime-upgrade.py b/scripts/verify-python-runtime-upgrade.py index 0b51bab..58a790e 100644 --- a/scripts/verify-python-runtime-upgrade.py +++ b/scripts/verify-python-runtime-upgrade.py @@ -484,6 +484,33 @@ def _qualify( json.loads(state_path.read_text(encoding="utf-8")), "baseline state", ) + # Read the seeded baseline's ledger before starting the candidate. A + # published patch may already use schema 1; it must preserve that ledger + # rather than claim a migration from schema 0. + with sqlite3.connect( + (runtime_root / "vyral.sqlite").resolve().as_uri() + "?mode=ro", + uri=True, + ) as connection: + ledger_exists = connection.execute( + "SELECT 1 FROM sqlite_master WHERE type = 'table' " + "AND name = 'vyral_py_runtime_schema'" + ).fetchone() + baseline_ledger = ( + connection.execute( + "SELECT schema_version, migrated_by_runtime_version " + "FROM vyral_py_runtime_schema WHERE component = ?", + ("portable-local",), + ).fetchone() + if ledger_exists is not None + else None + ) + baseline_schema = 0 if baseline_ledger is None else baseline_ledger[0] + baseline_migrated_by = ( + None if baseline_ledger is None else baseline_ledger[1] + ) + if type(baseline_schema) is not int or baseline_schema not in (0, 1): + raise RuntimeError("The baseline storage schema is not qualified.") + expected_applied = [1] if baseline_schema == 0 else [] candidate_python = _install( candidate_wheel, work / "candidate-environment", @@ -537,13 +564,20 @@ def _qualify( ) first_schema = _schema_details(readiness) if ( - first_schema.get("fromVersion") != 0 + first_schema.get("fromVersion") != baseline_schema or first_schema.get("toVersion") != 1 - or first_schema.get("appliedVersions") != [1] - or first_schema.get("upgraded") is not True + or first_schema.get("appliedVersions") != expected_applied + or first_schema.get("upgraded") is not bool(expected_applied) + or first_schema.get("databasePreexisting") is not True + or first_schema.get("migratedByRuntimeVersion") != ( + candidate_version + if baseline_schema == 0 + else baseline_migrated_by + ) ): raise RuntimeError( - "The first candidate start did not apply schema 0 -> 1." + "The first candidate start did not preserve the expected " + f"schema decision {baseline_schema} -> 1." ) _verify_persisted_state(base_url, api_key, state) _verify_mcp(base_url, api_key) @@ -638,6 +672,7 @@ def _qualify( }, "environment": environment, "storage": { + "baselineSchemaVersion": baseline_schema, "firstStart": first_schema, "secondStart": second_schema, "integrityCheck": integrity, @@ -645,7 +680,11 @@ def _qualify( }, "checks": [ "baseline-seed", - "forward-schema-migration", + ( + "forward-schema-migration" + if baseline_schema == 0 + else "current-schema-preserved" + ), "authentication-after-upgrade", "records-after-upgrade", "canonical-after-upgrade", @@ -665,7 +704,7 @@ def _qualify( print( "python-runtime-upgrade=ok " f"baseline={baseline_version} candidate={candidate_version} " - "schema=0->1 restart=passed auth=passed mcp=passed" + f"schema={baseline_schema}->1 restart=passed auth=passed mcp=passed" ) From 1f6c5774a8c7cd4313532e7134926b2040ba7c92 Mon Sep 17 00:00:00 2001 From: jeremydixon22 Date: Sat, 3 Oct 2026 02:13:42 -0400 Subject: [PATCH 4/6] Refresh export after upgrade qualification correction --- PUBLIC-EXPORT-MANIFEST.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/PUBLIC-EXPORT-MANIFEST.json b/PUBLIC-EXPORT-MANIFEST.json index 7aff627..33849d1 100644 --- a/PUBLIC-EXPORT-MANIFEST.json +++ b/PUBLIC-EXPORT-MANIFEST.json @@ -2224,7 +2224,7 @@ { "mode": "644", "path": "scripts/verify-python-runtime-upgrade.py", - "sha256": "d94319490309a9a57a6fe62071f9fd98b650d4b7bd04a54a46730ff2c88e035c" + "sha256": "2c9c7a584391b5f1b4a16ba587c94661f11d7e88a8d949602aeac89dcbec88bd" }, { "mode": "755", @@ -5209,5 +5209,5 @@ ], "schemaVersion": 1, "sourceDirty": false, - "treeSha256": "0568a86f64fdf56d1080be98759edf95c4a62fb73d4b8713eac6096263aa24eb" + "treeSha256": "bb12a8d8268b11bcb073d8d4e6478a276d2e41aedb7f946d44d97caa0b233494" } From 393b46531b2dd8a8a6b034bc4289de63973c0903 Mon Sep 17 00:00:00 2001 From: jeremydixon22 Date: Sat, 3 Oct 2026 02:24:53 -0400 Subject: [PATCH 5/6] Defer npm delivery and preserve private upgrade diagnostics --- .github/workflows/publish-first-cohort.yml | 59 +------------------ README.md | 7 ++- docs/maintainers/releasing.md | 34 +++++------ docs/reference/stability.md | 3 +- packaging/publication-cohort.json | 25 ++------ scripts/verify-publication-cohort.py | 19 +----- scripts/verify-publication-policy.py | 7 +-- scripts/verify-python-runtime-upgrade.py | 67 ++++++++++++++++------ 8 files changed, 86 insertions(+), 135 deletions(-) diff --git a/.github/workflows/publish-first-cohort.yml b/.github/workflows/publish-first-cohort.yml index d82ab3d..53e462d 100644 --- a/.github/workflows/publish-first-cohort.yml +++ b/.github/workflows/publish-first-cohort.yml @@ -9,10 +9,6 @@ on: type: choice options: - v0.3.4 - npm_direct_token_published: - description: The exact authorized npm archive has been published with an operator-controlled token - required: true - type: boolean confirm: description: I have reviewed the release evidence, package scope, and release notes required: true @@ -43,14 +39,12 @@ jobs: id: authority env: CONFIRM: ${{ inputs.confirm }} - NPM_DIRECT_TOKEN_PUBLISHED: ${{ inputs.npm_direct_token_published }} GITHUB_TOKEN: ${{ github.token }} RELEASE_TAG: ${{ inputs.release_tag }} run: | set -euo pipefail test "$GITHUB_REF" = "refs/heads/main" test "$CONFIRM" = "true" - test "$NPM_DIRECT_TOKEN_PUBLISHED" = "true" test "$RELEASE_TAG" = "v0.3.4" git fetch --force --tags origin test "$(git cat-file -t "refs/tags/${RELEASE_TAG}")" = "tag" @@ -93,19 +87,13 @@ jobs: with: python-version: "3.12" - - name: Set up Node - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 - with: - node-version: "22.14.0" - package-manager-cache: false - - name: Build and verify only the authorized distributions run: | set -euo pipefail python -m pip install --disable-pip-version-check build==1.3.0 python3 scripts/verify-publication-cohort.py scripts/verify-dotnet-lockfiles.sh - mkdir -p artifacts/publish/nuget artifacts/publish/pypi artifacts/publish/npm + mkdir -p artifacts/publish/nuget artifacts/publish/pypi for project in \ src/Vyral.Abstractions/Vyral.Abstractions.csproj \ src/Vyral.Local/Vyral.Local.csproj; do @@ -121,15 +109,6 @@ jobs: done test -s artifacts/publish/pypi/vyral-0.1.4-py3-none-any.whl test -s artifacts/publish/pypi/vyral-0.1.4.tar.gz - npm ci --ignore-scripts --prefix clients/javascript - ( - cd clients/javascript - npm run check - npm run typecheck - npm test - npm pack --json --pack-destination ../../artifacts/publish/npm - ) - test -s artifacts/publish/npm/vyral-client-0.3.4.tgz - name: Retain immutable publication distributions uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 @@ -206,42 +185,11 @@ jobs: packages-dir: dist/pypi skip-existing: true - publish-npm: - name: Verify authorized direct-token JavaScript SDK - needs: build - runs-on: ubuntu-22.04 - environment: - name: publish-npm - url: https://www.npmjs.com/package/vyral-client - permissions: - contents: read - steps: - - name: Set up Node - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0 - with: - node-version: "22.14.0" - package-manager-cache: false - - - name: Download the authorized distribution - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 - with: - name: package-release-v0.3.4 - path: dist - - - name: Verify the exact authorized registry archive - run: | - set -euo pipefail - expected_integrity="sha512-$(openssl dgst -sha512 -binary dist/npm/vyral-client-0.3.4.tgz | base64 -w 0)" - test "$(npm view vyral-client@0.3.4 version)" = "0.3.4" - test "$(npm view vyral-client@0.3.4 repository.url)" = "git+https://github.com/univeracity/vyral.git" - test "$(npm view vyral-client@0.3.4 dist.integrity)" = "$expected_integrity" - verify: name: Verify public package availability needs: - publish-nuget - publish-pypi - - publish-npm runs-on: ubuntu-22.04 permissions: {} steps: @@ -252,9 +200,8 @@ jobs: nuget_abstractions="$(curl --fail --silent --show-error https://api.nuget.org/v3-flatcontainer/vyral.abstractions/index.json | jq -r '.versions[-1]')" || true nuget_local="$(curl --fail --silent --show-error https://api.nuget.org/v3-flatcontainer/vyral.local/index.json | jq -r '.versions[-1]')" || true pypi="$(curl --fail --silent --show-error https://pypi.org/pypi/vyral/json | jq -r '.info.version')" || true - npm_version="$(curl --fail --silent --show-error https://registry.npmjs.org/vyral-client/0.3.4 | jq -r '.version')" || true - if [[ "$nuget_abstractions" == "0.3.4" && "$nuget_local" == "0.3.4" && "$pypi" == "0.1.4" && "$npm_version" == "0.3.4" ]]; then - printf 'NuGet, PyPI and npm expose every authorized package version.\n' >> "$GITHUB_STEP_SUMMARY" + if [[ "$nuget_abstractions" == "0.3.4" && "$nuget_local" == "0.3.4" && "$pypi" == "0.1.4" ]]; then + printf 'NuGet and PyPI expose every authorized package version.\n' >> "$GITHUB_STEP_SUMMARY" exit 0 fi sleep 15 diff --git a/README.md b/README.md index 8491abc..c3f9810 100644 --- a/README.md +++ b/README.md @@ -204,9 +204,10 @@ also need TLS, rate limits, authenticated ingress, and deployment-specific identity policy. See the [CanonicalStore guide](docs/concepts/canonical-store.md) and the [deployment guide](deploy). -The general package release is `v0.3.4` (core NuGet and JavaScript SDK `0.3.4`, -prototype Python runtime `0.1.4`). It advances independently of the server container. -The lightweight Python HTTP SDK is available as a release archive, not a PyPI publication. +The general package release is `v0.3.4` (core NuGet `0.3.4`, prototype Python +runtime `0.1.4`, and HTTP SDK archives `0.3.4`). It advances independently of the server container. +The HTTP SDKs are available as release archives. JavaScript npm publication is deferred; +the lightweight Python HTTP SDK remains outside PyPI publication. The server image version described by this source is `ghcr.io/univeracity/vyral-server:0.3.6`; verify registry availability before deploying, pin its published digest, and use the same API-key diff --git a/docs/maintainers/releasing.md b/docs/maintainers/releasing.md index e97b52e..e8db3f1 100644 --- a/docs/maintainers/releasing.md +++ b/docs/maintainers/releasing.md @@ -42,15 +42,15 @@ retained as release evidence. rejects callbacks that lack the dispatch marker or an accepted callback identity. 4. Publish packages through a trusted-publishing or OIDC-backed registry configuration. Do not place registry tokens in the repository or workflow files. `vyral-client@0.3.0` historically had an - explicitly authorized, capability-scoped exception: after the release tag and canonical evidence - exist, publish the exact packed archive from the authorized commit with a locally controlled npm - token. Dispatch the protected publisher with `npm_direct_token_published: true`; it verifies the - registry version, repository URL, and SHA-512 archive integrity against its independently built - distribution. This exception does not claim npm OIDC provenance or a trusted-publisher - relationship. The operator renewed this exact-archive exception for - `vyral-client@0.3.4`; use the same local-token publication and protected integrity - verification boundary. Other npm versions require new explicit authorization or - an account configuration that permits npm trusted publishing. Do not place the token in GitHub, the repository, or a + explicitly authorized, capability-scoped exception. Its exact archive was published with a + locally controlled token after the release tag and canonical checks existed; the protected + workflow verified registry metadata and SHA-512 integrity against its independently built + distribution. That historical exception does not claim npm OIDC provenance or a trusted-publisher + relationship. The npm registry update for this release is deferred until + trusted-publisher setup is available. An updated JavaScript SDK archive can + still be attached to the GitHub release. Other direct-token npm versions require + a new explicit authorization; future trusted publishing requires the matching + registry configuration. Do not place the token in GitHub, the repository, or a workflow file. 5. Attach provenance/attestations and SBOMs to the published release; publish container images with build provenance and SBOM attestations enabled. @@ -104,8 +104,9 @@ reviewed `v0.3.4` package patch, and before packaging requires a GitHub-verified annotated tag at current `main` plus a successful canonical Release Integrity push run for that commit. Each registry job uses its own protected environment and least-privilege identity. It has no automatic trigger. The patch publishes -`Vyral.Abstractions` and `Vyral.Local` `0.3.4`, the Python runtime `0.1.4`, -and the JavaScript HTTP SDK `vyral-client@0.3.4`. Execution registry packages +`Vyral.Abstractions` and `Vyral.Local` `0.3.4` and the Python runtime `0.1.4`. +Updated HTTP SDK archives are attached to the GitHub release. The JavaScript +SDK source is `vyral-client@0.3.4`; npm registry publication is deferred. Execution registry packages remain unchanged. The lightweight Python HTTP SDK source is versioned `0.3.4` and packaged for GitHub release use; its PyPI distribution remains outside the cohort. @@ -137,12 +138,11 @@ manifest at each trusted registry: `Univeracity/vyral`, workflow file GitHub Actions OIDC trusted publishing; NuGet additionally needs the `NUGET_USERNAME` environment variable for its short-lived-key exchange. The separate container workflow uses only the repository-scoped `GITHUB_TOKEN` with -`packages: write`. npm uses the explicitly renewed operator-token exception -for `vyral-client@0.3.4`: publish only the exact authorized archive after the signed -tag and canonical checks exist, then dispatch with `npm_direct_token_published: true`. -The protected npm environment verifies its version, repository URL and SHA-512 -integrity against an independently built archive. No npm token is placed in GitHub -and no npm OIDC provenance is claimed. +`packages: write`. npm remains outside this registry patch. Before its deferred +publication, configure a trusted publisher for `vyral-client` using +`Univeracity/vyral`, workflow filename `publish-first-cohort.yml`, environment +`publish-npm`, and direct publishing permission. This tuple is a setup requirement, +not a claim that npm currently accepts this repository as a publisher. This source authorization is not a claim that any package is already available: absent registry trust or an environment approval, the manual job fails closed and publishes nothing. diff --git a/docs/reference/stability.md b/docs/reference/stability.md index ba577a9..c34bc91 100644 --- a/docs/reference/stability.md +++ b/docs/reference/stability.md @@ -50,7 +50,8 @@ qualification evidence and update all related package and descriptor versions together. The general GitHub package release is `v0.3.4`: core NuGet and HTTP SDK packages -use `0.3.4`, and the prototype Python runtime uses `0.1.4`. The server container +use `0.3.4`, and the prototype Python runtime uses `0.1.4`. The HTTP SDKs +are attached as archives; npm registry delivery is deferred. The server container remains the separately tagged `server-v0.3.6` release. Contract catalog versions remain `0.3.0` within this compatible patch; execution evidence remains on `0.2.0`. diff --git a/packaging/publication-cohort.json b/packaging/publication-cohort.json index 57c0d5d..59c9696 100644 --- a/packaging/publication-cohort.json +++ b/packaging/publication-cohort.json @@ -25,20 +25,13 @@ "source": "runtimes/python/pyproject.toml", "environment": "publish-pypi", "maturity": "prototype" - }, - { - "ecosystem": "npm", - "name": "vyral-client", - "version": "0.3.4", - "source": "clients/javascript/package.json", - "environment": "publish-npm", - "maturity": "public" } ], "unchangedArtifacts": [ "Vyral.Primitives 0.2.0", "Vyral.Execution 0.2.0", - "Vyral.Execution.Local 0.2.0" + "Vyral.Execution.Local 0.2.0", + "npm vyral-client 0.3.0" ], "excludedFromRelease": [ "cloud-provider packages", @@ -46,7 +39,8 @@ "Temporal packages", "Python HTTP client distribution (vyral-client)", "prototype integrations", - "server container" + "server container", + "npm registry distribution (vyral-client)" ], "authorization": { "mode": "manual-protected-environment", @@ -55,7 +49,7 @@ "requirements": [ "a GitHub-verified signed annotated release tag that resolves to current main", "a successful canonical Release Integrity push run for that exact commit", - "the exact NuGet and PyPI registry trusted-publisher relationships and verified direct-token npm archive", + "the exact NuGet and PyPI registry trusted-publisher relationships", "a manual dispatch from main through the named protected environments" ], "publishers": [ @@ -72,15 +66,8 @@ "workflowFile": "publish-first-cohort.yml", "environment": "publish-pypi", "authentication": "GitHub Actions OIDC trusted publishing" - }, - { - "ecosystem": "npm", - "registry": "https://registry.npmjs.org", - "workflowFile": "publish-first-cohort.yml", - "environment": "publish-npm", - "authentication": "operator-controlled npm token; exact archive verified by protected workflow" } ] }, - "authorizationBoundary": "This reviewed authorization permits only the listed package patch through the named manual workflow. It excludes unchanged execution packages, the Python HTTP client registry distribution, provider packages, and container publication. The npm 0.3.4 archive has an explicitly authorized operator-token exception; no npm token is stored in GitHub, source or workflow files, and no npm OIDC provenance is claimed." + "authorizationBoundary": "This reviewed authorization permits only the listed package patch through the named manual workflow. It excludes unchanged execution packages, npm registry publication, the Python HTTP client registry distribution, provider packages, and container publication. Updated HTTP SDK archives may be attached to the GitHub release; npm trusted-publisher setup and registry delivery are deferred." } diff --git a/scripts/verify-publication-cohort.py b/scripts/verify-publication-cohort.py index bd21cf0..ce689f8 100755 --- a/scripts/verify-publication-cohort.py +++ b/scripts/verify-publication-cohort.py @@ -36,19 +36,12 @@ "publish-pypi", "prototype", ), - ( - "npm", - "vyral-client", - "0.3.4", - "clients/javascript/package.json", - "publish-npm", - "public", - ), ) UNCHANGED = ( "Vyral.Primitives 0.2.0", "Vyral.Execution 0.2.0", "Vyral.Execution.Local 0.2.0", + "npm vyral-client 0.3.0", ) EXCLUDED = { "cloud-provider packages", @@ -57,6 +50,7 @@ "Python HTTP client distribution (vyral-client)", "prototype integrations", "server container", + "npm registry distribution (vyral-client)", } AUTHORIZATION = { "mode": "manual-protected-environment", @@ -65,7 +59,7 @@ "requirements": ( "a GitHub-verified signed annotated release tag that resolves to current main", "a successful canonical Release Integrity push run for that exact commit", - "the exact NuGet and PyPI registry trusted-publisher relationships and verified direct-token npm archive", + "the exact NuGet and PyPI registry trusted-publisher relationships", "a manual dispatch from main through the named protected environments", ), "publishers": ( @@ -83,13 +77,6 @@ "publish-pypi", "GitHub Actions OIDC trusted publishing", ), - ( - "npm", - "https://registry.npmjs.org", - "publish-first-cohort.yml", - "publish-npm", - "operator-controlled npm token; exact archive verified by protected workflow", - ), ), } diff --git a/scripts/verify-publication-policy.py b/scripts/verify-publication-policy.py index 9d6b500..2b3a4b1 100644 --- a/scripts/verify-publication-policy.py +++ b/scripts/verify-publication-policy.py @@ -136,16 +136,11 @@ def main() -> int: "release-integrity.yml/runs?head_sha=", "name: publish-nuget", "name: publish-pypi", - "name: publish-npm", "name: package-release-v0.3.4", 'SOURCE_DATE_EPOCH: "315532800"', "NuGet/login@8d196754b4036150537f80ac539e15c2f1028841", "pypa/gh-action-pypi-publish@dc37677b2e1c63e2034f94d8a5b11f265b73ba33", "skip-existing: true", - "npm_direct_token_published:", - 'test "$NPM_DIRECT_TOKEN_PUBLISHED" = "true"', - "npm view vyral-client@0.3.4 dist.integrity", - "expected_integrity", "Verify public package availability", ): if requirement not in publisher: @@ -169,7 +164,7 @@ def main() -> int: ): if PUBLISH_PATTERNS[label].search(publisher): errors.append( - f"{FIRST_COHORT_PUBLISH_WORKFLOW} may publish only the reviewed NuGet and PyPI packages and verify the authorized npm archive, not {label}" + f"{FIRST_COHORT_PUBLISH_WORKFLOW} may publish only the reviewed NuGet and PyPI packages, not {label}" ) if re.search( r"VYRAL_ENABLE_AUTOMATED_WORKFLOWS\s*[:=]\s*['\"]?true\b", diff --git a/scripts/verify-python-runtime-upgrade.py b/scripts/verify-python-runtime-upgrade.py index 58a790e..e8ca8e9 100644 --- a/scripts/verify-python-runtime-upgrade.py +++ b/scripts/verify-python-runtime-upgrade.py @@ -155,6 +155,31 @@ def _unused_port() -> int: return int(listener.getsockname()[1]) +def _serve_probe(root: Path, port: int, receipt_path: Path) -> int: + """Observe the installed CLI's runtime factory without exposing diagnostics.""" + from unittest.mock import patch + from vyral_runtime.host import cli # type: ignore[import-not-found] + + create_application = cli.create_host_application + + def observed_application(*arguments: Any, **keywords: Any) -> Any: + application = create_application(*arguments, **keywords) + with receipt_path.open("x", encoding="utf-8") as stream: + json.dump(application.runtime.storage_schema_receipt.to_dict(), stream) + receipt_path.chmod(0o600) + return application + + with patch.object(cli, "create_host_application", observed_application): + return cast( + int, + cli.main([ + "--root", str(root), "--host", "127.0.0.1", + "--port", str(port), "--log-level", "warning", + "--require-api-key", + ]), + ) + + def _request( base_url: str, method: str, @@ -271,25 +296,21 @@ def _host( runtime_root: Path, api_key: str, log_path: Path, -) -> Iterator[str]: +) -> Iterator[tuple[str, dict[str, Any]]]: port = _unused_port() base_url = f"http://127.0.0.1:{port}" + receipt_path = log_path.with_name("startup-" + token_hex(8) + ".json") environment = os.environ.copy() environment["VYRAL_API_KEY"] = api_key with log_path.open("ab") as log: process = subprocess.Popen( [ str(python), - "-m", - "vyral_runtime.host", - "--root", + str(Path(__file__).resolve()), + "_serve_probe", str(runtime_root), - "--host", - "127.0.0.1", - "--port", str(port), - "--log-level", - "warning", + str(receipt_path), ], env=environment, stdin=subprocess.DEVNULL, @@ -298,7 +319,10 @@ def _host( ) try: _wait_for_server(process, base_url, log_path) - yield base_url + yield base_url, _object( + json.loads(receipt_path.read_text(encoding="utf-8")), + "owner-local startup receipt", + ) finally: if process.poll() is None: process.terminate() @@ -309,7 +333,7 @@ def _host( process.wait(timeout=5) -def _schema_details(readiness: Mapping[str, Any]) -> dict[str, Any]: +def _verify_public_schema_readiness(readiness: Mapping[str, Any]) -> None: checks = readiness.get("checks") if not isinstance(checks, list): raise RuntimeError("Readiness did not contain checks.") @@ -320,7 +344,9 @@ def _schema_details(readiness: Mapping[str, Any]) -> dict[str, Any]: "The storage-schema readiness check failed: " + json.dumps(value, sort_keys=True) ) - return _object(value.get("details"), "storage schema details") + if value.get("details") not in (None, {}): + raise RuntimeError("Public readiness exposed local diagnostic detail.") + return raise RuntimeError("Readiness omitted the storage-schema check.") @@ -539,7 +565,7 @@ def _qualify( runtime_root, api_key, log_path, - ) as base_url: + ) as (base_url, first_schema): unauthorized, _, _ = _request( base_url, "GET", @@ -562,7 +588,7 @@ def _qualify( ), "first readiness", ) - first_schema = _schema_details(readiness) + _verify_public_schema_readiness(readiness) if ( first_schema.get("fromVersion") != baseline_schema or first_schema.get("toVersion") != 1 @@ -577,7 +603,8 @@ def _qualify( ): raise RuntimeError( "The first candidate start did not preserve the expected " - f"schema decision {baseline_schema} -> 1." + f"schema decision {baseline_schema} -> 1: " + + json.dumps(first_schema, sort_keys=True) ) _verify_persisted_state(base_url, api_key, state) _verify_mcp(base_url, api_key) @@ -605,7 +632,7 @@ def _qualify( runtime_root, api_key, log_path, - ) as base_url: + ) as (base_url, second_schema): readiness = _object( _json( base_url, @@ -615,7 +642,7 @@ def _qualify( ), "restart readiness", ) - second_schema = _schema_details(readiness) + _verify_public_schema_readiness(readiness) if ( second_schema.get("fromVersion") != 1 or second_schema.get("toVersion") != 1 @@ -672,6 +699,10 @@ def _qualify( }, "environment": environment, "storage": { + "observation": ( + "owner-local startup receipt from the installed CLI factory; " + "public readiness remains redacted" + ), "baselineSchemaVersion": baseline_schema, "firstStart": first_schema, "secondStart": second_schema, @@ -709,6 +740,8 @@ def _qualify( def main() -> int: + if len(sys.argv) == 5 and sys.argv[1] == "_serve_probe": + return _serve_probe(Path(sys.argv[2]), int(sys.argv[3]), Path(sys.argv[4])) if len(sys.argv) == 4 and sys.argv[1] == "_seed": return _seed_baseline(Path(sys.argv[2]), Path(sys.argv[3])) From 1fe41fe76ca42ed38d359db0553ebe2a3cec6c14 Mon Sep 17 00:00:00 2001 From: jeremydixon22 Date: Sat, 3 Oct 2026 02:24:53 -0400 Subject: [PATCH 6/6] Refresh public export for the final package publication scope --- PUBLIC-EXPORT-MANIFEST.json | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/PUBLIC-EXPORT-MANIFEST.json b/PUBLIC-EXPORT-MANIFEST.json index 33849d1..b931385 100644 --- a/PUBLIC-EXPORT-MANIFEST.json +++ b/PUBLIC-EXPORT-MANIFEST.json @@ -114,7 +114,7 @@ { "mode": "644", "path": ".github/workflows/publish-first-cohort.yml", - "sha256": "1af4a5096593b4bdec07f3215be7dee2fddb480df8d366a547981107b34e3547" + "sha256": "96f648f19ff95c11f5fc776bf05e85a88cf0f51b7479efa6b3790b649af7bb10" }, { "mode": "644", @@ -174,7 +174,7 @@ { "mode": "644", "path": "README.md", - "sha256": "cbbdf983fd5f07f87666871905171182b8729948a3402d8428fb58c6ecc7830a" + "sha256": "15937d55c2f41b331d646a432695a5b2e041a2edfeb5465380106775b14b7c28" }, { "mode": "644", @@ -729,7 +729,7 @@ { "mode": "644", "path": "docs/maintainers/releasing.md", - "sha256": "8e9c2faf6a73a0a0b2148de34bc1c8758d4d22db2a77ed38597a4c44fe18109d" + "sha256": "604627749a92508692752d19add022f15328b9d507bc23012e9974d0ddeb4334" }, { "mode": "644", @@ -754,7 +754,7 @@ { "mode": "644", "path": "docs/reference/stability.md", - "sha256": "6f127fb6801d2bb5f14c247b483d2977b935a463e3ae2e824350702de8ae7abf" + "sha256": "f41793ef2e8b047ebded6b1ce81b532c8cebaf8ef39ef0a6278c7420082ada2f" }, { "mode": "644", @@ -834,7 +834,7 @@ { "mode": "644", "path": "packaging/publication-cohort.json", - "sha256": "5a534cf84d9f0afdfb1461a9ee40d639821aaf2f8557b72365fa64a11a26a2ce" + "sha256": "27a8198800d2a7289d680f4e9282b66a2bdfc83293457820c8851083e9773aba" }, { "mode": "644", @@ -2164,12 +2164,12 @@ { "mode": "755", "path": "scripts/verify-publication-cohort.py", - "sha256": "c9a07e1ffba822a141ef500747827908de621906988112f18111e14cfc685c44" + "sha256": "0cbfd0f03aa4df1bc42d01b6349fb13b26a52c42d12e53d9a7e969c4628099de" }, { "mode": "644", "path": "scripts/verify-publication-policy.py", - "sha256": "45d9e837d48ee2c822d008ea93045f53bfe6f8d2c574ef9091ff54a8db507abe" + "sha256": "f4817f5e111991d21bb142d0ab6679fcd700cd8f2b09eb740197a7b5df5b4513" }, { "mode": "755", @@ -2224,7 +2224,7 @@ { "mode": "644", "path": "scripts/verify-python-runtime-upgrade.py", - "sha256": "2c9c7a584391b5f1b4a16ba587c94661f11d7e88a8d949602aeac89dcbec88bd" + "sha256": "6498a6cfbeed6db9f422557cd9e287001ed17fe60521ef0a999264691c7fd9a1" }, { "mode": "755", @@ -5209,5 +5209,5 @@ ], "schemaVersion": 1, "sourceDirty": false, - "treeSha256": "bb12a8d8268b11bcb073d8d4e6478a276d2e41aedb7f946d44d97caa0b233494" + "treeSha256": "eb4ace52b475676ddf43e8d56c8faf6ba130e64926eb4b87ad8289f95a436096" }