Enable XPlat Code Coverage and TRX logs for both test projects in the CI test job, and upload the combined TestResults artifact on every run.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Reuses same cache key as test job. Saves redundant NuGet downloads on build runners.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The Azure Trusted Signing dlib (x64) fails with exit code 3 when
running under emulation on the ARM64 runner (windows-11-arm).
Fix: Skip signing in the build/build-msix jobs for ARM64 targets.
Instead, sign ARM64 executables and MSIX packages in the release job,
which runs on windows-latest (x64) where the signing dlib works.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The 93-test Tray test suite (added in PR #45) was never wired into CI. Adds build + run steps for OpenClaw.Tray.Tests so all 571 tests validate on every push/PR.
Closes#58
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
WinUI tray has full feature parity plus Node Mode, Activity Stream,
session management, cost tracking, localization, and modern XAML UI.
- Remove src/OpenClaw.Tray/ (28 files, ~4900 lines)
- Remove from solution file
- Remove WinForms build step from CI
Installer already only references WinUI. Settings.json format is
unchanged — no migration needed.
Closes#44
The build-msix (win-arm64) job was failing with MSB3030 because
the x64 GitHub Actions runner doesn't have the ARM64 apphost.exe
for cross-compilation.
Switch both build and build-msix jobs to use the free
windows-11-arm runner for ARM64 matrix entries, building natively
instead of cross-compiling.
- Update Package.appxmanifest Publisher to match Azure Trusted Signing cert subject
- Make build-msix continue-on-error so release isn't blocked by MSIX failures
- Add fail-fast: false to build-msix matrix
- Make MSIX artifact downloads in release job continue-on-error
Add MSIX packaging support alongside existing Inno Setup/ZIP distribution.
The build now supports both packaged (MSIX) and unpackaged (EXE) modes
via the PackageMsix MSBuild property.
MSIX packaging enables:
- Native Windows camera/microphone consent prompts
- Package identity for OS integration
- Protocol activation for openclaw:// deep links via manifest
Changes:
- csproj: Conditional WindowsPackageType (None vs MSIX) toggled by
-p:PackageMsix=true. Self-contained in both modes. ApplicationVersion
synced from Version property for MSIX.
- Package.appxmanifest: Declares webcam, microphone, internetClient
capabilities. Protocol handler for openclaw://. Visual assets.
- PackageHelper.cs: Runtime detection of packaged vs unpackaged mode
via Windows.ApplicationModel.Package.Current
- App.xaml.cs: Protocol activation handling via AppInstance lifecycle API
for MSIX deep links. Works alongside existing command-line deep links.
- DeepLinkHandler.cs: Skip registry URI registration when packaged
(manifest handles it)
- ci.yml: New build-msix job (x64 + ARM64) parallel to existing build.
MSIX signing via Azure Trusted Signing. MSIX artifacts in releases.
Null-check on MSIX find step.
- Visual assets: Generated PNG logos for MSIX package tiles
- README: Added MSIX build instructions
Build modes:
dotnet build -r win-arm64 # Unpackaged (default)
dotnet build -r win-arm64 -p:PackageMsix=true # MSIX package
Note: MSIX Publisher in Package.appxmanifest must match the Azure
Trusted Signing certificate subject exactly. Currently set to
'CN=Scott Hanselman' - update if cert subject differs.
The WinUI project has WindowsAppSDKSelfContained=true which requires
a runtime identifier to be specified during build. Updated the test job
to include -r win-x64 flag, matching the approach used in the build job.
Co-authored-by: shanselman <2892+shanselman@users.noreply.github.com>
- Updated GitHub Actions workflow with new project paths
- Updated Tray README.md and DEVELOPMENT.md
- Updated TEST_COVERAGE.md
- All references to Moltbot now changed to OpenClaw
- Tests still passing (88/88 ✅)
Co-authored-by: shanselman <2892+shanselman@users.noreply.github.com>
- Renamed all project directories and files
- Updated all namespaces and class names
- Updated deep link scheme from moltbot:// to openclaw://
- Updated AppData directories to OpenClawTray
- Updated README with OpenClaw references and added history note
- Updated all configuration and build files
- Kept mascot name "Molty" unchanged
Co-authored-by: shanselman <2892+shanselman@users.noreply.github.com>
- Build Moltbot.Tray.WinUI instead of WinForms
- Update installer to include all WinUI dependencies (not single-file)
- Test job builds both WinForms and WinUI to verify
- Use WinUI icon path for installer
- Each installer includes matching architecture tray app + Command Palette extension
- installer.iss accepts /DMyAppArch and /Dpublish parameters
- Release now includes both MoltbotTray-Setup-x64.exe and MoltbotTray-Setup-arm64.exe
- Fix exe name mismatch: Moltbot.exe -> Moltbot.CommandPalette.exe in manifest
- Add AppListEntry=none to hide from Start Menu (only show in Command Palette)
- Use OpenUrlCommand from toolkit instead of custom DeepLinkCommand
- Add cmdpal-dev.ps1 script for local iteration (auto-detects arm64/x64)
- Update installer to optionally install Command Palette extension
- Add molty2.png to README
- Update CI to bundle Command Palette in installer
- Upgrade all projects from .NET 9 to .NET 10
- Add .github/workflows/ci.yml with:
- Test job: runs 88 unit tests
- Build job: builds Tray for win-x64 and win-arm64
- Build-extension job: builds Command Palette extension
- Release job: creates GitHub release on version tags
- All tests passing on .NET 10