diff --git a/.github/workflows/release-preview.yml b/.github/workflows/release-preview.yml index c4fed81..f49d447 100644 --- a/.github/workflows/release-preview.yml +++ b/.github/workflows/release-preview.yml @@ -92,7 +92,7 @@ jobs: - name: Docs status drift gate shell: pwsh - run: ./scripts/docs-status-check.ps1 -ParityJsonPath parity-go-zig.json -GitHubToken "${{ github.token }}" + run: ./scripts/docs-status-check.ps1 -ParityJsonPath parity-go-zig.json -ReleaseTag "${{ inputs.version }}" -GitHubToken "${{ github.token }}" - name: Package registry preflight shell: pwsh diff --git a/README.md b/README.md index 0487c6c..206955b 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ ZAR-Zig-Agent-Runtime is the Zig runtime port of OpenClaw, with parity-first del - Original OpenClaw beta baseline (`v2026.3.13-beta.1`): `100/100` covered - Union baseline: `141/141` covered (`MISSING_IN_ZIG=0`) - Latest local validation: `zig build test --summary all` -> `380/380` passed -- Latest published edge release tag: `v0.2.0-zig-edge.29` +- Current edge release target tag: `v0.2.0-zig-edge.31` - License posture: repo-wide `GPL-2.0-only` with Linux-style SPDX headers on repo-owned source and script files - Toolchain policy: Codeberg `master` is canonical; `adybag14-cyber/zig` publishes rolling `latest-master` and immutable `upstream-` Windows releases for refresh and reproducibility. - CI policy: keep hosted build/test/parity/docs on Zig `master`, but pin the freestanding bare-metal compile/probe lane to the known-good Linux build `0.16.0-dev.2736+3b515fbed` until the upstream Linux `master` compiler crash on `zig build baremetal -Doptimize=ReleaseFast` is resolved. diff --git a/docs/index.md b/docs/index.md index 3567e59..85c973d 100644 --- a/docs/index.md +++ b/docs/index.md @@ -16,7 +16,7 @@ Full documentation for ZAR-Zig-Agent-Runtime, the Zig runtime port of OpenClaw. - Original OpenClaw beta baseline (`v2026.3.13-beta.1`): `100/100` - Union baseline: `141/141` (`MISSING_IN_ZIG=0`) - Latest local validation: `352/352` main tests + `298 passed / 1 skipped` bare-metal host tests -- Latest published edge release tag: `v0.2.0-zig-edge.29` +- Current edge release target tag: `v0.2.0-zig-edge.31` - License posture: repo-wide `GPL-2.0-only` with Linux-style SPDX headers on repo-owned source and script files - Toolchain lane: Codeberg `master` is canonical; `adybag14-cyber/zig` provides rolling `latest-master` and immutable `upstream-` Windows releases for refresh and reproducibility. - Recent FS1 progress (2026-03-06): diff --git a/docs/operations.md b/docs/operations.md index 75fe82e..6576741 100644 --- a/docs/operations.md +++ b/docs/operations.md @@ -2,7 +2,7 @@ ## Current Snapshot -- Latest published edge release: `v0.2.0-zig-edge.29` +- Current edge release target: `v0.2.0-zig-edge.31` - Latest local test gate: `zig build test --summary all` -> `361/361` passed - Latest parity gate: `scripts/check-go-method-parity.ps1` -> `GO_MISSING_IN_ZIG=0`, `ORIGINAL_MISSING_IN_ZIG=0`, `ORIGINAL_BETA_MISSING_IN_ZIG=0`, `UNION_MISSING_IN_ZIG=0`, `UNION_EVENTS_MISSING_IN_ZIG=0`, `ZIG_COUNT=175`, `ZIG_EVENTS_COUNT=19`, union baseline `141/141` - Current head: local source-of-truth on `fs55-ethernet-integration` (exact pushed head is tracked in issue `#1` and the latest branch GitHub Actions runs) diff --git a/docs/package-publishing.md b/docs/package-publishing.md index ebebef0..fb2663f 100644 --- a/docs/package-publishing.md +++ b/docs/package-publishing.md @@ -10,9 +10,9 @@ All published package surfaces now carry `GPL-2.0-only` metadata and a package-l ## Current Edge Release -- GitHub prerelease tag: `v0.2.0-zig-edge.29` -- npm package version: `0.2.0-zig-edge.29` -- Python package version: `0.2.0.dev29` +- GitHub edge release target tag: `v0.2.0-zig-edge.31` +- npm package version: `0.2.0-zig-edge.31` +- Python package version: `0.2.0.dev31` ## Install Paths @@ -21,13 +21,13 @@ All published package surfaces now carry `GPL-2.0-only` metadata and a package-l Preferred when npmjs is configured: ```bash -npm install @adybag14-cyber/openclaw-zig-rpc-client@0.2.0-zig-edge.29 +npm install @adybag14-cyber/openclaw-zig-rpc-client@0.2.0-zig-edge.31 ``` Fallback from the GitHub release tarball: ```bash -npm install "https://github.com/adybag14-cyber/ZAR-Zig-Agent-Runtime/releases/download/v0.2.0-zig-edge.29/adybag14-cyber-openclaw-zig-rpc-client-0.2.0-zig-edge.29.tgz" +npm install "https://github.com/adybag14-cyber/ZAR-Zig-Agent-Runtime/releases/download/v0.2.0-zig-edge.31/adybag14-cyber-openclaw-zig-rpc-client-0.2.0-zig-edge.31.tgz" ``` ### pip @@ -35,13 +35,13 @@ npm install "https://github.com/adybag14-cyber/ZAR-Zig-Agent-Runtime/releases/do Preferred when PyPI is configured: ```bash -pip install openclaw-zig-rpc-client==0.2.0.dev29 +pip install openclaw-zig-rpc-client==0.2.0.dev31 ``` Fallback from the GitHub release wheel: ```bash -pip install "https://github.com/adybag14-cyber/ZAR-Zig-Agent-Runtime/releases/download/v0.2.0-zig-edge.29/openclaw_zig_rpc_client-0.2.0.dev29-py3-none-any.whl" +pip install "https://github.com/adybag14-cyber/ZAR-Zig-Agent-Runtime/releases/download/v0.2.0-zig-edge.31/openclaw_zig_rpc_client-0.2.0.dev31-py3-none-any.whl" ``` ### uvx @@ -55,7 +55,7 @@ uvx --from openclaw-zig-rpc-client openclaw-zig-rpc health --base-url http://127 Git fallback verified locally against the release tag: ```bash -uvx --from "git+https://github.com/adybag14-cyber/ZAR-Zig-Agent-Runtime@v0.2.0-zig-edge.29#subdirectory=python/openclaw-zig-rpc-client" openclaw-zig-rpc health --base-url http://127.0.0.1:8080 +uvx --from "git+https://github.com/adybag14-cyber/ZAR-Zig-Agent-Runtime@v0.2.0-zig-edge.31#subdirectory=python/openclaw-zig-rpc-client" openclaw-zig-rpc health --base-url http://127.0.0.1:8080 ``` ## Registry Configuration Requirements @@ -69,12 +69,12 @@ The workflow supports two public-publish paths: If neither public path succeeds, the workflow falls back to GitHub Packages and still attaches the tarball to the GitHub release. -Current state observed during `v0.2.0-zig-edge.29`: +Current state observed during `v0.2.0-zig-edge.31`: - `npm-release` completed successfully - the tarball was attached to the GitHub prerelease - the GitHub Packages fallback path executed successfully -- public npmjs visibility for `@adybag14-cyber/openclaw-zig-rpc-client@0.2.0-zig-edge.29` still returns `404 Not Found` +- public npmjs visibility for `@adybag14-cyber/openclaw-zig-rpc-client@0.2.0-zig-edge.31` still returns `404 Not Found` That means the public npmjs side still needs one of: @@ -94,11 +94,11 @@ The workflow supports two public-publish paths: If neither public path succeeds, the workflow still attaches the wheel and sdist to the GitHub release. -Current state observed during `v0.2.0-zig-edge.29`: +Current state observed during `v0.2.0-zig-edge.31`: - `python-release` completed successfully - the wheel and sdist were attached to the GitHub prerelease -- public PyPI visibility for `openclaw-zig-rpc-client==0.2.0.dev29` still returns `404 Not Found` +- public PyPI visibility for `openclaw-zig-rpc-client==0.2.0.dev31` still returns `404 Not Found` - trusted publishing still fails with `invalid-publisher` That means PyPI does not yet have a matching trusted publisher entry for: @@ -147,11 +147,11 @@ Local/operator check: ```powershell pwsh ./scripts/package-registry-status.ps1 ` - -ReleaseTag v0.2.0-zig-edge.29 ` + -ReleaseTag v0.2.0-zig-edge.31 ` -NpmPackageName @adybag14-cyber/openclaw-zig-rpc-client ` - -NpmVersion 0.2.0-zig-edge.29 ` + -NpmVersion 0.2.0-zig-edge.31 ` -PythonPackageName openclaw-zig-rpc-client ` - -PythonVersion 0.2.0.dev29 ` + -PythonVersion 0.2.0.dev31 ` -OutputJsonPath ./release/package-registry-status.json ``` @@ -168,7 +168,7 @@ Local/operator snapshot: ```powershell pwsh ./scripts/release-status.ps1 ` - -ReleaseTag v0.2.0-zig-edge.29 ` + -ReleaseTag v0.2.0-zig-edge.31 ` -OutputJsonPath ./release/release-status.json ` -OutputMarkdownPath ./release/release-status.md ``` @@ -186,4 +186,3 @@ This emits: ## Operator Rule For edge releases, GitHub release assets are the source of truth when public registries are not yet configured. Do not block a validated edge cut on registry-side configuration drift. - diff --git a/docs/zig-port/FULL_STACK_REPLACEMENT_MATRIX.md b/docs/zig-port/FULL_STACK_REPLACEMENT_MATRIX.md index 210ca88..f6f6927 100644 --- a/docs/zig-port/FULL_STACK_REPLACEMENT_MATRIX.md +++ b/docs/zig-port/FULL_STACK_REPLACEMENT_MATRIX.md @@ -11,7 +11,7 @@ Master tracking: | Baseline | Ref Type | Value | Status | |---|---|---|---| | ZAR-Zig-Agent-Runtime | Commit | `caaedd9` | Locked | -| ZAR-Zig-Agent-Runtime | Release | `v0.2.0-zig-edge.29` | Locked | +| ZAR-Zig-Agent-Runtime | Release | `v0.2.0-zig-edge.31` | Locked | | OpenClaw Go Port | Release/Commit | `v2.14.0-go @ 3614cf457cf26220e486d7f3dc8df09353b38a32` | Locked | | OpenClaw Rust Port | Release/Commit | `v1.7.15 @ b2abb0d1fa747e371a53ea0890ffd80e4e29ea79` | Locked | | Original OpenClaw Stable | Release/Commit | `v2026.3.2 @ 85377a28175695c224f6589eb5c1460841ecd65c` | Locked | diff --git a/docs/zig-port/PHASE_CHECKLIST.md b/docs/zig-port/PHASE_CHECKLIST.md index 231f042..bdad4e0 100644 --- a/docs/zig-port/PHASE_CHECKLIST.md +++ b/docs/zig-port/PHASE_CHECKLIST.md @@ -2,7 +2,7 @@ Release lock: no release tag is allowed until all phases are complete and parity is measured at 100%. Historical note: milestone validation counts below are preserved as captured at the time of each slice; current project-wide test gate is refreshed after each strict hosted-phase signoff. -Latest edge release: `v0.2.0-zig-edge.29` is published with binaries, parity evidence, SBOM/provenance, npm tarball, wheel, and sdist attached. +Current edge release target: `v0.2.0-zig-edge.31` is validated locally from this branch for binaries, parity evidence, SBOM/provenance, npm tarball, wheel, and sdist output. Registry status: - npm public publish still requires npm-side scope/package permission or `NPM_TOKEN`; GitHub release asset + GitHub Packages fallback are available now. - PyPI public publish still requires a matching trusted publisher or `PYPI_API_TOKEN`; workflow claim shape is now confirmed as `repo:adybag14-cyber/ZAR-Zig-Agent-Runtime:environment:pypi`. diff --git a/docs/zig-port/PORT_PLAN.md b/docs/zig-port/PORT_PLAN.md index 8c686f9..43882ca 100644 --- a/docs/zig-port/PORT_PLAN.md +++ b/docs/zig-port/PORT_PLAN.md @@ -220,7 +220,7 @@ Full-stack replacement execution reference: - browser-session auth, browser completion success, and Telegram command/reply proofs are green locally - FS2 strict closure is now reached locally: provider/session auth, browser completion, direct-provider completion, Telegram reply-loop, Telegram webhook ingress, and Telegram bot-send delivery all have dedicated proofs - Release/package lane status (2026-03-06): - - GitHub prerelease `v0.2.0-zig-edge.29` is live with desktop/android/bare-metal artifacts, parity reports, manifest, SBOM, provenance, npm tarball, wheel, and sdist. + - Edge release target `v0.2.0-zig-edge.31` is the current branch validation tag for desktop/android/bare-metal artifacts, parity reports, manifest, SBOM, provenance, npm tarball, wheel, and sdist. - release evidence now also includes `release-status.json` + `release-status.md` so every edge cut carries a frozen workflow-status + registry-status snapshot in addition to package preflight evidence. - Zig toolchain evidence is now mirror-aware: - `scripts/zig-github-mirror-release-check.ps1` snapshots the `adybag14-cyber/zig` release target commitish, Windows asset URL, and SHA256 digest. @@ -234,7 +234,7 @@ Full-stack replacement execution reference: - freestanding bare-metal smoke/probe validation and `build-baremetal-asset` are pinned to the known-good Linux build `0.16.0-dev.2736+3b515fbed`. - reason: current upstream Linux `master` can segfault on `zig build baremetal -Doptimize=ReleaseFast` even though the pinned Linux `0.16.0-dev.2736+3b515fbed` bare-metal lane validates cleanly. - `uvx` fallback from the tagged Git repo was validated locally: - - `uvx --from "git+https://github.com/adybag14-cyber/ZAR-Zig-Agent-Runtime@v0.2.0-zig-edge.29#subdirectory=python/openclaw-zig-rpc-client" openclaw-zig-rpc --help` + - `uvx --from "git+https://github.com/adybag14-cyber/ZAR-Zig-Agent-Runtime@v0.2.0-zig-edge.31#subdirectory=python/openclaw-zig-rpc-client" openclaw-zig-rpc --help` - npm public publish remains externally blocked by npm scope/package permission on npmjs; the edge.29 tarball is attached to the GitHub prerelease and the GitHub Packages fallback path ran successfully. - `scripts/package-registry-status.ps1` now uses the resolved default npm/PyPI package names when called with only `-ReleaseTag`, so local release diagnostics correctly report public-registry 404 state instead of silently skipping those checks. - PyPI public publish remains externally blocked by missing trusted-publisher mapping, but the workflow now emits the confirmed OIDC claim shape for the branch release lane: diff --git a/npm/openclaw-zig-rpc-client/README.md b/npm/openclaw-zig-rpc-client/README.md index 1816296..bc5fe08 100644 --- a/npm/openclaw-zig-rpc-client/README.md +++ b/npm/openclaw-zig-rpc-client/README.md @@ -11,7 +11,7 @@ npm install @adybag14-cyber/openclaw-zig-rpc-client GitHub release tarball fallback for the current edge tag: ```bash -npm install "https://github.com/adybag14-cyber/ZAR-Zig-Agent-Runtime/releases/download/v0.2.0-zig-edge.29/adybag14-cyber-openclaw-zig-rpc-client-0.2.0-zig-edge.29.tgz" +npm install "https://github.com/adybag14-cyber/ZAR-Zig-Agent-Runtime/releases/download/v0.2.0-zig-edge.31/adybag14-cyber-openclaw-zig-rpc-client-0.2.0-zig-edge.31.tgz" ``` ## Usage diff --git a/npm/openclaw-zig-rpc-client/package.json b/npm/openclaw-zig-rpc-client/package.json index 2ad9633..34750b5 100644 --- a/npm/openclaw-zig-rpc-client/package.json +++ b/npm/openclaw-zig-rpc-client/package.json @@ -1,6 +1,6 @@ { "name": "@adybag14-cyber/openclaw-zig-rpc-client", - "version": "0.2.0-zig-edge.29", + "version": "0.2.0-zig-edge.31", "description": "Node.js RPC client for ZAR-Zig-Agent-Runtime gateway endpoints.", "main": "index.js", "types": "index.d.ts", diff --git a/python/openclaw-zig-rpc-client/README.md b/python/openclaw-zig-rpc-client/README.md index 3dd6c3f..102410d 100644 --- a/python/openclaw-zig-rpc-client/README.md +++ b/python/openclaw-zig-rpc-client/README.md @@ -11,7 +11,7 @@ pip install openclaw-zig-rpc-client Release-wheel fallback: ```bash -pip install "https://github.com/adybag14-cyber/ZAR-Zig-Agent-Runtime/releases/download/v0.2.0-zig-edge.29/openclaw_zig_rpc_client-0.2.0.dev29-py3-none-any.whl" +pip install "https://github.com/adybag14-cyber/ZAR-Zig-Agent-Runtime/releases/download/v0.2.0-zig-edge.31/openclaw_zig_rpc_client-0.2.0.dev31-py3-none-any.whl" ``` Run directly with `uvx` after publishing: @@ -23,7 +23,7 @@ uvx --from openclaw-zig-rpc-client openclaw-zig-rpc health --base-url http://127 Verified `uvx` Git fallback for the current edge tag: ```bash -uvx --from "git+https://github.com/adybag14-cyber/ZAR-Zig-Agent-Runtime@v0.2.0-zig-edge.29#subdirectory=python/openclaw-zig-rpc-client" openclaw-zig-rpc health --base-url http://127.0.0.1:8080 +uvx --from "git+https://github.com/adybag14-cyber/ZAR-Zig-Agent-Runtime@v0.2.0-zig-edge.31#subdirectory=python/openclaw-zig-rpc-client" openclaw-zig-rpc health --base-url http://127.0.0.1:8080 ``` ## Python Usage diff --git a/python/openclaw-zig-rpc-client/pyproject.toml b/python/openclaw-zig-rpc-client/pyproject.toml index 681a127..03faf13 100644 --- a/python/openclaw-zig-rpc-client/pyproject.toml +++ b/python/openclaw-zig-rpc-client/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "hatchling.build" [project] name = "openclaw-zig-rpc-client" -version = "0.2.0.dev29" +version = "0.2.0.dev31" description = "Python JSON-RPC client for ZAR-Zig-Agent-Runtime gateway endpoints." readme = "README.md" requires-python = ">=3.9" diff --git a/scripts/docs-status-check.ps1 b/scripts/docs-status-check.ps1 index 4cae2ea..d63bdd9 100644 --- a/scripts/docs-status-check.ps1 +++ b/scripts/docs-status-check.ps1 @@ -3,6 +3,7 @@ param( [string]$ParityJsonPath = ".\release\parity-go-zig.json", [switch]$RefreshParity, + [string]$ReleaseTag = "", [string]$GitHubToken = $env:GITHUB_TOKEN ) @@ -26,6 +27,28 @@ function Assert-Contains { } } +function Get-BranchReleaseTag { + param( + [string]$PackageJsonPath + ) + + if ([string]::IsNullOrWhiteSpace($PackageJsonPath) -or -not (Test-Path $PackageJsonPath)) { + return $null + } + + try { + $packageJson = Get-Content -Path $PackageJsonPath -Raw | ConvertFrom-Json + $packageVersion = [string]$packageJson.version + if (-not [string]::IsNullOrWhiteSpace($packageVersion) -and $packageVersion -match '^\d+\.\d+\.\d+-zig-edge\.\d+$') { + return ('v' + $packageVersion) + } + } catch { + Write-Warning ("Unable to infer branch release tag from {0}: {1}" -f $PackageJsonPath, $_.Exception.Message) + } + + return $null +} + $repoRoot = Resolve-Path (Join-Path $PSScriptRoot "..") Push-Location $repoRoot try { @@ -55,30 +78,35 @@ try { $originalRef = $report.baseline.original.ref $originalBetaRef = $report.baseline.originalBeta.ref - $releaseTag = $null - $releaseHeaders = @{ - "User-Agent" = "openclaw-zig-docs-status-check" - "Accept" = "application/vnd.github+json" - } - if ($GitHubToken) { - $releaseHeaders["Authorization"] = "Bearer $GitHubToken" + $releaseTag = $ReleaseTag + if ([string]::IsNullOrWhiteSpace($releaseTag)) { + $releaseTag = Get-BranchReleaseTag -PackageJsonPath "npm/openclaw-zig-rpc-client/package.json" } - try { - $releases = Invoke-RestMethod -Headers $releaseHeaders -Uri "https://api.github.com/repos/adybag14-cyber/ZAR-Zig-Agent-Runtime/releases?per_page=20" - if ($releases) { - foreach ($candidate in $releases) { - if ($candidate.draft) { - continue - } - $tag = [string]$candidate.tag_name - if (-not [string]::IsNullOrWhiteSpace($tag) -and $tag -match '^v\d+\.\d+\.\d+-zig-edge\.\d+$') { - $releaseTag = $tag - break + if ([string]::IsNullOrWhiteSpace($releaseTag)) { + $releaseHeaders = @{ + "User-Agent" = "openclaw-zig-docs-status-check" + "Accept" = "application/vnd.github+json" + } + if ($GitHubToken) { + $releaseHeaders["Authorization"] = "Bearer $GitHubToken" + } + try { + $releases = Invoke-RestMethod -Headers $releaseHeaders -Uri "https://api.github.com/repos/adybag14-cyber/ZAR-Zig-Agent-Runtime/releases?per_page=20" + if ($releases) { + foreach ($candidate in $releases) { + if ($candidate.draft) { + continue + } + $tag = [string]$candidate.tag_name + if (-not [string]::IsNullOrWhiteSpace($tag) -and $tag -match '^v\d+\.\d+\.\d+-zig-edge\.\d+$') { + $releaseTag = $tag + break + } } } + } catch { + Write-Warning "Unable to resolve latest GitHub edge release tag via GitHub API. Release-tag docs checks will be skipped." } - } catch { - Write-Warning "Unable to resolve latest GitHub edge release tag via GitHub API. Release-tag docs checks will be skipped." } $failures = @() @@ -105,9 +133,9 @@ try { Assert-Contains -Path "docs/operations.md" -Token ('ZIG_EVENTS_COUNT=' + $counts.zigEvents) -Label "docs/operations zig events token" -Failures ([ref]$failures) if ($releaseTag) { - Assert-Contains -Path "README.md" -Token ('Latest published edge release tag: `' + $releaseTag + '`') -Label "README release tag token" -Failures ([ref]$failures) - Assert-Contains -Path "docs/index.md" -Token ('Latest published edge release tag: `' + $releaseTag + '`') -Label "docs/index release tag token" -Failures ([ref]$failures) - Assert-Contains -Path "docs/operations.md" -Token ('Latest published edge release: `' + $releaseTag + '`') -Label "docs/operations release tag token" -Failures ([ref]$failures) + Assert-Contains -Path "README.md" -Token ('Current edge release target tag: `' + $releaseTag + '`') -Label "README release tag token" -Failures ([ref]$failures) + Assert-Contains -Path "docs/index.md" -Token ('Current edge release target tag: `' + $releaseTag + '`') -Label "docs/index release tag token" -Failures ([ref]$failures) + Assert-Contains -Path "docs/operations.md" -Token ('Current edge release target: `' + $releaseTag + '`') -Label "docs/operations release tag token" -Failures ([ref]$failures) } if ($failures.Count -gt 0) { diff --git a/scripts/release-preview.ps1 b/scripts/release-preview.ps1 index f97ef9f..e57de65 100644 --- a/scripts/release-preview.ps1 +++ b/scripts/release-preview.ps1 @@ -173,9 +173,9 @@ $docsStatusScript = Join-Path $repoRoot "scripts\docs-status-check.ps1" if (Test-Path $docsStatusScript) { try { if (-not [string]::IsNullOrWhiteSpace($env:GITHUB_TOKEN)) { - & $docsStatusScript -ParityJsonPath $parityJsonPath -GitHubToken $env:GITHUB_TOKEN + & $docsStatusScript -ParityJsonPath $parityJsonPath -ReleaseTag $Version -GitHubToken $env:GITHUB_TOKEN } else { - & $docsStatusScript -ParityJsonPath $parityJsonPath + & $docsStatusScript -ParityJsonPath $parityJsonPath -ReleaseTag $Version } if (-not $?) { throw "docs status drift gate failed." diff --git a/scripts/release-status.ps1 b/scripts/release-status.ps1 index e472b59..48dc3db 100644 --- a/scripts/release-status.ps1 +++ b/scripts/release-status.ps1 @@ -303,7 +303,7 @@ try { $state = Get-WorkflowConclusionSummary -Workflow $workflow $line = "- ``$($workflow.name)``: ``$state``" if ($workflow.runId) { - $line += " (`$($workflow.runId)`)" + $line += " ($($workflow.runId))" } if (-not [string]::IsNullOrWhiteSpace($workflow.displayTitle)) { $line += " - $($workflow.displayTitle)"