Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
92 commits
Select commit Hold shift + click to select a range
1e69513
Add WSL gateway dependency-recovery to setup wizard
bkudiess Jun 24, 2026
e7ef271
Fix MXC binary restore and settings hotkey
bkudiess Jun 24, 2026
9f4d238
Port mismerged MXC and pairing approval work to main
bkudiess Jun 25, 2026
4e7982b
Add inline exec approval flow
RBrid Jun 25, 2026
992da74
Fix install wizard -- WhatsApp channel QR code rendering (#767)
christineyan4 Jun 25, 2026
c5aa130
Support multiple chat attachments (#783)
TurboTheTurtle Jun 25, 2026
1cc37fe
refactor: extract TrayIconCoordinator from App.xaml.cs (#818)
AlexAlves87 Jun 25, 2026
7a7f39d
Fix Windows build detection without OS env var (#822)
TheAngryPit Jun 25, 2026
c939e39
Add gateway protocol drift guard
bkudiess Jun 25, 2026
638386e
Improve Cron run history UX
RBrid Jun 25, 2026
ce3294d
Validate MXC SDK 0.7.0 on Windows build 26200.8728 (#786)
TheAngryPit Jun 25, 2026
1a07759
Use app notifications for background issues (#753)
RBrid Jun 25, 2026
ee8fc93
Make A2UI dataModelUpdate.valueArray first-class (#805)
bkudiess Jun 25, 2026
c338d41
Fix canvas navigation URL handling (#711)
liorb-mountapps Jun 26, 2026
ff5cafb
Add resilient TTS fallback and readiness status (#806)
bkudiess Jun 26, 2026
9447c0f
Harden screen snapshot format handling (#823)
bkudiess Jun 26, 2026
84d2e6a
Make setup wizard resilient to richer gateway protocol steps (#824)
bkudiess Jun 26, 2026
5602c96
Fix tray popup height measurement (#826)
RBrid Jun 26, 2026
cd02def
Fix unavailable sandbox toggle state (#825)
shanselman Jun 26, 2026
6c56a83
Add assistant listen controls to Voice & Audio
gohilripauv Jun 26, 2026
e70868d
Add Gateway system.run MXC runtime E2E proof (#787)
TheAngryPit Jun 26, 2026
1c377cb
Gate MXC E2E on GitHub Actions (#830)
shanselman Jun 26, 2026
37bdd38
Add formal MXC E2E validation path (#866)
shanselman Jun 26, 2026
f51a861
Improve remote gateway setup and connection error recovery (#828)
bkudiess Jun 26, 2026
9ac8cfb
Surface accurate node mode and MCP-only states (#827)
bkudiess Jun 26, 2026
977648c
Dedupe connection error bars into a single thin top banner (#865)
bkudiess Jun 26, 2026
acfbf62
Add tray live dashboard glance (#829)
bkudiess Jun 26, 2026
dd1c791
Redesign Hub title bar notifications and status (#870)
bkudiess Jun 27, 2026
8b5ea32
Mirror tray notifications in app (#869)
RBrid Jun 27, 2026
8c9acbc
feat: add sanitized diagnostics log bundle
christineyan4 Jun 27, 2026
7257d29
docs: polish Windows-node proof validation guidance
bkudiess Jun 27, 2026
556e7da
feat: add Workspace session file rail
bkudiess Jun 27, 2026
d6b1a72
Add provider-aware chat model picker
bkudiess Jun 27, 2026
989f9ff
Add safe session actions and checkpoint controls
bkudiess Jun 27, 2026
1fb28ee
Reorganize Settings info and diagnostics
bkudiess Jun 27, 2026
06b63ac
Add App refactor guardrails and setup validation
shanselman Jun 27, 2026
d08a3e7
chore(setup): bump gateway LKG to 2026.6.10
github-actions[bot] Jun 27, 2026
87dc3dc
Fix user chat bubble text rendering
shanselman Jun 28, 2026
7463a34
Fix atomic device-key token clearing (#889)
christineyan4 Jun 29, 2026
a3c5e0b
Chat: inline /-triggered gateway command catalog menu (Mac parity) (#…
bkudiess Jun 29, 2026
b4a8d49
Improve Node capability summary UX (#891)
bkudiess Jun 30, 2026
84fcf8a
Fix setup-connect E2E pending approval leak (#892)
shanselman Jun 30, 2026
ad943b9
Fix setup triage quick wins (#879)
shanselman Jun 30, 2026
65b88d8
Suppress assistant NO_REPLY chat directives (#884)
TurboTheTurtle Jun 30, 2026
5940cb1
Bump Microsoft.Windows.SDK.BuildTools from 10.0.28000.1839 to 10.0.28…
dependabot[bot] Jun 30, 2026
31d8e4d
Bump actions/cache from 5 to 6 (#886)
dependabot[bot] Jun 30, 2026
a13d683
Bump github/gh-aw-actions/setup-cli from 0.80.8 to 0.81.6 (#885)
dependabot[bot] Jun 30, 2026
0b8ba41
Chat: surface the full / command catalog, grouped by Mac buckets with…
bkudiess Jun 30, 2026
1823f19
Preflight GitVersion repository history before build (#896)
Copilot Jun 30, 2026
4166e0f
Keep Tray UI test window live off-screen (#897)
shanselman Jun 30, 2026
14022dc
Add MCP chat automation commands (#912)
shanselman Jul 1, 2026
8b857ec
Refresh app and developer documentation (#915)
shanselman Jul 1, 2026
f1f5cd0
Document operator and node concepts (#916)
TurboTheTurtle Jul 2, 2026
54e4b86
Verify architecture RID fix on ARM64 (#913)
karkarl Jul 2, 2026
bbd18d4
Fix reset session dialog localization (#919)
calebeden Jul 2, 2026
f89a88a
Fix chat timeline render identity reuse (#917)
calebeden Jul 2, 2026
74604ae
Fix connection snapshot truth (#918)
bkudiess Jul 2, 2026
adcb4c3
feat: add Windows gateway onboarding wizard (#925)
steipete Jul 5, 2026
b37b1be
fix: hide completed sessions by default (#924)
TurboTheTurtle Jul 5, 2026
919a8ce
fix(setup): sync Windows CA certificates to WSL (#819)
jkf87 Jul 5, 2026
ccb680a
chore(setup): bump gateway LKG to 2026.6.11 (#902)
github-actions[bot] Jul 5, 2026
6045c2d
fix: resolve WCAG accessibility violations across all app pages (#921)
karkarl Jul 6, 2026
e0a2301
test: enforce real-process Windows accessibility scans (#923)
karkarl Jul 6, 2026
dae64b6
feat: support side-by-side dev and release installs (#922)
karkarl Jul 6, 2026
fcc7477
perf: virtualize chat timeline rows (#898)
TurboTheTurtle Jul 6, 2026
43d40ed
fix: preserve full chat text for Tray TTS (#900)
ArtLupo Jul 6, 2026
c9b5476
feat: add queued chat message UI (#920)
calebeden Jul 6, 2026
698efcc
feat(setup): integrate Windows node context after onboarding (#659)
paulcam206 Jul 6, 2026
817c5d4
build(deps): bump github/gh-aw-actions/setup-cli to 0.82.2 (#926)
dependabot[bot] Jul 6, 2026
693062d
build(deps): bump GitVersion.MsBuild to 6.8.1 (#927)
dependabot[bot] Jul 6, 2026
2c72025
build(deps): bump gitversion.tool to 6.8.1 (#928)
dependabot[bot] Jul 6, 2026
38fd2cf
fix: keep winget output out of Inno path (#929)
steipete Jul 6, 2026
7ad7fca
fix(setup): extend timeouts for slow wizard steps (#930)
steipete Jul 6, 2026
856c620
Back out WSL CA sync setup step
shanselman Jul 6, 2026
af9edc7
Make dev app identity opt-in
shanselman Jul 6, 2026
b3a2b4e
Stabilize dev identity paths
shanselman Jul 7, 2026
cb84026
Add DevBuild identity CI marker check (#936)
shanselman Jul 7, 2026
6a7651e
Update repository docs from audit plan
shanselman Jul 7, 2026
2c6873e
Fix run-app-local build argument forwarding
shanselman Jul 7, 2026
74fd2c1
Fix runtime localization of XAML property keys (#941)
bkudiess Jul 7, 2026
8763472
Refine gateway setup wizard UX and fix accessibility gaps (#940)
karkarl Jul 7, 2026
cc2834c
Remove Notifications from sidebar (#943)
bkudiess Jul 8, 2026
0d11a8a
Add OpenClaw red-bot brand mark (#942)
bkudiess Jul 8, 2026
02f2421
Fix queued chat message parity (#935)
calebeden Jul 8, 2026
158d2e1
Virtualize chat timeline
bkudiess Jul 8, 2026
9215be4
Organize chat rendering helpers
bkudiess Jul 8, 2026
375c95a
Harden virtualized chat scrolling
bkudiess Jul 8, 2026
3f784aa
Rename chat UI internals
bkudiess Jul 8, 2026
2d0cd57
Fix virtualized chat scroll anchoring
bkudiess Jul 9, 2026
2453317
Remove unrelated workspace page change
bkudiess Jul 9, 2026
022dd93
Stabilize virtualized chat scroll behavior
bkudiess Jul 9, 2026
a5f40be
Restore Allow always permission rendering
bkudiess Jul 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
80 changes: 80 additions & 0 deletions .agents/skills/openclaw-proof-validation/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
---
name: openclaw-proof-validation
description: "Plan and collect OpenClaw Windows validation/proof: tests, rubber-duck review, UI evidence, MCP output, and gateway runtime proof."
---

# OpenClaw Proof and Validation

Use for changes that affect tray UX, Settings, onboarding, chat/canvas, Command Center, Windows node capabilities, local MCP, gateway connection/pairing, permissions, diagnostics, or agent-facing instructions.

## Rules

- Required automated/focused tests are mandatory. Do not ask to skip them.
- Prefer isolated tray data so proof does not mutate `%APPDATA%\OpenClawTray`.
- Computer-use is usually a batched closeout proof pass, not a continuous dev-loop tool. Mid-development use is fine when explicitly requested or needed to unblock work; ask first whether to run it or provide manual screenshot/output steps.
- Local MCP is part of every Windows node command contract: command discovery and invocation must work through `winnode` or raw MCP JSON-RPC.
- Rubber-duck review is required before PR publication for non-trivial UI/MCP/node-command/setup/pairing/security/permissions/diagnostics work; it is also useful mid-development when extra design/testing validation is requested.
- Report blockers explicitly. Do not turn missing UI, MCP, gateway, camera, screen, or permission proof into success-shaped wording.

## Required validation

```powershell
$env:OPENCLAW_REPO_ROOT = (Get-Location).Path
.\build.ps1
dotnet test .\tests\OpenClaw.Shared.Tests\OpenClaw.Shared.Tests.csproj --no-restore
dotnet test .\tests\OpenClaw.Tray.Tests\OpenClaw.Tray.Tests.csproj --no-restore
```

Fresh worktrees may need a first run without `--no-restore`, or a project build first, so tests do not no-op before `bin\` exists.

For `winnode`, command descriptions, or new/renamed node commands, also run:

```powershell
dotnet test .\tests\OpenClaw.WinNode.Cli.Tests\OpenClaw.WinNode.Cli.Tests.csproj --no-restore
```

## Proof checklist

| Surface | Proof to collect |
|---|---|
| UI / WinUI | Launch `.\run-app-local.ps1 -Isolated`, exercise the changed path with computer-use or developer-provided screenshots/output, and include visible evidence or blocker. If the developer captures manually, provide exact steps and confirm screenshot/artifact links resolve after updating the PR body. |
| Local MCP | Enable **Local MCP Server**, run `winnode --list-tools`, then invoke the changed command with `winnode --command <name> --params '<json-object>'`. |
| Raw MCP HTTP | For protocol/server-shape changes, paste JSON-RPC `tools/list` and `tools/call` responses from `http://127.0.0.1:8765/`. |
| Gateway path | When relevant and available, prove `openclaw nodes invoke --command <name> --params '<json-object>'`; otherwise state the gateway blocker. |
| Rubber-duck | Ask a rubber-duck reviewer to inspect the final implementation/proof plan; verify any finding before changing code. |

For isolated tray runs, copy the data directory printed by `run-app-local.ps1 -Isolated` and set it before MCP proof commands:

```powershell
$env:OPENCLAW_TRAY_DATA_DIR = '<isolated-data-dir-from-run-app-local>'
```

Raw token lookup:

```powershell
$tokenPath = if ($env:OPENCLAW_TRAY_DATA_DIR) {
Join-Path $env:OPENCLAW_TRAY_DATA_DIR 'mcp-token.txt'
} else {
Join-Path $env:APPDATA 'OpenClawTray\mcp-token.txt'
}
$token = Get-Content $tokenPath -Raw
```

## New Windows node command checklist

1. Register the command in the same `INodeCapability` path used by the gateway node.
2. Add/update `McpToolBridge.CommandDescriptions`.
3. Update `src/OpenClaw.WinNode.Cli/skill.md` with input shape, output shape, side effects, permissions, and examples.
4. Add/update capability, MCP bridge, `winnode`, and UI/gateway tests as applicable.
5. Prove discovery and invocation with `winnode` or raw MCP JSON-RPC.
6. Prove the gateway path when the behavior is gateway-mediated and a gateway is available.

## PR proof package

Before publishing or updating a PR, collect:

1. `## Validation` with exact commands and pass/fail counts.
2. `## Real behavior proof` with current-head after-change evidence that directly shows the changed behavior: copied live output, screenshot/video, developer-provided screenshot, copied UI diagnostics, `winnode`, raw MCP JSON-RPC, gateway invoke output, redacted runtime log, or linked artifact. For UI changes, prefer screenshots/video of the active changed state, not only adjacent or empty UI.
3. PR body proof must stay in sync with current behavior: remove stale screenshots/claims after design changes and verify embedded image/artifact links resolve.
4. Rubber-duck notes for non-trivial UI/MCP-sensitive work, or why skipped.
5. `Not verified / blocked` notes for focused proof or unavailable dependencies.
2 changes: 1 addition & 1 deletion .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
"isRoot": true,
"tools": {
"gitversion.tool": {
"version": "6.7.0",
"version": "6.8.1",
"commands": [
"dotnet-gitversion"
],
Expand Down
89 changes: 89 additions & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
## Summary

<!-- Describe the problem and fix in 2-5 bullets. -->

- Problem:
- Why it matters:
- What changed:
- User impact:
- What did NOT change (scope boundary):

## Change Type (select all)

<!-- Select all that apply. -->

- [ ] Bug fix
- [ ] Feature
- [ ] Refactor
- [ ] Docs / instructions
- [ ] Tests / validation
- [ ] Security hardening
- [ ] Chore / infra

## Scope (select all touched areas)

- [ ] Tray / WinUI UX
- [ ] Windows node capability
- [ ] Local MCP / `winnode`
- [ ] Gateway / connection / pairing
- [ ] Setup / onboarding
- [ ] Permissions / privacy / security
- [ ] Tests / CI / docs

## Linked Issue/PR

- Closes #
- Related #
- [ ] Related to a bug or regression

## Validation

<!-- Include exact commands and pass/fail counts. Baseline after code changes:
- .\build.ps1
- dotnet test .\tests\OpenClaw.Shared.Tests\OpenClaw.Shared.Tests.csproj --no-restore
- dotnet test .\tests\OpenClaw.Tray.Tests\OpenClaw.Tray.Tests.csproj --no-restore
Add focused tests when relevant, for example WinNode CLI tests for command/MCP docs changes.
In fresh worktrees, make sure tests actually ran and report non-zero test counts.
-->

## Real behavior proof

<!-- Paste at least one current-head after-change proof item that directly demonstrates the changed behavior.
Use whatever proof best matches the change: copied live output, screenshot/video,
developer-provided screenshot, copied UI diagnostics, winnode output, raw MCP
JSON-RPC tools/list + tools/call, gateway invoke output, redacted runtime log,
or linked artifact. For UI changes, prefer screenshots/video of the active
changed state, not only adjacent or empty UI. -->

- Environment tested:
- PR head / commit tested:
- Exact steps or command run:
- Evidence after fix:
- Observed result:
- Screenshot/artifact links verified? (`Yes/No/N/A`)
- Not verified / blocked:

<!-- Optional: add rubber-duck review notes in addition to runtime proof above. -->

## Security Impact (required)

- New permissions/capabilities? (`Yes/No`)
- Secrets/tokens handling changed? (`Yes/No`)
- New/changed network calls? (`Yes/No`)
- Command/tool execution surface changed? (`Yes/No`)
- Data access scope changed? (`Yes/No`)
- If any `Yes`, explain risk + mitigation:

## Compatibility / Migration

- Backward compatible? (`Yes/No`)
- Config/env changes? (`Yes/No`)
- Migration needed? (`Yes/No`)
- If yes, exact upgrade steps:

## Review Conversations

- [ ] I replied to or resolved every bot review conversation I addressed in this PR.
- [ ] I left unresolved only conversations that still need reviewer or maintainer judgment.

If a bot review conversation is addressed by this PR, resolve that conversation yourself. Do not leave bot review conversation cleanup for maintainers.
95 changes: 88 additions & 7 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ jobs:

- name: Cache NuGet packages
continue-on-error: true
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: ~/.nuget/packages
key: nuget-${{ runner.os }}-${{ hashFiles('**/*.csproj', '**/Directory.Packages.props') }}
Expand Down Expand Up @@ -275,7 +275,55 @@ jobs:
-r win-x64
--verbosity normal
--results-directory TestResults\TrayUI
--logger trx;LogFileName=OpenClaw.Tray.UITests.trx"
--logger trx;LogFileName=OpenClaw.Tray.UITests.trx
--filter Category!=Accessibility"

# Accessibility Insights CI pass: scans each page in the real app process.
- name: Run Accessibility Tests (Axe.Windows)
id: a11y
run: >
dotnet test tests/OpenClaw.Tray.UITests
--no-build
-c Debug
-r win-x64
--verbosity normal
--results-directory TestResults\Accessibility
--logger "trx;LogFileName=Accessibility.trx"
--filter Category=Accessibility

- name: Accessibility test summary
if: always() && steps.a11y.outcome != 'skipped'
shell: pwsh
run: |
if ("${{ steps.a11y.outcome }}" -eq "failure") {
"### :x: Accessibility violations detected" >> $env:GITHUB_STEP_SUMMARY
"" >> $env:GITHUB_STEP_SUMMARY
"Axe.Windows scans found WCAG violations in one or more pages." >> $env:GITHUB_STEP_SUMMARY
"See the `Accessibility.trx` artifact for details." >> $env:GITHUB_STEP_SUMMARY
} else {
"### :white_check_mark: Accessibility scans passed" >> $env:GITHUB_STEP_SUMMARY
"" >> $env:GITHUB_STEP_SUMMARY
"All pages passed Axe.Windows accessibility validation." >> $env:GITHUB_STEP_SUMMARY
}

- name: Verify DevBuild identity marker
shell: pwsh
run: |
dotnet build src/OpenClaw.Tray.WinUI -c Debug -r win-x64 -p:DevBuild=true --no-restore
$marker = Get-ChildItem -Path src\OpenClaw.Tray.WinUI\bin\Debug -Recurse -Filter app-identity.txt |
Where-Object { $_.FullName -like '*\win-x64\app-identity.txt' } |
Sort-Object LastWriteTimeUtc -Descending |
Select-Object -First 1
if ($null -eq $marker) {
throw "Dev identity marker was not produced by the DevBuild."
}

$identity = (Get-Content -LiteralPath $marker.FullName -Raw).Trim()
if ($identity -ne "dev") {
throw "Expected DevBuild identity marker 'dev' but found '$identity' at $($marker.FullName)."
}

Write-Host "DevBuild identity marker verified at $($marker.FullName): $identity"

- name: Upload Test Results
if: always()
Expand All @@ -293,16 +341,19 @@ jobs:
needs: repo-hygiene
if: ${{ !cancelled() }}
runs-on: windows-latest
timeout-minutes: 25
timeout-minutes: ${{ matrix.timeout_minutes }}
strategy:
fail-fast: false
matrix:
include:
- name: setup-connect
filter: FullyQualifiedName~OpenClaw.E2ETests.Setup.SetupAndConnectTests
timeout_minutes: 45
filter: "FullyQualifiedName~OpenClaw.E2ETests.Setup.SetupAndConnectTests|FullyQualifiedName~OpenClaw.E2ETests.Setup.MxcSetupAndConnectTests"
- name: revocation-recovery
timeout_minutes: 25
filter: FullyQualifiedName~OpenClaw.E2ETests.Setup.RevocationAndRecoveryTests
- name: network-recovery
timeout_minutes: 25
filter: FullyQualifiedName~OpenClaw.E2ETests.Setup.NetworkRecoveryTests
steps:
- name: Fail if repo hygiene failed
Expand All @@ -323,7 +374,7 @@ jobs:

- name: Cache NuGet packages
continue-on-error: true
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: ~/.nuget/packages
key: nuget-${{ runner.os }}-${{ hashFiles('**/*.csproj', '**/Directory.Packages.props') }}
Expand Down Expand Up @@ -366,6 +417,36 @@ jobs:
Write-Error "E2E shard '${{ matrix.name }}' executed zero tests. Check OPENCLAW_RUN_E2E gating/filter before merging."
exit 1
}
if ("${{ matrix.name }}" -eq "setup-connect") {
$mxcProofNames = @(
"RealGateway_SystemRun_ExecutesThroughWindowsNodeMxcSandbox",
"RealGateway_SystemRun_BlocksWritesToTrayDataDirectoryInMxcSandbox"
)

foreach ($mxcProofName in $mxcProofNames) {
$mxcProof = @($trx.TestRun.Results.UnitTestResult | Where-Object { $_.testName -like "*$mxcProofName*" }) | Select-Object -First 1
if ($null -eq $mxcProof) {
Write-Error "E2E shard '${{ matrix.name }}' did not report the MXC proof test '$mxcProofName'. Check the setup-connect filter before merging."
exit 1
}

$mxcOutcome = [string]$mxcProof.outcome
if ($mxcOutcome -eq "Passed") {
Write-Host "MXC E2E proof passed: $mxcProofName"
} elseif ($mxcOutcome -eq "NotExecuted" -or $mxcOutcome -eq "Skipped") {
$mxcSkipReason = @($mxcProof.Output.ErrorInfo.Message, $mxcProof.Output.StdOut) |
Where-Object { -not [string]::IsNullOrWhiteSpace($_) } |
Select-Object -First 1
if ([string]::IsNullOrWhiteSpace($mxcSkipReason)) {
$mxcSkipReason = "skip reason was not present in the trx output"
}
Write-Warning "MXC E2E proof skipped: $mxcProofName; $mxcSkipReason"
} else {
Write-Error "MXC E2E proof '$mxcProofName' had unexpected outcome '$mxcOutcome'."
exit 1
}
}
}

- name: Upload E2E Test Results & Logs
if: always()
Expand Down Expand Up @@ -395,7 +476,7 @@ jobs:

- name: Cache NuGet packages
continue-on-error: true
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: ~/.nuget/packages
key: nuget-${{ runner.os }}-${{ hashFiles('**/*.csproj', '**/Directory.Packages.props') }}
Expand Down Expand Up @@ -479,7 +560,7 @@ jobs:

- name: Cache NuGet packages
continue-on-error: true
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: ~/.nuget/packages
key: nuget-${{ runner.os }}-${{ hashFiles('**/*.csproj', '**/Directory.Packages.props') }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,6 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v7
- name: Install gh-aw extension
uses: github/gh-aw-actions/setup-cli@bee9622162d2319e68ef2594442f58c815f28d7f # v0.80.8
uses: github/gh-aw-actions/setup-cli@3fac1cfa7a5a375a6a5eb9839178f6dad7adb60a # v0.82.2
with:
version: v0.72.1
Loading
Loading