v0.6.0-alpha.4
Pre-release
Pre-release
·
102 commits
to main
since this release
OpenClaw Windows Hub v0.6.0-alpha.4
Downloads
- Installer (x64):
OpenClawCompanion-Setup-x64.exe- Intel/AMD 64-bit - Installer (ARM64):
OpenClawCompanion-Setup-arm64.exe- Windows on ARM (Surface, etc.) - Portable x64:
OpenClawTray-0.6.0-709-win-x64.zip - Portable ARM64:
OpenClawTray-0.6.0-709-win-arm64.zip
Features
- 🦞 System tray integration with gateway status
- 🔄 Auto-updates from GitHub Releases
- ✅ Code-signed with Azure Trusted Signing
Requirements
- Windows 10 version 1903 or later
- WebView2 Runtime
- OpenClaw gateway running locally
Quick Start
- Run the installer for your architecture (or sideload the MSIX for camera consent)
- Launch from Start Menu or system tray
- Right-click tray icon → Settings to configure
What's Changed
- eng: add --no-restore to CI build steps after dotnet restore by @AlexAlves87 in #200
- [Repo Assist] eng: enforce TreatWarningsAsErrors in test projects by @github-actions[bot] in #190
- [Repo Assist] test: add HandleRequestError coverage for auth/scope/unknown-method paths by @github-actions[bot] in #202
- [Repo Assist] perf: eliminate LINQ Skip allocations in ExecShellWrapperParser by @github-actions[bot] in #193
- [Repo Assist] improve: pool receive buffer in WebSocketClientBase via ArrayPool by @github-actions[bot] in #204
- [Repo Assist] improve: use FrozenSet for ExecEnvSanitizer blocked-names lookup by @github-actions[bot] in #194
- [Repo Assist] improve: modernize Substring→range syntax; consolidate TruncateLabel duplicate by @github-actions[bot] in #180
- [Repo Assist] perf: pre-allocate arrays from JSON array length; replace LINQ sort with Array.Sort by @github-actions[bot] in #189
- [Repo Assist] improve: modernize HandleRunAsync syntax; add exec-policy regression tests by @github-actions[bot] in #181
- improve: FrozenDictionary command dispatch map in WindowsNodeClient by @shanselman in #205
- fix: stop aggressive retry on auth failures, show setup nudge by @shanselman in #206
- feat: add camera.clip, location.get, and canvas local file serving by @shanselman in #210
- eng: handle repo-assist easy wins by @shanselman in #218
- fix: audit transitive packages and update System.Drawing.Common by @shanselman in #219
- Bump xunit.runner.visualstudio from 3.1.4 to 3.1.5 by @dependabot[bot] in #227
- chore(deps): bump github/gh-aw-actions from ba90f2186d7ad780ec640f364005fa24e797b360 to abea67e08ee83539ea33aaae67bf0cddaa0b03b5 by @dependabot[bot] in #223
- Bump Microsoft.NET.Test.Sdk from 17.14.1 to 18.4.0 by @dependabot[bot] in #226
- chore(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #220
- chore(deps): bump microsoft/setup-msbuild from 2 to 3 by @dependabot[bot] in #222
- feat: local MCP HTTP server mode for the Windows tray by @codemonkeychris in #234
- chore(deps): bump actions/checkout from 4 to 6 by @dependabot[bot] in #228
- chore(deps): bump softprops/action-gh-release from 2 to 3 by @dependabot[bot] in #229
- chore(deps): bump actions/cache from 4 to 5 by @dependabot[bot] in #230
- chore(deps): bump github/gh-aw-actions from 0.68.3 to 0.71.1 by @dependabot[bot] in #231
- chore(deps): bump actions/setup-dotnet from 4 to 5 by @dependabot[bot] in #232
- [Repo Assist] test: add CommandCenterDiagnostics and ScreenCapability coverage by @github-actions[bot] in #233
- [Repo Assist] feat: wire WebView2 bidirectional native↔SPA bridge in WebChatWindow by @github-actions[bot] in #192
- feat: native WinUI A2UI renderer + MCP/security hardening by @codemonkeychris in #239
- feat(tray): add onboarding wizard updates by @indierawk2k2 in #241
- feat: winnode CLI for invoking node commands over local MCP by @codemonkeychris in #250
- [Repo Assist] fix(security): catch all-wildcard allow patterns in exec approval policy by @github-actions[bot] in #247
- [Repo Assist] fix(security): block dangerous stem+wildcard allow patterns in execApprovals.set by @github-actions[bot] in #255
- [Repo Assist] test: add coverage for SshTunnelCommandLine, ExecApprovalV2Result, and McpToolBridge gaps by @github-actions[bot] in #245
- refactor(tray): remove two unused tray menu helpers (~240 lines) by @AlexAlves87 in #251
- [Repo Assist] perf(mcp): eliminate LINQ and ToArray() allocations in McpToolBridge by @github-actions[bot] in #243
- [Repo Assist] fix: McpHttpServer localhost prefix and Linux test compatibility by @github-actions[bot] in #238
- Add Windows node text-to-speech by @RBrid in #253
- feat(device): enhance device.status with rich system health sections … by @RBrid in #249
- feat: add structural input validation for system.run exec approvals by @AlexAlves87 in #244
- chore(deps): bump github/gh-aw-actions from 0.71.1 to 0.71.3 by @dependabot[bot] in #266
- chore(deps): bump actions/github-script from 373c709c69115d41ff229c7e5df9f8788daa9553 to 3a2844b7e9c422d3c10d287c895573f7108da1b3 by @dependabot[bot] in #267
- Companion application refactoring by @RBrid in #272
- fix: graceful chat error handling when gateway offline + tray menu bottom spacing by @ranjeshj in #273
- Remove fake/sample data from 6 UI pages by @ranjeshj in #275
- [Repo Assist] fix(canvas): skip GetFinalPathFromHandle containment check on non-Windows by @github-actions[bot] in #264
- [Repo Assist] test(tray): add WindowsFactAttribute; skip DPAPI test on non-Windows by @github-actions[bot] in #265
- [Repo Assist] test: expand TokenSanitizer coverage + refactor ExecApprovalPolicy.Save() by @github-actions[bot] in #263
- [Repo Assist] test: expand HttpUrlRiskEvaluator and BrowserProxy coverage by @github-actions[bot] in #271
- fix: restore consistent v0.68.3 SHA in repo-assist.lock.yml by @Copilot in #278
- fix: standardize titlebar treatment across all windows by @christineyan4 in #277
- Agent events UI cleanup and redesign by @christineyan4 in #284
- fix: connection stability — stop node reconnect storms, fix bootstrap token handling by @ranjeshj in #287
- [Repo Assist] refactor: extract BaseOptions constant in SshTunnelCommandLine by @github-actions[bot] in #290
- [Repo Assist] chore(deps): bump Microsoft.Windows.SDK.BuildTools to 10.0.28000.1839 (supersedes #268) by @github-actions[bot] in #282
- feat: wire WebView2 native↔SPA bridge in CanvasWindow by @AlexAlves87 in #259
- [Repo Assist] perf: vectorize ASCII control/whitespace scan in ExecEnvSanitizer.IsBlocked by @github-actions[bot] in #289
- audio: Whisper STT + Piper TTS as MCP-callable node capabilities by @RBrid in #288
- feat: video capture frontend — consent, notifications, activity stream & settings by @christineyan4 in #292
- fix: enforce min window size and pin navigation sidebar by @christineyan4 in #293
- [Repo Assist] fix(security): stop echoing ex.Message into node capability error responses by @github-actions[bot] in #291
- [Repo Assist] perf: pre-compile redaction and UI regexes (CommandCenterTextHelper, WizardPage, SchemaConfigEditor, QuickSendDialog) by @github-actions[bot] in #286
- [Repo Assist] fix(security): handle all PowerShell -EncodedCommand abbreviations and separator forms in ExecShellWrapperParser by @github-actions[bot] in #270
- Quick Send: align custom titlebar behavior and remove focus/z-order interference by @Copilot in #285
- feat: normalize, resolve, and build canonical command identity by @AlexAlves87 in #260
- feat(onboarding): WSL local gateway setup, onboarding wizard, and security hardening by @indierawk2k2 in #274
- Connection architecture refactoring: manager-owned lifecycle, setup integration, diagnostics by @ranjeshj in #304
- [Repo Assist] fix(wsl): terminate process tree on caller cancellation in WslExeCommandRunner by @github-actions[bot] in #303
- [Repo Assist] fix(security): apply TokenSanitizer to WSL diagnostic output by @github-actions[bot] in #300
- [Repo Assist] fix(security): stop leaking ex.Message in CanvasCapability and BrowserProxyCapability by @github-actions[bot] in #294
- fix: setup flow, connection page, and chat token bugs by @ranjeshj in #305
- Bump Microsoft.ML.OnnxRuntime from 1.25.1 to 1.26.0 by @dependabot[bot] in #309
- fix(onboarding): verify bootstrap message rendered before consuming one-shot gate by @indierawk2k2 in #307
- chore(repo): keep squad artifacts out of git by @indierawk2k2 in #314
- feat(cron): Redesign Cron Jobs page with card UI, inline editing, and run history by @christineyan4 in #313
- chore(deps): bump github/gh-aw-actions from 0.71.3 to 0.73.0 by @dependabot[bot] in #308
- refactor(tray): extract CommandCenterStateBuilder from App.xaml.cs by @AlexAlves87 in #297
- fix(cron): address post-merge review feedback from PR #313 by @christineyan4 in #318
- Add Test Voice Input button to Voice & Audio settings by @christineyan4 in #317
- fix(onboarding): restore post-wizard handoff and chat connection; properly bootstrap hatching prompt by @indierawk2k2 in #312
- feat(uninstall): WSL gateway uninstall — engine, CLI, Inno hook, MSIX docs, Settings UI by @indierawk2k2 in #310
- feat(connection): auto-reconnect to last successful gateway on startup by @ranjeshj in #321
- MXC AppContainer sandboxing for system.run + Sandbox settings page by @bkudiess in #319
- feat: add ExecApprovalsStore read path by @AlexAlves87 in #295
- Native WinUI chat experience by @RBrid in #315
- fix(usage): make 7/30 day toggle work + redesign with Fluent SelectorBar by @bkudiess in #322
- fix: native chat UX improvements — focus, flickering, bubbles, notifications by @ranjeshj in #326
- feat(nodes): rich node cards with rename, forget, and tray cleanup by @bkudiess in #324
- fix(onboarding): surface gateway wizard terminal-error status instead of silent complete by @indierawk2k2 in #332
- fix(setup): WSL gateway easy-button hardening + wizard navigation + error surface by @indierawk2k2 in #329
- docs(agents): note --no-restore first-run gotcha in test validation by @indierawk2k2 in #333
- Fix incomplete onboarding Finish recovery by @shanselman in #334
- UI fixes: skills redesign, workspace caching, sidebar/voice width by @christineyan4 in #335
- refactor: extract CopyDiagnostic helper for diagnostic copy methods by @AlexAlves87 in #336
- Refactor WinUI clipboard text copies by @shanselman in #339
- Merge Capabilities into Permissions; redesign Settings & Permissions with Fluent rows by @bkudiess in #373
- feat: unify Sessions and Conversations into single Sessions page by @samanthamsong in #352
- [Repo Assist] fix(wsl): add mountFsTab=false + [time] section to wsl.conf; make IsAlreadyConfigured probe section-aware by @github-actions[bot] in #301
- [Repo Assist] fix(security): stop leaking ex.Message in node client, device capability, and approval prompts by @github-actions[bot] in #306
- [Repo Assist] fix(security): remove residual ex.Message leak in canvas jsonlPath error path by @github-actions[bot] in #328
- fix(onboarding): skip wizard for paired operators and make "Keep my setup" actually dismiss by @indierawk2k2 in #340
- fix: use node.pair.approve for node command auto-approval by @ranjeshj in #382
- refactor(tray): extract TrayTooltipBuilder from App.xaml.cs by @AlexAlves87 in #376
- Bump Windows tray clients to advertise protocol v4 (unblocks fresh-install pairing) by @indierawk2k2 in #384
- Consolidate 6 gateway pages under Advanced nav group by @samanthamsong in #385
- Fix startup setup check for per-gateway node tokens by @shanselman in #375
- fix(exec-shell): add zsh/dash/ash/ksh/fish to V1 POSIX shell recognizer by @AlexAlves87 in #377
- fix(exec-approvals): reject Allow rules with absolute file paths by @AlexAlves87 in #379
- fix(node): route capture/record toasts through App.ShowToast by @AlexAlves87 in #378
- Tray menu (right-click): Fluent style tray-menu redesign by @kenehong in #383
- Visual refinement + bugs fix by @kenehong in #405
- refactor(app): extract OnUiThread helper, replace dispatcher enqueue boilerplate by @AlexAlves87 in #410
- Rebuild Nodes page as cross-platform Instances page by @bkudiess in #407
- refactor: extract OpenClaw.Connection project for independent testability by @ranjeshj in #409
- Finish V2 setup conversion by @indierawk2k2 in #411
- feat(sandbox): inline scope clarity, rename to "Node Sandbox" by @bkudiess in #415
- refactor: extract tray menu builder out of App.xaml.cs by @AlexAlves87 in #412
- Rebuild Connection page (replaces Home) by @bkudiess in #418
- Unify easy-button gateway comms through GatewayConnectionManager by @indierawk2k2 in #413
- Introduce single AppState model + service extractions by @ranjeshj in #423
- feat(wizard): three QoL polish fixes to gateway wizard by @indierawk2k2 in #422
- ConnectionPage polish + per-page "Back to Connection" link by @bkudiess in #419
- Colorful Fluent sidebar icons + Fluent Emoji lobster by @bkudiess in #425
- Diagnostics page: friendlier reorganization of the Debug surface by @bkudiess in #427
- Initialize hub title bar status on bind by @ranjeshj in #428
- Rebuild the Channels page by @bkudiess in #430
- Fix Repo Assist bundle checkout depth by @Copilot in #387
- refactor: remove AppDispatcherQueue and move AppLogger to its own file by @AlexAlves87 in #421
- Add exec approval evaluator, typed outcomes, and allowlist matcher by @AlexAlves87 in #327
- chore(deps): align CommandPalette Windows SDK BuildTools by @shanselman in #433
- Add localization audit automation by @shanselman in #436
- [Repo Assist] fix(scripts): derive TFM dynamically in validate-wsl-gateway.ps1 by @github-actions[bot] in #434
- test: ignore generated XAML in localization validation by @shanselman in #438
- Improve async loading states for list pages by @shanselman in #440
- Harden deep-link IPC handling by @shanselman in #441
- fix(v2-wizard): pre-seed gateway.reload.mode=hot to keep wizard.next alive across config writes by @indierawk2k2 in #450
- Fix tray disconnected behavior by @ranjeshj in #451
- Chat revamp: file attachments, abort, session switching, voice UI, mute sync, overlay disable by @christineyan4 in #424
- Fix zero-state chat trap + auto-approve own-node sub-pairing by @ranjeshj in #457
- Keep WSL gateway alive across tray restarts and Windows logon by @indierawk2k2 in #455
- fix(wizard): restore static 'Configuring Gateway' heading; step title back in card by @indierawk2k2 in #454
- Fix node capability binding diagnostics by @ranjeshj in #461
- fix: ID-based parallel tool call tracking with truthful Interrupted state by @ranjeshj in #466
- feat: add exec approval V2 prompt adapter interface by @AlexAlves87 in #447
- Avoid reserializing gateway event logs by @shanselman in #452
- [Repo Assist] fix(node): fire-and-forget capability dispatch to unblock WS receive loop by @github-actions[bot] in #426
- Update README screenshots by @shanselman in #470
- Dedupe chat surface selection by @shanselman in #473
- Chat UI polish: cross-client sync, auto-reload, voice/speaker toggle, scroll preservation by @christineyan4 in #469
- Debounce Hub gateway nav hiding by @shanselman in #477
- test(msix): publish update feed endpoint by @indierawk2k2 in #478
- revert(msix): remove temporary update feed endpoint by @indierawk2k2 in #486
- Add MXC preflight diagnostics by @shanselman in #480
- feat(connection): show shared token chip, auto-fill token, default URL by @ranjeshj in #485
- fix: unify capability count across all UI surfaces by @ranjeshj in #488
- fix: MCP server runtime toggle & AppCapability MCP-only separation by @ranjeshj in #483
- Add Run system tools permission toggle by @shanselman in #490
- Fix Windows node gateway metadata by @indierawk2k2 in #475
- polish(tray): tighten 'System tools' strings + add missing tray toggle by @bkudiess in #492
- feat: tool metadata cache, tool call toggle, stale-closure fix, and perf optimizations by @christineyan4 in #479
- refactor: remove dead recording handler and extract two static helpers from App.xaml.cs by @AlexAlves87 in #493
- feat: add ExecApprovalsCoordinator and ICanPresentEvaluator by @AlexAlves87 in #471
- [Repo Assist] test(tray): add unit tests for NodeCapabilityGating.GetLocalNodeCapabilities by @github-actions[bot] in #495
- Add easy setup diagnostics logging by @indierawk2k2 in #497
- feat(tray): consolidate app version + add user feedback to 'Check for Updates' feature by @RBrid in #481
- [Repo Assist] fix(uninstall): clean up empty wsl\ parent dir after VHD removal by @github-actions[bot] in #472
- Chat UI: composer polish, reducer dedup, tool-card layout fixes by @kenehong in #484
- [Repo Assist] test(shared): add DeepLinkParser unit tests by @github-actions[bot] in #456
- [Repo Assist] fix(mcp): add missing tool descriptions for location.get, device.info, device.status, browser.proxy by @github-actions[bot] in #448
- [Repo Assist] fix(chat): surface incompatible-gateway state when handshake lacks session key by @github-actions[bot] in #482
- [Localization Audit] loc: add x:Uid to hard-coded strings in ChatPage and InstancesPage by @github-actions[bot] in #442
- docs: refresh repository documentation audit by @shanselman in #499
- MXC: replace Node bridge with direct wxc-exec.exe spawn by @bkudiess in #487
- polish(tray/chat): replace reconnecting spinner with skeleton timeline + composer by @kenehong in #498
- Remove Quick Send feature entirely by @ranjeshj in #500
- fix(chat): dedupe duplicate assistant bubbles and align continuation bubbles by @kenehong in #501
- [Repo Assist] test+docs: add AppVersionInfo tests and update TEST_COVERAGE.md by @github-actions[bot] in #502
- fix(chat): ID-based grouped session dropdown + UI alignment, scroll, multi-agent nav by @christineyan4 in #503
- chore(deps): Bump github/gh-aw-actions from 0.72.1 to 0.74.4 by @dependabot[bot] in #446
- Localize hard-coded XAML strings across 17 WinUI files (#491) by @bkudiess in #504
- Tidy Agent Events page UI (Fluent / WinUI design) by @bkudiess in #511
- Organize Bindings page to match Fluent / Win11 Settings pattern by @bkudiess in #513
- Fix Diagnostics page width to match Permissions by @bkudiess in #517
- Skills page: align with Fluent / Win 11 Settings conventions by @bkudiess in #509
- Settings page: match canonical page sizing (centered Stretch+MaxWidth=900) by @bkudiess in #516
- Reorganize Config page UI to follow Fluent guidelines by @bkudiess in #510
- Organize Voice & Audio page per Fluent design guidelines by @bkudiess in #515
- Tidy Usage page and recover from disconnected gateway by @bkudiess in #508
- Sandbox page: match Permissions width and soften gateway-scope copy by @bkudiess in #518
- [Repo Assist] test(chat): add 19 tests for untested ChatTimelineReducer event paths by @github-actions[bot] in #506
- Refine companion navigation title bar by @kenehong in #520
- Clean up Cron page UI to follow Fluent guidelines by @bkudiess in #512
- Redesign Sessions page (Fluent 2 + deep-link to Chat) by @bkudiess in #514
- fix: usage cost off-by-one drop & rename Agent Events to Event Stream by @christineyan4 in #519
- Expand CI test coverage by @shanselman in #524
- Update WinNode CLI live tool discovery by @shanselman in #525
- [Repo Assist] test(shared): add 45 unit tests for MenuDisplayHelper and MenuSizingHelper by @github-actions[bot] in #522
- Redesign local gateway setup as out-of-process SetupEngine by @ranjeshj in #529
- [Repo Assist] test(shared): add 22 tests for ChannelStartResult and ConfigPatchResult computed properties by @github-actions[bot] in #528
- [Repo Assist] perf(shared): eliminate LINQ sort and repeated Contains calls in ChannelsAggregator by @github-actions[bot] in #532
- [Repo Assist] test(tray): expand ActivityStreamService coverage with 20 new tests by @github-actions[bot] in #535
- [Repo Assist] test(connection): add OperatorScopeHelper and ChatNavigationReadiness tests by @github-actions[bot] in #530
- [Repo Assist] test(connection): make node auto-approve tests deterministic by @github-actions[bot] in #540
- [Repo Assist] eng(tests): add NuGetAuditMode=all to tests/Directory.Build.props by @github-actions[bot] in #539
- Improve local test runtime gating by @ranjeshj in #542
- Revamp config page editor by @ranjeshj in #541
- test: improve test quality and coverage by @shanselman in #544
- Fix tray menu toggle flicker by @kenehong in #545
- Add markdown rendering (incl. tables) to native chat bubbles by @RBrid in #546
- Fix native chat UI bugs in tray app by @RBrid in #549
- Fix QQSHI13 issue hardening pass by @shanselman in #564
- Improve chat voice input readiness UX by @kenehong in #565
- Render thinking state inside assistant bubble by @kenehong in #561
- docs: refresh local run and script guidance by @shanselman in #568
- Fix chat tool call visibility toggle by @shanselman in #574
- Fix installer uninstall cleanup by @ranjeshj in #572
- Fix local dev setup: Node.js prereq, log link, WSL diagnostics by @kmahone in #575
- Simplify local app launch wrapper by @shanselman in #573
- Guard release executable signing by @shanselman in #579
New Contributors
- @dependabot[bot] made their first contribution in #227
- @codemonkeychris made their first contribution in #234
- @indierawk2k2 made their first contribution in #241
- @RBrid made their first contribution in #253
- @ranjeshj made their first contribution in #273
- @christineyan4 made their first contribution in #277
- @bkudiess made their first contribution in #319
- @samanthamsong made their first contribution in #352
- @kenehong made their first contribution in #383
- @kmahone made their first contribution in #575
Full Changelog: v0.5.0...v0.6.0-alpha.4