From c3c7f4a7aadd8c2101bd6caf4096504b6191efb9 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 30 Jan 2026 16:27:51 +0000 Subject: [PATCH] Rename all Moltbot references to OpenClaw - 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> --- .github/workflows/ci.yml | 26 ++++---- CODE_REVIEW.md | 14 ++--- README.md | 58 ++++++++++-------- installer.iss | 16 ++--- moltbot-windows-hub.slnx | 8 +-- .../Assets/LockScreenLogo.scale-200.png | Bin .../Assets/SplashScreen.scale-200.png | Bin .../Assets/Square150x150Logo.scale-200.png | Bin .../Assets/Square44x44Logo.scale-200.png | Bin ...x44Logo.targetsize-24_altform-unplated.png | Bin .../Assets/StoreLogo.png | Bin .../Assets/Wide310x150Logo.scale-200.png | Bin .../Directory.Build.props | 0 .../Directory.Packages.props | 0 .../OpenClaw.CommandPalette.csproj} | 2 +- .../OpenClaw.cs} | 2 +- .../OpenClawCommandsProvider.cs} | 4 +- .../Package.appxmanifest | 16 ++--- .../Pages/OpenClawPage.cs} | 10 +-- .../Program.cs | 0 .../Properties/launchSettings.json | 4 +- .../app.manifest | 0 .../nuget.config | 0 .../IOpenClawLogger.cs} | 8 +-- .../Models.cs | 4 +- .../OpenClaw.Shared.csproj} | 0 .../OpenClawGatewayClient.cs} | 12 ++-- .../App.xaml | 0 .../App.xaml.cs | 28 ++++----- .../Assets/openclaw.ico} | Bin .../Dialogs/DownloadProgressDialog.cs | 2 +- .../Dialogs/QuickSendDialog.cs | 12 ++-- .../Dialogs/UpdateDialog.cs | 2 +- .../Dialogs/WelcomeDialog.cs | 2 +- .../Helpers/BackdropHelper.cs | 2 +- .../Helpers/IconHelper.cs | 4 +- .../Helpers/ThemeHelper.cs | 2 +- .../OpenClaw.Tray.WinUI.csproj} | 4 +- .../Services/AutoStartManager.cs | 4 +- .../Services/DeepLinkHandler.cs | 10 +-- .../Services/GlobalHotkeyService.cs | 2 +- .../Services/Logger.cs | 8 +-- .../Services/NotificationHistoryService.cs | 2 +- .../Services/SettingsManager.cs | 4 +- .../Windows/NotificationHistoryWindow.xaml | 0 .../Windows/NotificationHistoryWindow.xaml.cs | 8 +-- .../Windows/SettingsWindow.xaml | 0 .../Windows/SettingsWindow.xaml.cs | 12 ++-- .../Windows/StatusDetailWindow.xaml | 0 .../Windows/StatusDetailWindow.xaml.cs | 6 +- .../Windows/TrayMenuWindow.xaml | 0 .../Windows/TrayMenuWindow.xaml.cs | 4 +- .../Windows/WebChatWindow.xaml | 0 .../Windows/WebChatWindow.xaml.cs | 10 +-- .../app.manifest | 0 .../.gitignore | 0 .../AutoStartManager.cs | 2 +- .../DEVELOPMENT.md | 0 .../DeepLinkHandler.cs | 24 ++++---- .../DownloadProgressDialog.cs | 0 .../GlobalHotkey.cs | 0 .../IconHelper.cs | 0 src/{Moltbot.Tray => OpenClaw.Tray}/LICENSE | 0 src/{Moltbot.Tray => OpenClaw.Tray}/Logger.cs | 16 ++--- .../ModernForm.cs | 0 .../ModernForm.resx | 0 .../ModernTrayMenu.cs | 0 .../NotificationHistoryForm.cs | 0 .../OpenClaw.Tray.csproj} | 4 +- .../Program.cs | 4 +- .../QuickSendDialog.cs | 0 src/{Moltbot.Tray => OpenClaw.Tray}/README.md | 12 ++-- .../SettingsDialog.cs | 4 +- .../SettingsManager.cs | 2 +- .../StatusDetailForm.cs | 8 +-- .../TrayApplication.cs | 14 ++--- .../UpdateDialog.cs | 0 .../WebChatForm.cs | 2 +- .../WelcomeDialog.cs | 0 .../openclaw.ico} | Bin .../screenshots/README.md | 0 .../ModelsTests.cs | 4 +- .../OpenClaw.Shared.Tests.csproj} | 2 +- .../OpenClawGatewayClientTests.cs} | 26 ++++---- .../README.md | 12 ++-- tools/cmdpal-dev.ps1 | 10 +-- 86 files changed, 231 insertions(+), 227 deletions(-) rename src/{Moltbot.CommandPalette => OpenClaw.CommandPalette}/Assets/LockScreenLogo.scale-200.png (100%) rename src/{Moltbot.CommandPalette => OpenClaw.CommandPalette}/Assets/SplashScreen.scale-200.png (100%) rename src/{Moltbot.CommandPalette => OpenClaw.CommandPalette}/Assets/Square150x150Logo.scale-200.png (100%) rename src/{Moltbot.CommandPalette => OpenClaw.CommandPalette}/Assets/Square44x44Logo.scale-200.png (100%) rename src/{Moltbot.CommandPalette => OpenClaw.CommandPalette}/Assets/Square44x44Logo.targetsize-24_altform-unplated.png (100%) rename src/{Moltbot.CommandPalette => OpenClaw.CommandPalette}/Assets/StoreLogo.png (100%) rename src/{Moltbot.CommandPalette => OpenClaw.CommandPalette}/Assets/Wide310x150Logo.scale-200.png (100%) rename src/{Moltbot.CommandPalette => OpenClaw.CommandPalette}/Directory.Build.props (100%) rename src/{Moltbot.CommandPalette => OpenClaw.CommandPalette}/Directory.Packages.props (100%) rename src/{Moltbot.CommandPalette/Moltbot.CommandPalette.csproj => OpenClaw.CommandPalette/OpenClaw.CommandPalette.csproj} (98%) rename src/{Moltbot.CommandPalette/Moltbot.cs => OpenClaw.CommandPalette/OpenClaw.cs} (93%) rename src/{Moltbot.CommandPalette/MoltbotCommandsProvider.cs => OpenClaw.CommandPalette/OpenClawCommandsProvider.cs} (86%) rename src/{Moltbot.CommandPalette => OpenClaw.CommandPalette}/Package.appxmanifest (88%) rename src/{Moltbot.CommandPalette/Pages/MoltbotPage.cs => OpenClaw.CommandPalette/Pages/OpenClawPage.cs} (79%) rename src/{Moltbot.CommandPalette => OpenClaw.CommandPalette}/Program.cs (100%) rename src/{Moltbot.CommandPalette => OpenClaw.CommandPalette}/Properties/launchSettings.json (69%) rename src/{Moltbot.CommandPalette => OpenClaw.CommandPalette}/app.manifest (100%) rename src/{Moltbot.CommandPalette => OpenClaw.CommandPalette}/nuget.config (100%) rename src/{Moltbot.Shared/IMoltbotLogger.cs => OpenClaw.Shared/IOpenClawLogger.cs} (86%) rename src/{Moltbot.Shared => OpenClaw.Shared}/Models.cs (98%) rename src/{Moltbot.Shared/Moltbot.Shared.csproj => OpenClaw.Shared/OpenClaw.Shared.csproj} (100%) rename src/{Moltbot.Shared/MoltbotGatewayClient.cs => OpenClaw.Shared/OpenClawGatewayClient.cs} (98%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/App.xaml (100%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/App.xaml.cs (98%) rename src/{Moltbot.Tray.WinUI/Assets/moltbot.ico => OpenClaw.Tray.WinUI/Assets/openclaw.ico} (100%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Dialogs/DownloadProgressDialog.cs (96%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Dialogs/QuickSendDialog.cs (93%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Dialogs/UpdateDialog.cs (98%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Dialogs/WelcomeDialog.cs (99%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Helpers/BackdropHelper.cs (99%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Helpers/IconHelper.cs (98%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Helpers/ThemeHelper.cs (97%) rename src/{Moltbot.Tray.WinUI/Moltbot.Tray.WinUI.csproj => OpenClaw.Tray.WinUI/OpenClaw.Tray.WinUI.csproj} (90%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Services/AutoStartManager.cs (93%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Services/DeepLinkHandler.cs (92%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Services/GlobalHotkeyService.cs (99%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Services/Logger.cs (88%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Services/NotificationHistoryService.cs (98%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Services/SettingsManager.cs (98%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Windows/NotificationHistoryWindow.xaml (100%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Windows/NotificationHistoryWindow.xaml.cs (96%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Windows/SettingsWindow.xaml (100%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Windows/SettingsWindow.xaml.cs (96%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Windows/StatusDetailWindow.xaml (100%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Windows/StatusDetailWindow.xaml.cs (97%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Windows/TrayMenuWindow.xaml (100%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Windows/TrayMenuWindow.xaml.cs (99%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Windows/WebChatWindow.xaml (100%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/Windows/WebChatWindow.xaml.cs (96%) rename src/{Moltbot.Tray.WinUI => OpenClaw.Tray.WinUI}/app.manifest (100%) rename src/{Moltbot.Tray => OpenClaw.Tray}/.gitignore (100%) rename src/{Moltbot.Tray => OpenClaw.Tray}/AutoStartManager.cs (96%) rename src/{Moltbot.Tray => OpenClaw.Tray}/DEVELOPMENT.md (100%) rename src/{Moltbot.Tray => OpenClaw.Tray}/DeepLinkHandler.cs (86%) rename src/{Moltbot.Tray => OpenClaw.Tray}/DownloadProgressDialog.cs (100%) rename src/{Moltbot.Tray => OpenClaw.Tray}/GlobalHotkey.cs (100%) rename src/{Moltbot.Tray => OpenClaw.Tray}/IconHelper.cs (100%) rename src/{Moltbot.Tray => OpenClaw.Tray}/LICENSE (100%) rename src/{Moltbot.Tray => OpenClaw.Tray}/Logger.cs (85%) rename src/{Moltbot.Tray => OpenClaw.Tray}/ModernForm.cs (100%) rename src/{Moltbot.Tray => OpenClaw.Tray}/ModernForm.resx (100%) rename src/{Moltbot.Tray => OpenClaw.Tray}/ModernTrayMenu.cs (100%) rename src/{Moltbot.Tray => OpenClaw.Tray}/NotificationHistoryForm.cs (100%) rename src/{Moltbot.Tray/Moltbot.Tray.csproj => OpenClaw.Tray/OpenClaw.Tray.csproj} (91%) rename src/{Moltbot.Tray => OpenClaw.Tray}/Program.cs (97%) rename src/{Moltbot.Tray => OpenClaw.Tray}/QuickSendDialog.cs (100%) rename src/{Moltbot.Tray => OpenClaw.Tray}/README.md (93%) rename src/{Moltbot.Tray => OpenClaw.Tray}/SettingsDialog.cs (99%) rename src/{Moltbot.Tray => OpenClaw.Tray}/SettingsManager.cs (99%) rename src/{Moltbot.Tray => OpenClaw.Tray}/StatusDetailForm.cs (95%) rename src/{Moltbot.Tray => OpenClaw.Tray}/TrayApplication.cs (98%) rename src/{Moltbot.Tray => OpenClaw.Tray}/UpdateDialog.cs (100%) rename src/{Moltbot.Tray => OpenClaw.Tray}/WebChatForm.cs (99%) rename src/{Moltbot.Tray => OpenClaw.Tray}/WelcomeDialog.cs (100%) rename src/{Moltbot.Tray/moltbot.ico => OpenClaw.Tray/openclaw.ico} (100%) rename src/{Moltbot.Tray => OpenClaw.Tray}/screenshots/README.md (100%) rename tests/{Moltbot.Shared.Tests => OpenClaw.Shared.Tests}/ModelsTests.cs (99%) rename tests/{Moltbot.Shared.Tests/Moltbot.Shared.Tests.csproj => OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj} (88%) rename tests/{Moltbot.Shared.Tests/MoltbotGatewayClientTests.cs => OpenClaw.Shared.Tests/OpenClawGatewayClientTests.cs} (92%) rename tests/{Moltbot.Shared.Tests => OpenClaw.Shared.Tests}/README.md (93%) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9e8bc1b..ccd72a3 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,10 +42,10 @@ jobs: run: dotnet build src/Moltbot.Tray.WinUI -c Debug - name: Build Tests - run: dotnet build tests/Moltbot.Shared.Tests -c Debug + run: dotnet build tests/OpenClaw.Shared.Tests -c Debug - name: Run Tests - run: dotnet test tests/Moltbot.Shared.Tests --no-build -c Debug --verbosity normal + run: dotnet test tests/OpenClaw.Shared.Tests --no-build -c Debug --verbosity normal outputs: semVer: ${{ steps.gitversion.outputs.semVer }} @@ -167,8 +167,8 @@ jobs: # Create ZIP files for Updatum auto-update (needs "win-x64" in filename) - name: Create Release ZIPs run: | - Compress-Archive -Path artifacts/tray-win-x64/* -DestinationPath MoltbotTray-${{ needs.test.outputs.majorMinorPatch }}-win-x64.zip - Compress-Archive -Path artifacts/tray-win-arm64/* -DestinationPath MoltbotTray-${{ needs.test.outputs.majorMinorPatch }}-win-arm64.zip + Compress-Archive -Path artifacts/tray-win-x64/* -DestinationPath OpenClawTray-${{ needs.test.outputs.majorMinorPatch }}-win-x64.zip + Compress-Archive -Path artifacts/tray-win-arm64/* -DestinationPath OpenClawTray-${{ needs.test.outputs.majorMinorPatch }}-win-arm64.zip # Inno Setup installer for x64 - name: Install Inno Setup @@ -225,18 +225,18 @@ jobs: with: generate_release_notes: true files: | - Output/MoltbotTray-Setup-x64.exe - Output/MoltbotTray-Setup-arm64.exe - MoltbotTray-${{ needs.test.outputs.majorMinorPatch }}-win-x64.zip - MoltbotTray-${{ needs.test.outputs.majorMinorPatch }}-win-arm64.zip + Output/OpenClawTray-Setup-x64.exe + Output/OpenClawTray-Setup-arm64.exe + OpenClawTray-${{ needs.test.outputs.majorMinorPatch }}-win-x64.zip + OpenClawTray-${{ needs.test.outputs.majorMinorPatch }}-win-arm64.zip body: | ## Moltbot Windows Hub ${{ github.ref_name }} ### Downloads - - **Installer (x64)**: `MoltbotTray-Setup-x64.exe` - Intel/AMD 64-bit - - **Installer (ARM64)**: `MoltbotTray-Setup-arm64.exe` - Windows on ARM (Surface, etc.) - - **Portable x64**: `MoltbotTray-${{ needs.test.outputs.majorMinorPatch }}-win-x64.zip` - - **Portable ARM64**: `MoltbotTray-${{ needs.test.outputs.majorMinorPatch }}-win-arm64.zip` + - **Installer (x64)**: `OpenClawTray-Setup-x64.exe` - Intel/AMD 64-bit + - **Installer (ARM64)**: `OpenClawTray-Setup-arm64.exe` - Windows on ARM (Surface, etc.) + - **Portable x64**: `OpenClawTray-${{ needs.test.outputs.majorMinorPatch }}-win-x64.zip` + - **Portable ARM64**: `OpenClawTray-${{ needs.test.outputs.majorMinorPatch }}-win-arm64.zip` ### Features - ๐Ÿฆž System tray integration with gateway status @@ -247,7 +247,7 @@ jobs: ### Requirements - Windows 10 version 1903 or later - [WebView2 Runtime](https://developer.microsoft.com/en-us/microsoft-edge/webview2/) - - Moltbot gateway running locally + - OpenClaw gateway running locally - PowerToys (for Command Palette extension) ### Quick Start diff --git a/CODE_REVIEW.md b/CODE_REVIEW.md index e4d11eb..eafc8e6 100644 --- a/CODE_REVIEW.md +++ b/CODE_REVIEW.md @@ -1,15 +1,15 @@ -# Code Review - Moltbot Windows Hub +# Code Review - OpenClaw Windows Hub ## Overview -This document provides a comprehensive code review of the Moltbot Windows Hub repository, focusing on correctness, security, and best practices. +This document provides a comprehensive code review of the OpenClaw Windows Hub repository, focusing on correctness, security, and best practices. ## Executive Summary โœ… **Overall Assessment: Good** - The codebase is well-structured with proper separation of concerns, event-driven architecture, and correct async/await patterns. Some potential issues were identified around error handling, reconnection logic, and edge cases. ## Project Structure -- **Moltbot.Shared**: WebSocket gateway client and data models (โœ… Cross-platform compatible) -- **Moltbot.Tray**: Windows system tray application (โš ๏ธ Windows-only) -- **Moltbot.CommandPalette**: PowerToys extension (โš ๏ธ Windows-only) +- **OpenClaw.Shared**: WebSocket gateway client and data models (โœ… Cross-platform compatible) +- **OpenClaw.Tray**: Windows system tray application (โš ๏ธ Windows-only) +- **OpenClaw.CommandPalette**: PowerToys extension (โš ๏ธ Windows-only) ## Code Quality Analysis @@ -282,7 +282,7 @@ All display text generation in Models.cs is correct: ### โš ๏ธ Cross-Platform Compatibility -**Moltbot.Shared** is mostly cross-platform, but: +**OpenClaw.Shared** is mostly cross-platform, but: - `SessionInfo.ShortKey` uses `Path.GetFileName()` which behaves differently on Windows vs Linux - On Linux, backslashes in paths are NOT treated as separators - **Recommendation**: Explicitly replace backslashes before using `Path.GetFileName()` @@ -349,7 +349,7 @@ if (Key.Contains('/') || Key.Contains('\\')) ## Conclusion -The Moltbot Windows Hub codebase demonstrates good software engineering practices with proper async/await usage, event-driven architecture, and resource management. The main areas for improvement are: +The OpenClaw Windows Hub codebase demonstrates good software engineering practices with proper async/await usage, event-driven architecture, and resource management. The main areas for improvement are: 1. **Testing**: Now addressed with 88 unit tests covering core functionality 2. **Error Handling**: Could be more consistent diff --git a/README.md b/README.md index 24e740d..e61b07a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# ๐Ÿฆž Moltbot Windows Hub +# ๐Ÿฆž OpenClaw Windows Hub -A Windows companion suite for [Moltbot](https://moltbot.com) - the AI-powered personal assistant. +A Windows companion suite for [OpenClaw](https://moltbot.com) - the AI-powered personal assistant. *Made with ๐Ÿฆž love by Scott Hanselman and Molty* @@ -14,9 +14,9 @@ This monorepo contains three projects: | Project | Description | |---------|-------------| -| **Moltbot.Tray** | System tray application for quick access to Moltbot | -| **Moltbot.Shared** | Shared gateway client library | -| **Moltbot.CommandPalette** | PowerToys Command Palette extension | +| **OpenClaw.Tray** | System tray application for quick access to OpenClaw | +| **OpenClaw.Shared** | Shared gateway client library | +| **OpenClaw.CommandPalette** | PowerToys Command Palette extension | ## ๐Ÿš€ Quick Start @@ -32,12 +32,12 @@ dotnet build ### Run Tray App ```bash -dotnet run --project src/Moltbot.Tray +dotnet run --project src/OpenClaw.Tray ``` -## ๐Ÿ“ฆ Moltbot.Tray (Molty) +## ๐Ÿ“ฆ OpenClaw.Tray (Molty) -Modern Windows 11-style system tray companion that connects to your local Moltbot gateway. +Modern Windows 11-style system tray companion that connects to your local OpenClaw gateway. ### Features - ๐Ÿฆž **Lobster branding** - Pixel-art lobster tray icon with status colors @@ -90,28 +90,28 @@ These features are available in Windows but not in the Mac app: | Toast notifications | Clickable Windows notifications | | Channel control | Start/stop Telegram & WhatsApp | | Modern flyout menu | Windows 11-style with dark/light mode | -| Deep links | `moltbot://` URL scheme with IPC | +| Deep links | `openclaw://` URL scheme with IPC | | First-run welcome | Guided onboarding for new users | | PowerToys integration | Command Palette extension | ### Deep Links -Moltbot registers the `moltbot://` URL scheme for automation and integration: +OpenClaw registers the `openclaw://` URL scheme for automation and integration: | Link | Description | |------|-------------| -| `moltbot://settings` | Open Settings dialog | -| `moltbot://chat` | Open Web Chat window | -| `moltbot://dashboard` | Open Dashboard in browser | -| `moltbot://dashboard/sessions` | Open specific dashboard page | -| `moltbot://send?message=Hello` | Open Quick Send with pre-filled text | -| `moltbot://agent?message=Hello` | Send message directly (with confirmation) | +| `openclaw://settings` | Open Settings dialog | +| `openclaw://chat` | Open Web Chat window | +| `openclaw://dashboard` | Open Dashboard in browser | +| `openclaw://dashboard/sessions` | Open specific dashboard page | +| `openclaw://send?message=Hello` | Open Quick Send with pre-filled text | +| `openclaw://agent?message=Hello` | Send message directly (with confirmation) | Deep links work even when Molty is already running - they're forwarded via IPC. -## ๐Ÿ“ฆ Moltbot.CommandPalette +## ๐Ÿ“ฆ OpenClaw.CommandPalette -PowerToys Command Palette extension for quick Moltbot access. +PowerToys Command Palette extension for quick OpenClaw access. ### Commands - **๐Ÿฆž Open Dashboard** - Launch web dashboard @@ -125,13 +125,13 @@ PowerToys Command Palette extension for quick Moltbot access. 1. Build the solution in Release mode 2. Deploy the MSIX package via Visual Studio 3. Open Command Palette (Win+Alt+Space) -4. Type "Moltbot" to see commands +4. Type "OpenClaw" to see commands -## ๐Ÿ“ฆ Moltbot.Shared +## ๐Ÿ“ฆ OpenClaw.Shared Shared library containing: -- `MoltbotGatewayClient` - WebSocket client for gateway protocol -- `IMoltbotLogger` - Logging interface +- `OpenClawGatewayClient` - WebSocket client for gateway protocol +- `IOpenClawLogger` - Logging interface - Data models (SessionInfo, ChannelHealth, etc.) - Channel control (start/stop channels via gateway) @@ -141,9 +141,9 @@ Shared library containing: ``` moltbot-windows-hub/ โ”œโ”€โ”€ src/ -โ”‚ โ”œโ”€โ”€ Moltbot.Shared/ # Shared gateway library -โ”‚ โ”œโ”€โ”€ Moltbot.Tray/ # System tray app -โ”‚ โ””โ”€โ”€ Moltbot.CommandPalette/ # PowerToys extension +โ”‚ โ”œโ”€โ”€ OpenClaw.Shared/ # Shared gateway library +โ”‚ โ”œโ”€โ”€ OpenClaw.Tray/ # System tray app +โ”‚ โ””โ”€โ”€ OpenClaw.CommandPalette/ # PowerToys extension โ”œโ”€โ”€ docs/ โ”‚ โ””โ”€โ”€ molty1.png # Screenshot โ”œโ”€โ”€ moltbot-windows-hub.sln @@ -155,8 +155,8 @@ moltbot-windows-hub/ ### Configuration Settings are stored in: -- Settings: `%APPDATA%\MoltbotTray\settings.json` -- Logs: `%LOCALAPPDATA%\MoltbotTray\moltbot-tray.log` +- Settings: `%APPDATA%\OpenClawTray\settings.json` +- Logs: `%LOCALAPPDATA%\OpenClawTray\openclaw-tray.log` Default gateway: `ws://localhost:18789` @@ -170,3 +170,7 @@ On first run without a token, Molty displays a welcome dialog that: ## License MIT License - see [LICENSE](LICENSE) + +--- + +*Formerly known as Moltbot, formerly known as Clawdbot* diff --git a/installer.iss b/installer.iss index 310d1c7..cfa12ae 100644 --- a/installer.iss +++ b/installer.iss @@ -1,8 +1,8 @@ -; Moltbot Tray Inno Setup Script (WinUI version) -#define MyAppName "Moltbot Tray" +; OpenClaw Tray Inno Setup Script (WinUI version) +#define MyAppName "OpenClaw Tray" #define MyAppPublisher "Scott Hanselman" #define MyAppURL "https://github.com/shanselman/moltbot-windows-hub" -#define MyAppExeName "Moltbot.Tray.WinUI.exe" +#define MyAppExeName "OpenClaw.Tray.WinUI.exe" ; MyAppArch should be passed via /DMyAppArch=x64 or /DMyAppArch=arm64 #ifndef MyAppArch @@ -17,15 +17,15 @@ AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL=https://github.com/shanselman/moltbot-windows-hub/issues AppUpdatesURL=https://github.com/shanselman/moltbot-windows-hub/releases -DefaultDirName={localappdata}\MoltbotTray +DefaultDirName={localappdata}\OpenClawTray DefaultGroupName={#MyAppName} DisableProgramGroupPage=yes -OutputBaseFilename=MoltbotTray-Setup-{#MyAppArch} +OutputBaseFilename=OpenClawTray-Setup-{#MyAppArch} Compression=lzma SolidCompression=yes WizardStyle=modern PrivilegesRequired=lowest -SetupIconFile=src\Moltbot.Tray.WinUI\Assets\moltbot.ico +SetupIconFile=src\OpenClaw.Tray.WinUI\Assets\openclaw.ico UninstallDisplayIcon={app}\{#MyAppExeName} #if MyAppArch == "arm64" ArchitecturesInstallIn64BitMode=arm64 @@ -45,7 +45,7 @@ Name: "english"; MessagesFile: "compiler:Default.isl" [Tasks] Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked -Name: "startupicon"; Description: "Start Moltbot Tray when Windows starts"; GroupDescription: "Startup:"; Flags: unchecked +Name: "startupicon"; Description: "Start OpenClaw Tray when Windows starts"; GroupDescription: "Startup:"; Flags: unchecked Name: "cmdpalette"; Description: "Install PowerToys Command Palette extension"; GroupDescription: "Integrations:"; Flags: unchecked [Files] @@ -67,4 +67,4 @@ Filename: "powershell.exe"; Parameters: "-ExecutionPolicy Bypass -Command ""Add- [UninstallRun] ; Unregister Command Palette extension on uninstall -Filename: "powershell.exe"; Parameters: "-ExecutionPolicy Bypass -Command ""Get-AppxPackage -Name '*Moltbot*' | Remove-AppxPackage"""; Flags: runhidden +Filename: "powershell.exe"; Parameters: "-ExecutionPolicy Bypass -Command ""Get-AppxPackage -Name '*OpenClaw*' | Remove-AppxPackage"""; Flags: runhidden diff --git a/moltbot-windows-hub.slnx b/moltbot-windows-hub.slnx index fd6a737..a4c90b8 100644 --- a/moltbot-windows-hub.slnx +++ b/moltbot-windows-hub.slnx @@ -1,10 +1,10 @@ - + - - - + + + diff --git a/src/Moltbot.CommandPalette/Assets/LockScreenLogo.scale-200.png b/src/OpenClaw.CommandPalette/Assets/LockScreenLogo.scale-200.png similarity index 100% rename from src/Moltbot.CommandPalette/Assets/LockScreenLogo.scale-200.png rename to src/OpenClaw.CommandPalette/Assets/LockScreenLogo.scale-200.png diff --git a/src/Moltbot.CommandPalette/Assets/SplashScreen.scale-200.png b/src/OpenClaw.CommandPalette/Assets/SplashScreen.scale-200.png similarity index 100% rename from src/Moltbot.CommandPalette/Assets/SplashScreen.scale-200.png rename to src/OpenClaw.CommandPalette/Assets/SplashScreen.scale-200.png diff --git a/src/Moltbot.CommandPalette/Assets/Square150x150Logo.scale-200.png b/src/OpenClaw.CommandPalette/Assets/Square150x150Logo.scale-200.png similarity index 100% rename from src/Moltbot.CommandPalette/Assets/Square150x150Logo.scale-200.png rename to src/OpenClaw.CommandPalette/Assets/Square150x150Logo.scale-200.png diff --git a/src/Moltbot.CommandPalette/Assets/Square44x44Logo.scale-200.png b/src/OpenClaw.CommandPalette/Assets/Square44x44Logo.scale-200.png similarity index 100% rename from src/Moltbot.CommandPalette/Assets/Square44x44Logo.scale-200.png rename to src/OpenClaw.CommandPalette/Assets/Square44x44Logo.scale-200.png diff --git a/src/Moltbot.CommandPalette/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/src/OpenClaw.CommandPalette/Assets/Square44x44Logo.targetsize-24_altform-unplated.png similarity index 100% rename from src/Moltbot.CommandPalette/Assets/Square44x44Logo.targetsize-24_altform-unplated.png rename to src/OpenClaw.CommandPalette/Assets/Square44x44Logo.targetsize-24_altform-unplated.png diff --git a/src/Moltbot.CommandPalette/Assets/StoreLogo.png b/src/OpenClaw.CommandPalette/Assets/StoreLogo.png similarity index 100% rename from src/Moltbot.CommandPalette/Assets/StoreLogo.png rename to src/OpenClaw.CommandPalette/Assets/StoreLogo.png diff --git a/src/Moltbot.CommandPalette/Assets/Wide310x150Logo.scale-200.png b/src/OpenClaw.CommandPalette/Assets/Wide310x150Logo.scale-200.png similarity index 100% rename from src/Moltbot.CommandPalette/Assets/Wide310x150Logo.scale-200.png rename to src/OpenClaw.CommandPalette/Assets/Wide310x150Logo.scale-200.png diff --git a/src/Moltbot.CommandPalette/Directory.Build.props b/src/OpenClaw.CommandPalette/Directory.Build.props similarity index 100% rename from src/Moltbot.CommandPalette/Directory.Build.props rename to src/OpenClaw.CommandPalette/Directory.Build.props diff --git a/src/Moltbot.CommandPalette/Directory.Packages.props b/src/OpenClaw.CommandPalette/Directory.Packages.props similarity index 100% rename from src/Moltbot.CommandPalette/Directory.Packages.props rename to src/OpenClaw.CommandPalette/Directory.Packages.props diff --git a/src/Moltbot.CommandPalette/Moltbot.CommandPalette.csproj b/src/OpenClaw.CommandPalette/OpenClaw.CommandPalette.csproj similarity index 98% rename from src/Moltbot.CommandPalette/Moltbot.CommandPalette.csproj rename to src/OpenClaw.CommandPalette/OpenClaw.CommandPalette.csproj index 2d64491..6fa56c2 100644 --- a/src/Moltbot.CommandPalette/Moltbot.CommandPalette.csproj +++ b/src/OpenClaw.CommandPalette/OpenClaw.CommandPalette.csproj @@ -50,7 +50,7 @@ - + - Moltbot + OpenClaw A Lone Developer Assets\StoreLogo.png @@ -35,8 +35,8 @@ Executable="$targetnametoken$.exe" EntryPoint="$targetentrypoint$"> - - + + @@ -56,8 +56,8 @@ + DisplayName="OpenClaw" + Description="OpenClaw"> diff --git a/src/Moltbot.CommandPalette/Pages/MoltbotPage.cs b/src/OpenClaw.CommandPalette/Pages/OpenClawPage.cs similarity index 79% rename from src/Moltbot.CommandPalette/Pages/MoltbotPage.cs rename to src/OpenClaw.CommandPalette/Pages/OpenClawPage.cs index 165b98f..9b9c47c 100644 --- a/src/Moltbot.CommandPalette/Pages/MoltbotPage.cs +++ b/src/OpenClaw.CommandPalette/Pages/OpenClawPage.cs @@ -7,9 +7,9 @@ using Microsoft.CommandPalette.Extensions.Toolkit; namespace Moltbot; -internal sealed partial class MoltbotPage : ListPage +internal sealed partial class OpenClawPage : ListPage { - public MoltbotPage() + public OpenClawPage() { Icon = IconHelpers.FromRelativePath("Assets\\StoreLogo.png"); Title = "Moltbot"; @@ -24,17 +24,17 @@ internal sealed partial class MoltbotPage : ListPage Title = "๐Ÿฆž Open Dashboard", Subtitle = "Open Moltbot web dashboard" }, - new ListItem(new OpenUrlCommand("moltbot://chat")) + new ListItem(new OpenUrlCommand("openclaw://chat")) { Title = "๐Ÿ’ฌ Web Chat", Subtitle = "Open the Moltbot chat window" }, - new ListItem(new OpenUrlCommand("moltbot://send")) + new ListItem(new OpenUrlCommand("openclaw://send")) { Title = "๐Ÿ“ Quick Send", Subtitle = "Send a message to Moltbot" }, - new ListItem(new OpenUrlCommand("moltbot://settings")) + new ListItem(new OpenUrlCommand("openclaw://settings")) { Title = "โš™๏ธ Settings", Subtitle = "Configure Moltbot Tray" diff --git a/src/Moltbot.CommandPalette/Program.cs b/src/OpenClaw.CommandPalette/Program.cs similarity index 100% rename from src/Moltbot.CommandPalette/Program.cs rename to src/OpenClaw.CommandPalette/Program.cs diff --git a/src/Moltbot.CommandPalette/Properties/launchSettings.json b/src/OpenClaw.CommandPalette/Properties/launchSettings.json similarity index 69% rename from src/Moltbot.CommandPalette/Properties/launchSettings.json rename to src/OpenClaw.CommandPalette/Properties/launchSettings.json index 219d366..995b591 100644 --- a/src/Moltbot.CommandPalette/Properties/launchSettings.json +++ b/src/OpenClaw.CommandPalette/Properties/launchSettings.json @@ -1,10 +1,10 @@ { "profiles": { - "Moltbot (Package)": { + "OpenClaw (Package)": { "commandName": "MsixPackage", "doNotLaunchApp": true }, - "Moltbot (Unpackaged)": { + "OpenClaw (Unpackaged)": { "commandName": "Project" } } diff --git a/src/Moltbot.CommandPalette/app.manifest b/src/OpenClaw.CommandPalette/app.manifest similarity index 100% rename from src/Moltbot.CommandPalette/app.manifest rename to src/OpenClaw.CommandPalette/app.manifest diff --git a/src/Moltbot.CommandPalette/nuget.config b/src/OpenClaw.CommandPalette/nuget.config similarity index 100% rename from src/Moltbot.CommandPalette/nuget.config rename to src/OpenClaw.CommandPalette/nuget.config diff --git a/src/Moltbot.Shared/IMoltbotLogger.cs b/src/OpenClaw.Shared/IOpenClawLogger.cs similarity index 86% rename from src/Moltbot.Shared/IMoltbotLogger.cs rename to src/OpenClaw.Shared/IOpenClawLogger.cs index 371e0ab..5eeb36c 100644 --- a/src/Moltbot.Shared/IMoltbotLogger.cs +++ b/src/OpenClaw.Shared/IOpenClawLogger.cs @@ -1,10 +1,10 @@ -namespace Moltbot.Shared; +namespace OpenClaw.Shared; /// /// Simple logger interface for the gateway client. /// Implementations can write to file, console, debug output, etc. /// -public interface IMoltbotLogger +public interface IOpenClawLogger { void Info(string message); void Warn(string message); @@ -14,7 +14,7 @@ public interface IMoltbotLogger /// /// Default no-op logger for when logging isn't needed. /// -public class NullLogger : IMoltbotLogger +public class NullLogger : IOpenClawLogger { public static readonly NullLogger Instance = new(); public void Info(string message) { } @@ -25,7 +25,7 @@ public class NullLogger : IMoltbotLogger /// /// Console logger for simple debugging. /// -public class ConsoleLogger : IMoltbotLogger +public class ConsoleLogger : IOpenClawLogger { public void Info(string message) => Console.WriteLine($"[INFO] {message}"); public void Warn(string message) => Console.WriteLine($"[WARN] {message}"); diff --git a/src/Moltbot.Shared/Models.cs b/src/OpenClaw.Shared/Models.cs similarity index 98% rename from src/Moltbot.Shared/Models.cs rename to src/OpenClaw.Shared/Models.cs index d7ea7cd..3af642c 100644 --- a/src/Moltbot.Shared/Models.cs +++ b/src/OpenClaw.Shared/Models.cs @@ -1,4 +1,4 @@ -namespace Moltbot.Shared; +namespace OpenClaw.Shared; public enum ConnectionStatus { @@ -50,7 +50,7 @@ public class AgentActivity : $"{(IsMain ? "Main" : "Sub")} ยท {Glyph} {Label}"; } -public class MoltbotNotification +public class OpenClawNotification { public string Title { get; set; } = ""; public string Message { get; set; } = ""; diff --git a/src/Moltbot.Shared/Moltbot.Shared.csproj b/src/OpenClaw.Shared/OpenClaw.Shared.csproj similarity index 100% rename from src/Moltbot.Shared/Moltbot.Shared.csproj rename to src/OpenClaw.Shared/OpenClaw.Shared.csproj diff --git a/src/Moltbot.Shared/MoltbotGatewayClient.cs b/src/OpenClaw.Shared/OpenClawGatewayClient.cs similarity index 98% rename from src/Moltbot.Shared/MoltbotGatewayClient.cs rename to src/OpenClaw.Shared/OpenClawGatewayClient.cs index 4222be9..3575d4c 100644 --- a/src/Moltbot.Shared/MoltbotGatewayClient.cs +++ b/src/OpenClaw.Shared/OpenClawGatewayClient.cs @@ -7,14 +7,14 @@ using System.Text.Json; using System.Threading; using System.Threading.Tasks; -namespace Moltbot.Shared; +namespace OpenClaw.Shared; -public class MoltbotGatewayClient : IDisposable +public class OpenClawGatewayClient : IDisposable { private ClientWebSocket? _webSocket; private readonly string _gatewayUrl; private readonly string _token; - private readonly IMoltbotLogger _logger; + private readonly IOpenClawLogger _logger; private CancellationTokenSource _cts; private bool _disposed; private int _reconnectAttempts; @@ -26,13 +26,13 @@ public class MoltbotGatewayClient : IDisposable // Events public event EventHandler? StatusChanged; - public event EventHandler? NotificationReceived; + public event EventHandler? NotificationReceived; public event EventHandler? ActivityChanged; public event EventHandler? ChannelHealthUpdated; public event EventHandler? SessionsUpdated; public event EventHandler? UsageUpdated; - public MoltbotGatewayClient(string gatewayUrl, string token, IMoltbotLogger? logger = null) + public OpenClawGatewayClient(string gatewayUrl, string token, IOpenClawLogger? logger = null) { _gatewayUrl = gatewayUrl; _token = token; @@ -840,7 +840,7 @@ public class MoltbotGatewayClient : IDisposable private void EmitNotification(string text) { var (title, type) = ClassifyNotification(text); - NotificationReceived?.Invoke(this, new MoltbotNotification + NotificationReceived?.Invoke(this, new OpenClawNotification { Title = title, Message = text.Length > 200 ? text[..200] + "โ€ฆ" : text, diff --git a/src/Moltbot.Tray.WinUI/App.xaml b/src/OpenClaw.Tray.WinUI/App.xaml similarity index 100% rename from src/Moltbot.Tray.WinUI/App.xaml rename to src/OpenClaw.Tray.WinUI/App.xaml diff --git a/src/Moltbot.Tray.WinUI/App.xaml.cs b/src/OpenClaw.Tray.WinUI/App.xaml.cs similarity index 98% rename from src/Moltbot.Tray.WinUI/App.xaml.cs rename to src/OpenClaw.Tray.WinUI/App.xaml.cs index 71b81c6..ebfa7a1 100644 --- a/src/Moltbot.Tray.WinUI/App.xaml.cs +++ b/src/OpenClaw.Tray.WinUI/App.xaml.cs @@ -1,11 +1,11 @@ using Microsoft.Toolkit.Uwp.Notifications; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; -using Moltbot.Shared; -using MoltbotTray.Dialogs; -using MoltbotTray.Helpers; -using MoltbotTray.Services; -using MoltbotTray.Windows; +using OpenClaw.Shared; +using OpenClawTray.Dialogs; +using OpenClawTray.Helpers; +using OpenClawTray.Services; +using OpenClawTray.Windows; using System; using System.Collections.Generic; using System.Diagnostics; @@ -31,7 +31,7 @@ public partial class App : Application }; private TrayIcon? _trayIcon; - private MoltbotGatewayClient? _gatewayClient; + private OpenClawGatewayClient? _gatewayClient; private SettingsManager? _settings; private GlobalHotkeyService? _globalHotkey; private System.Timers.Timer? _healthCheckTimer; @@ -63,7 +63,7 @@ public partial class App : Application private string[]? _startupArgs; private static readonly string CrashLogPath = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), - "MoltbotTray", "crash.log"); + "OpenClawTray", "crash.log"); public App() { @@ -112,11 +112,11 @@ public partial class App : Application _dispatcherQueue = Microsoft.UI.Dispatching.DispatcherQueue.GetForCurrentThread(); // Single instance check - keep mutex alive for app lifetime - _mutex = new Mutex(true, "MoltbotTray", out bool createdNew); + _mutex = new Mutex(true, "OpenClawTray", out bool createdNew); if (!createdNew) { // Forward deep link args to running instance - if (_startupArgs.Length > 1 && _startupArgs[1].StartsWith("moltbot://", StringComparison.OrdinalIgnoreCase)) + if (_startupArgs.Length > 1 && _startupArgs[1].StartsWith("openclaw://", StringComparison.OrdinalIgnoreCase)) { SendDeepLinkToRunningInstance(_startupArgs[1]); } @@ -168,7 +168,7 @@ public partial class App : Application } // Process startup deep link - if (_startupArgs.Length > 1 && _startupArgs[1].StartsWith("moltbot://", StringComparison.OrdinalIgnoreCase)) + if (_startupArgs.Length > 1 && _startupArgs[1].StartsWith("openclaw://", StringComparison.OrdinalIgnoreCase)) { HandleDeepLink(_startupArgs[1]); } @@ -545,7 +545,7 @@ public partial class App : Application // Unsubscribe from old client if exists UnsubscribeGatewayEvents(); - _gatewayClient = new MoltbotGatewayClient(_settings.GatewayUrl, _settings.Token, new AppLogger()); + _gatewayClient = new OpenClawGatewayClient(_settings.GatewayUrl, _settings.Token, new AppLogger()); _gatewayClient.StatusChanged += OnConnectionStatusChanged; _gatewayClient.ActivityChanged += OnActivityChanged; _gatewayClient.NotificationReceived += OnNotificationReceived; @@ -628,7 +628,7 @@ public partial class App : Application _lastUsage = usage; } - private void OnNotificationReceived(object? sender, MoltbotNotification notification) + private void OnNotificationReceived(object? sender, OpenClawNotification notification) { if (_settings?.ShowNotifications != true) return; if (!ShouldShowNotification(notification)) return; @@ -656,7 +656,7 @@ public partial class App : Application } } - private bool ShouldShowNotification(MoltbotNotification notification) + private bool ShouldShowNotification(OpenClawNotification notification) { if (_settings == null) return true; @@ -1144,7 +1144,7 @@ public partial class App : Application Microsoft.UI.Dispatching.DispatcherQueue.GetForCurrentThread(); } -internal class AppLogger : IMoltbotLogger +internal class AppLogger : IOpenClawLogger { public void Info(string message) => Logger.Info(message); public void Warn(string message) => Logger.Warn(message); diff --git a/src/Moltbot.Tray.WinUI/Assets/moltbot.ico b/src/OpenClaw.Tray.WinUI/Assets/openclaw.ico similarity index 100% rename from src/Moltbot.Tray.WinUI/Assets/moltbot.ico rename to src/OpenClaw.Tray.WinUI/Assets/openclaw.ico diff --git a/src/Moltbot.Tray.WinUI/Dialogs/DownloadProgressDialog.cs b/src/OpenClaw.Tray.WinUI/Dialogs/DownloadProgressDialog.cs similarity index 96% rename from src/Moltbot.Tray.WinUI/Dialogs/DownloadProgressDialog.cs rename to src/OpenClaw.Tray.WinUI/Dialogs/DownloadProgressDialog.cs index 1315dc4..1839afd 100644 --- a/src/Moltbot.Tray.WinUI/Dialogs/DownloadProgressDialog.cs +++ b/src/OpenClaw.Tray.WinUI/Dialogs/DownloadProgressDialog.cs @@ -3,7 +3,7 @@ using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Media; using Updatum; -namespace MoltbotTray.Dialogs; +namespace OpenClawTray.Dialogs; public sealed class DownloadProgressDialog { diff --git a/src/Moltbot.Tray.WinUI/Dialogs/QuickSendDialog.cs b/src/OpenClaw.Tray.WinUI/Dialogs/QuickSendDialog.cs similarity index 93% rename from src/Moltbot.Tray.WinUI/Dialogs/QuickSendDialog.cs rename to src/OpenClaw.Tray.WinUI/Dialogs/QuickSendDialog.cs index fe0e23a..dca09b7 100644 --- a/src/Moltbot.Tray.WinUI/Dialogs/QuickSendDialog.cs +++ b/src/OpenClaw.Tray.WinUI/Dialogs/QuickSendDialog.cs @@ -2,27 +2,27 @@ using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Input; using Microsoft.UI.Xaml.Media; -using Moltbot.Shared; -using MoltbotTray.Helpers; -using MoltbotTray.Services; +using OpenClaw.Shared; +using OpenClawTray.Helpers; +using OpenClawTray.Services; using System; using System.Threading.Tasks; using WinUIEx; -namespace MoltbotTray.Dialogs; +namespace OpenClawTray.Dialogs; /// /// Quick send dialog for sending messages to Moltbot. /// public sealed class QuickSendDialog : WindowEx { - private readonly MoltbotGatewayClient _client; + private readonly OpenClawGatewayClient _client; private readonly TextBox _messageTextBox; private readonly Button _sendButton; private readonly TextBlock _statusText; private bool _isSending; - public QuickSendDialog(MoltbotGatewayClient client, string? prefillMessage = null) + public QuickSendDialog(OpenClawGatewayClient client, string? prefillMessage = null) { _client = client; diff --git a/src/Moltbot.Tray.WinUI/Dialogs/UpdateDialog.cs b/src/OpenClaw.Tray.WinUI/Dialogs/UpdateDialog.cs similarity index 98% rename from src/Moltbot.Tray.WinUI/Dialogs/UpdateDialog.cs rename to src/OpenClaw.Tray.WinUI/Dialogs/UpdateDialog.cs index 6274d56..8782eed 100644 --- a/src/Moltbot.Tray.WinUI/Dialogs/UpdateDialog.cs +++ b/src/OpenClaw.Tray.WinUI/Dialogs/UpdateDialog.cs @@ -4,7 +4,7 @@ using Microsoft.UI.Xaml.Media; using System; using System.Threading.Tasks; -namespace MoltbotTray.Dialogs; +namespace OpenClawTray.Dialogs; public enum UpdateDialogResult { diff --git a/src/Moltbot.Tray.WinUI/Dialogs/WelcomeDialog.cs b/src/OpenClaw.Tray.WinUI/Dialogs/WelcomeDialog.cs similarity index 99% rename from src/Moltbot.Tray.WinUI/Dialogs/WelcomeDialog.cs rename to src/OpenClaw.Tray.WinUI/Dialogs/WelcomeDialog.cs index a04d480..e938e24 100644 --- a/src/Moltbot.Tray.WinUI/Dialogs/WelcomeDialog.cs +++ b/src/OpenClaw.Tray.WinUI/Dialogs/WelcomeDialog.cs @@ -5,7 +5,7 @@ using System; using System.Threading.Tasks; using WinUIEx; -namespace MoltbotTray.Dialogs; +namespace OpenClawTray.Dialogs; /// /// First-run welcome dialog for new users. diff --git a/src/Moltbot.Tray.WinUI/Helpers/BackdropHelper.cs b/src/OpenClaw.Tray.WinUI/Helpers/BackdropHelper.cs similarity index 99% rename from src/Moltbot.Tray.WinUI/Helpers/BackdropHelper.cs rename to src/OpenClaw.Tray.WinUI/Helpers/BackdropHelper.cs index 102876c..22d02a0 100644 --- a/src/Moltbot.Tray.WinUI/Helpers/BackdropHelper.cs +++ b/src/OpenClaw.Tray.WinUI/Helpers/BackdropHelper.cs @@ -3,7 +3,7 @@ using Microsoft.UI.Xaml; using System.Runtime.InteropServices; using WinRT; -namespace MoltbotTray.Helpers; +namespace OpenClawTray.Helpers; /// /// Helper class to apply Mica backdrop with IsInputActive always true. diff --git a/src/Moltbot.Tray.WinUI/Helpers/IconHelper.cs b/src/OpenClaw.Tray.WinUI/Helpers/IconHelper.cs similarity index 98% rename from src/Moltbot.Tray.WinUI/Helpers/IconHelper.cs rename to src/OpenClaw.Tray.WinUI/Helpers/IconHelper.cs index f77e4aa..4d9fc0b 100644 --- a/src/Moltbot.Tray.WinUI/Helpers/IconHelper.cs +++ b/src/OpenClaw.Tray.WinUI/Helpers/IconHelper.cs @@ -1,10 +1,10 @@ -using Moltbot.Shared; +using OpenClaw.Shared; using System; using System.Drawing; using System.IO; using System.Runtime.InteropServices; -namespace MoltbotTray.Helpers; +namespace OpenClawTray.Helpers; /// /// Provides icon resources for the tray application. diff --git a/src/Moltbot.Tray.WinUI/Helpers/ThemeHelper.cs b/src/OpenClaw.Tray.WinUI/Helpers/ThemeHelper.cs similarity index 97% rename from src/Moltbot.Tray.WinUI/Helpers/ThemeHelper.cs rename to src/OpenClaw.Tray.WinUI/Helpers/ThemeHelper.cs index f1e0215..df3c018 100644 --- a/src/Moltbot.Tray.WinUI/Helpers/ThemeHelper.cs +++ b/src/OpenClaw.Tray.WinUI/Helpers/ThemeHelper.cs @@ -2,7 +2,7 @@ using Microsoft.UI.Xaml; using Microsoft.Win32; using Windows.UI; -namespace MoltbotTray.Helpers; +namespace OpenClawTray.Helpers; /// /// Helpers for detecting and applying Windows theme (dark/light mode). diff --git a/src/Moltbot.Tray.WinUI/Moltbot.Tray.WinUI.csproj b/src/OpenClaw.Tray.WinUI/OpenClaw.Tray.WinUI.csproj similarity index 90% rename from src/Moltbot.Tray.WinUI/Moltbot.Tray.WinUI.csproj rename to src/OpenClaw.Tray.WinUI/OpenClaw.Tray.WinUI.csproj index 25ccf7b..5824669 100644 --- a/src/Moltbot.Tray.WinUI/Moltbot.Tray.WinUI.csproj +++ b/src/OpenClaw.Tray.WinUI/OpenClaw.Tray.WinUI.csproj @@ -8,7 +8,7 @@ enable None true - Assets\moltbot.ico + Assets\openclaw.ico MoltbotTray app.manifest @@ -19,7 +19,7 @@ - + diff --git a/src/Moltbot.Tray.WinUI/Services/AutoStartManager.cs b/src/OpenClaw.Tray.WinUI/Services/AutoStartManager.cs similarity index 93% rename from src/Moltbot.Tray.WinUI/Services/AutoStartManager.cs rename to src/OpenClaw.Tray.WinUI/Services/AutoStartManager.cs index 3ad411e..1e0c641 100644 --- a/src/Moltbot.Tray.WinUI/Services/AutoStartManager.cs +++ b/src/OpenClaw.Tray.WinUI/Services/AutoStartManager.cs @@ -1,7 +1,7 @@ using Microsoft.Win32; using System; -namespace MoltbotTray.Services; +namespace OpenClawTray.Services; /// /// Manages Windows auto-start registry entries. @@ -9,7 +9,7 @@ namespace MoltbotTray.Services; public static class AutoStartManager { private const string RegistryKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; - private const string AppName = "MoltbotTray"; + private const string AppName = "OpenClawTray"; public static bool IsAutoStartEnabled() { diff --git a/src/Moltbot.Tray.WinUI/Services/DeepLinkHandler.cs b/src/OpenClaw.Tray.WinUI/Services/DeepLinkHandler.cs similarity index 92% rename from src/Moltbot.Tray.WinUI/Services/DeepLinkHandler.cs rename to src/OpenClaw.Tray.WinUI/Services/DeepLinkHandler.cs index 10b946f..8a727cf 100644 --- a/src/Moltbot.Tray.WinUI/Services/DeepLinkHandler.cs +++ b/src/OpenClaw.Tray.WinUI/Services/DeepLinkHandler.cs @@ -2,10 +2,10 @@ using Microsoft.Win32; using System; using System.Threading.Tasks; -namespace MoltbotTray.Services; +namespace OpenClawTray.Services; /// -/// Handles moltbot:// deep link URI scheme registration and processing. +/// Handles openclaw:// deep link URI scheme registration and processing. /// public static class DeepLinkHandler { @@ -28,7 +28,7 @@ public static class DeepLinkHandler using var commandKey = key?.CreateSubKey(@"shell\open\command"); commandKey?.SetValue("", $"\"{exePath}\" \"%1\""); - Logger.Info("URI scheme registered: moltbot://"); + Logger.Info("URI scheme registered: openclaw://"); } catch (Exception ex) { @@ -38,10 +38,10 @@ public static class DeepLinkHandler public static void Handle(string uri, DeepLinkActions actions) { - if (!uri.StartsWith("moltbot://", StringComparison.OrdinalIgnoreCase)) + if (!uri.StartsWith("openclaw://", StringComparison.OrdinalIgnoreCase)) return; - var path = uri["moltbot://".Length..].TrimEnd('/'); + var path = uri["openclaw://".Length..].TrimEnd('/'); var queryIndex = path.IndexOf('?'); var query = queryIndex >= 0 ? path[(queryIndex + 1)..] : ""; path = queryIndex >= 0 ? path[..queryIndex] : path; diff --git a/src/Moltbot.Tray.WinUI/Services/GlobalHotkeyService.cs b/src/OpenClaw.Tray.WinUI/Services/GlobalHotkeyService.cs similarity index 99% rename from src/Moltbot.Tray.WinUI/Services/GlobalHotkeyService.cs rename to src/OpenClaw.Tray.WinUI/Services/GlobalHotkeyService.cs index 949f374..6aad6f9 100644 --- a/src/Moltbot.Tray.WinUI/Services/GlobalHotkeyService.cs +++ b/src/OpenClaw.Tray.WinUI/Services/GlobalHotkeyService.cs @@ -1,7 +1,7 @@ using System; using System.Runtime.InteropServices; -namespace MoltbotTray.Services; +namespace OpenClawTray.Services; /// /// Registers and handles global hotkeys using P/Invoke. diff --git a/src/Moltbot.Tray.WinUI/Services/Logger.cs b/src/OpenClaw.Tray.WinUI/Services/Logger.cs similarity index 88% rename from src/Moltbot.Tray.WinUI/Services/Logger.cs rename to src/OpenClaw.Tray.WinUI/Services/Logger.cs index 6adda66..5eadc3b 100644 --- a/src/Moltbot.Tray.WinUI/Services/Logger.cs +++ b/src/OpenClaw.Tray.WinUI/Services/Logger.cs @@ -1,7 +1,7 @@ using System; using System.IO; -namespace MoltbotTray.Services; +namespace OpenClawTray.Services; /// /// Simple file logger for the tray application. @@ -16,10 +16,10 @@ public static class Logger { _logDirectory = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), - "MoltbotTray"); + "OpenClawTray"); Directory.CreateDirectory(_logDirectory); - _logFilePath = Path.Combine(_logDirectory, "moltbot-tray.log"); + _logFilePath = Path.Combine(_logDirectory, "openclaw-tray.log"); // Rotate log if too large (> 5MB) try @@ -27,7 +27,7 @@ public static class Logger var fileInfo = new FileInfo(_logFilePath); if (fileInfo.Exists && fileInfo.Length > 5 * 1024 * 1024) { - var backupPath = Path.Combine(_logDirectory, "moltbot-tray.log.old"); + var backupPath = Path.Combine(_logDirectory, "openclaw-tray.log.old"); if (File.Exists(backupPath)) File.Delete(backupPath); File.Move(_logFilePath, backupPath); } diff --git a/src/Moltbot.Tray.WinUI/Services/NotificationHistoryService.cs b/src/OpenClaw.Tray.WinUI/Services/NotificationHistoryService.cs similarity index 98% rename from src/Moltbot.Tray.WinUI/Services/NotificationHistoryService.cs rename to src/OpenClaw.Tray.WinUI/Services/NotificationHistoryService.cs index f9f9cb5..2ed9aa9 100644 --- a/src/Moltbot.Tray.WinUI/Services/NotificationHistoryService.cs +++ b/src/OpenClaw.Tray.WinUI/Services/NotificationHistoryService.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; -namespace MoltbotTray.Services; +namespace OpenClawTray.Services; /// /// Stores notification history in memory with a configurable limit. diff --git a/src/Moltbot.Tray.WinUI/Services/SettingsManager.cs b/src/OpenClaw.Tray.WinUI/Services/SettingsManager.cs similarity index 98% rename from src/Moltbot.Tray.WinUI/Services/SettingsManager.cs rename to src/OpenClaw.Tray.WinUI/Services/SettingsManager.cs index fc8a1f2..4d455b9 100644 --- a/src/Moltbot.Tray.WinUI/Services/SettingsManager.cs +++ b/src/OpenClaw.Tray.WinUI/Services/SettingsManager.cs @@ -2,7 +2,7 @@ using System; using System.IO; using System.Text.Json; -namespace MoltbotTray.Services; +namespace OpenClawTray.Services; /// /// Manages application settings with JSON persistence. @@ -11,7 +11,7 @@ public class SettingsManager { private static readonly string SettingsDirectory = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), - "MoltbotTray"); + "OpenClawTray"); private static readonly string SettingsFilePath = Path.Combine(SettingsDirectory, "settings.json"); diff --git a/src/Moltbot.Tray.WinUI/Windows/NotificationHistoryWindow.xaml b/src/OpenClaw.Tray.WinUI/Windows/NotificationHistoryWindow.xaml similarity index 100% rename from src/Moltbot.Tray.WinUI/Windows/NotificationHistoryWindow.xaml rename to src/OpenClaw.Tray.WinUI/Windows/NotificationHistoryWindow.xaml diff --git a/src/Moltbot.Tray.WinUI/Windows/NotificationHistoryWindow.xaml.cs b/src/OpenClaw.Tray.WinUI/Windows/NotificationHistoryWindow.xaml.cs similarity index 96% rename from src/Moltbot.Tray.WinUI/Windows/NotificationHistoryWindow.xaml.cs rename to src/OpenClaw.Tray.WinUI/Windows/NotificationHistoryWindow.xaml.cs index 1c24143..f64d8e8 100644 --- a/src/Moltbot.Tray.WinUI/Windows/NotificationHistoryWindow.xaml.cs +++ b/src/OpenClaw.Tray.WinUI/Windows/NotificationHistoryWindow.xaml.cs @@ -1,15 +1,15 @@ using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; -using Moltbot.Shared; -using MoltbotTray.Helpers; -using MoltbotTray.Services; +using OpenClaw.Shared; +using OpenClawTray.Helpers; +using OpenClawTray.Services; using System; using System.Collections.Generic; using System.Diagnostics; using System.Linq; using WinUIEx; -namespace MoltbotTray.Windows; +namespace OpenClawTray.Windows; public sealed partial class NotificationHistoryWindow : WindowEx { diff --git a/src/Moltbot.Tray.WinUI/Windows/SettingsWindow.xaml b/src/OpenClaw.Tray.WinUI/Windows/SettingsWindow.xaml similarity index 100% rename from src/Moltbot.Tray.WinUI/Windows/SettingsWindow.xaml rename to src/OpenClaw.Tray.WinUI/Windows/SettingsWindow.xaml diff --git a/src/Moltbot.Tray.WinUI/Windows/SettingsWindow.xaml.cs b/src/OpenClaw.Tray.WinUI/Windows/SettingsWindow.xaml.cs similarity index 96% rename from src/Moltbot.Tray.WinUI/Windows/SettingsWindow.xaml.cs rename to src/OpenClaw.Tray.WinUI/Windows/SettingsWindow.xaml.cs index c16e660..f769c3b 100644 --- a/src/Moltbot.Tray.WinUI/Windows/SettingsWindow.xaml.cs +++ b/src/OpenClaw.Tray.WinUI/Windows/SettingsWindow.xaml.cs @@ -1,13 +1,13 @@ using Microsoft.Toolkit.Uwp.Notifications; using Microsoft.UI.Xaml; -using Moltbot.Shared; -using MoltbotTray.Helpers; -using MoltbotTray.Services; +using OpenClaw.Shared; +using OpenClawTray.Helpers; +using OpenClawTray.Services; using System; using System.Threading.Tasks; using WinUIEx; -namespace MoltbotTray.Windows; +namespace OpenClawTray.Windows; public sealed partial class SettingsWindow : WindowEx { @@ -96,7 +96,7 @@ public sealed partial class SettingsWindow : WindowEx try { - var client = new MoltbotGatewayClient( + var client = new OpenClawGatewayClient( GatewayUrlTextBox.Text.Trim(), TokenTextBox.Text.Trim(), new TestLogger()); @@ -166,7 +166,7 @@ public sealed partial class SettingsWindow : WindowEx Close(); } - private class TestLogger : IMoltbotLogger + private class TestLogger : IOpenClawLogger { public void Info(string message) { } public void Warn(string message) { } diff --git a/src/Moltbot.Tray.WinUI/Windows/StatusDetailWindow.xaml b/src/OpenClaw.Tray.WinUI/Windows/StatusDetailWindow.xaml similarity index 100% rename from src/Moltbot.Tray.WinUI/Windows/StatusDetailWindow.xaml rename to src/OpenClaw.Tray.WinUI/Windows/StatusDetailWindow.xaml diff --git a/src/Moltbot.Tray.WinUI/Windows/StatusDetailWindow.xaml.cs b/src/OpenClaw.Tray.WinUI/Windows/StatusDetailWindow.xaml.cs similarity index 97% rename from src/Moltbot.Tray.WinUI/Windows/StatusDetailWindow.xaml.cs rename to src/OpenClaw.Tray.WinUI/Windows/StatusDetailWindow.xaml.cs index 0059beb..15b1678 100644 --- a/src/Moltbot.Tray.WinUI/Windows/StatusDetailWindow.xaml.cs +++ b/src/OpenClaw.Tray.WinUI/Windows/StatusDetailWindow.xaml.cs @@ -1,15 +1,15 @@ using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Media; using Microsoft.UI; -using Moltbot.Shared; -using MoltbotTray.Helpers; +using OpenClaw.Shared; +using OpenClawTray.Helpers; using System; using System.Collections.Generic; using System.Linq; using WinUIEx; using Windows.UI; -namespace MoltbotTray.Windows; +namespace OpenClawTray.Windows; public sealed partial class StatusDetailWindow : WindowEx { diff --git a/src/Moltbot.Tray.WinUI/Windows/TrayMenuWindow.xaml b/src/OpenClaw.Tray.WinUI/Windows/TrayMenuWindow.xaml similarity index 100% rename from src/Moltbot.Tray.WinUI/Windows/TrayMenuWindow.xaml rename to src/OpenClaw.Tray.WinUI/Windows/TrayMenuWindow.xaml diff --git a/src/Moltbot.Tray.WinUI/Windows/TrayMenuWindow.xaml.cs b/src/OpenClaw.Tray.WinUI/Windows/TrayMenuWindow.xaml.cs similarity index 99% rename from src/Moltbot.Tray.WinUI/Windows/TrayMenuWindow.xaml.cs rename to src/OpenClaw.Tray.WinUI/Windows/TrayMenuWindow.xaml.cs index 3849d7b..e942f6c 100644 --- a/src/Moltbot.Tray.WinUI/Windows/TrayMenuWindow.xaml.cs +++ b/src/OpenClaw.Tray.WinUI/Windows/TrayMenuWindow.xaml.cs @@ -1,12 +1,12 @@ using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Input; -using MoltbotTray.Helpers; +using OpenClawTray.Helpers; using System; using System.Runtime.InteropServices; using WinUIEx; -namespace MoltbotTray.Windows; +namespace OpenClawTray.Windows; /// /// A popup window that displays the tray menu at the cursor position. diff --git a/src/Moltbot.Tray.WinUI/Windows/WebChatWindow.xaml b/src/OpenClaw.Tray.WinUI/Windows/WebChatWindow.xaml similarity index 100% rename from src/Moltbot.Tray.WinUI/Windows/WebChatWindow.xaml rename to src/OpenClaw.Tray.WinUI/Windows/WebChatWindow.xaml diff --git a/src/Moltbot.Tray.WinUI/Windows/WebChatWindow.xaml.cs b/src/OpenClaw.Tray.WinUI/Windows/WebChatWindow.xaml.cs similarity index 96% rename from src/Moltbot.Tray.WinUI/Windows/WebChatWindow.xaml.cs rename to src/OpenClaw.Tray.WinUI/Windows/WebChatWindow.xaml.cs index 1112ce9..c12f89d 100644 --- a/src/Moltbot.Tray.WinUI/Windows/WebChatWindow.xaml.cs +++ b/src/OpenClaw.Tray.WinUI/Windows/WebChatWindow.xaml.cs @@ -1,8 +1,8 @@ using Microsoft.UI.Xaml; using Microsoft.Web.WebView2.Core; -using Moltbot.Shared; -using MoltbotTray.Helpers; -using MoltbotTray.Services; +using OpenClaw.Shared; +using OpenClawTray.Helpers; +using OpenClawTray.Services; using System; using System.Diagnostics; using System.IO; @@ -10,7 +10,7 @@ using System.Threading.Tasks; using WinUIEx; using Windows.Foundation; -namespace MoltbotTray.Windows; +namespace OpenClawTray.Windows; public sealed partial class WebChatWindow : WindowEx { @@ -64,7 +64,7 @@ public sealed partial class WebChatWindow : WindowEx // Set up user data folder via environment variable (WinUI 3 workaround) var userDataFolder = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), - "MoltbotTray", "WebView2"); + "OpenClawTray", "WebView2"); Directory.CreateDirectory(userDataFolder); Environment.SetEnvironmentVariable("WEBVIEW2_USER_DATA_FOLDER", userDataFolder); diff --git a/src/Moltbot.Tray.WinUI/app.manifest b/src/OpenClaw.Tray.WinUI/app.manifest similarity index 100% rename from src/Moltbot.Tray.WinUI/app.manifest rename to src/OpenClaw.Tray.WinUI/app.manifest diff --git a/src/Moltbot.Tray/.gitignore b/src/OpenClaw.Tray/.gitignore similarity index 100% rename from src/Moltbot.Tray/.gitignore rename to src/OpenClaw.Tray/.gitignore diff --git a/src/Moltbot.Tray/AutoStartManager.cs b/src/OpenClaw.Tray/AutoStartManager.cs similarity index 96% rename from src/Moltbot.Tray/AutoStartManager.cs rename to src/OpenClaw.Tray/AutoStartManager.cs index ff88a22..e439fe4 100644 --- a/src/Moltbot.Tray/AutoStartManager.cs +++ b/src/OpenClaw.Tray/AutoStartManager.cs @@ -9,7 +9,7 @@ namespace MoltbotTray; public static class AutoStartManager { private const string RegistryKeyPath = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"; - private const string ApplicationName = "MoltbotTray"; + private const string ApplicationName = "OpenClawTray"; public static void SetAutoStart(bool enabled) { diff --git a/src/Moltbot.Tray/DEVELOPMENT.md b/src/OpenClaw.Tray/DEVELOPMENT.md similarity index 100% rename from src/Moltbot.Tray/DEVELOPMENT.md rename to src/OpenClaw.Tray/DEVELOPMENT.md diff --git a/src/Moltbot.Tray/DeepLinkHandler.cs b/src/OpenClaw.Tray/DeepLinkHandler.cs similarity index 86% rename from src/Moltbot.Tray/DeepLinkHandler.cs rename to src/OpenClaw.Tray/DeepLinkHandler.cs index 51d50d2..0393dfa 100644 --- a/src/Moltbot.Tray/DeepLinkHandler.cs +++ b/src/OpenClaw.Tray/DeepLinkHandler.cs @@ -1,5 +1,5 @@ using Microsoft.Win32; -using Moltbot.Shared; +using OpenClaw.Shared; using System; using System.Collections.Specialized; using System.Threading.Tasks; @@ -9,8 +9,8 @@ using System.Windows.Forms; namespace MoltbotTray; /// -/// Handles moltbot:// URI scheme registration and processing. -/// Matches macOS deep link support (moltbot://agent?message=...) +/// Handles openclaw:// URI scheme registration and processing. +/// Matches macOS deep link support (openclaw://agent?message=...) /// public static class DeepLinkHandler { @@ -18,7 +18,7 @@ public static class DeepLinkHandler private const string FriendlyName = "Moltbot Agent Command"; /// - /// Registers the moltbot:// URI scheme in the Windows registry. + /// Registers the openclaw:// URI scheme in the Windows registry. /// Requires elevation for HKCR, falls back to HKCU. /// public static void RegisterUriScheme() @@ -72,15 +72,15 @@ public static class DeepLinkHandler } /// - /// Processes a moltbot:// deep link. + /// Processes a openclaw:// deep link. /// Supports: - /// moltbot://agent?message=... - /// moltbot://send?message=... (opens Quick Send with pre-filled text) - /// moltbot://dashboard - /// moltbot://chat - /// moltbot://settings + /// openclaw://agent?message=... + /// openclaw://send?message=... (opens Quick Send with pre-filled text) + /// openclaw://dashboard + /// openclaw://chat + /// openclaw://settings /// - public static async Task ProcessDeepLinkAsync(Uri uri, MoltbotGatewayClient client, Action? openDashboard = null, Action? openChat = null, Action? openSettings = null, Action? openQuickSend = null) + public static async Task ProcessDeepLinkAsync(Uri uri, OpenClawGatewayClient client, Action? openDashboard = null, Action? openChat = null, Action? openSettings = null, Action? openQuickSend = null) { Logger.Info($"Processing deep link: {uri}"); @@ -111,7 +111,7 @@ public static class DeepLinkHandler } } - private static async Task HandleAgentDeepLinkAsync(NameValueCollection query, MoltbotGatewayClient client) + private static async Task HandleAgentDeepLinkAsync(NameValueCollection query, OpenClawGatewayClient client) { var message = query["message"]; if (string.IsNullOrWhiteSpace(message)) diff --git a/src/Moltbot.Tray/DownloadProgressDialog.cs b/src/OpenClaw.Tray/DownloadProgressDialog.cs similarity index 100% rename from src/Moltbot.Tray/DownloadProgressDialog.cs rename to src/OpenClaw.Tray/DownloadProgressDialog.cs diff --git a/src/Moltbot.Tray/GlobalHotkey.cs b/src/OpenClaw.Tray/GlobalHotkey.cs similarity index 100% rename from src/Moltbot.Tray/GlobalHotkey.cs rename to src/OpenClaw.Tray/GlobalHotkey.cs diff --git a/src/Moltbot.Tray/IconHelper.cs b/src/OpenClaw.Tray/IconHelper.cs similarity index 100% rename from src/Moltbot.Tray/IconHelper.cs rename to src/OpenClaw.Tray/IconHelper.cs diff --git a/src/Moltbot.Tray/LICENSE b/src/OpenClaw.Tray/LICENSE similarity index 100% rename from src/Moltbot.Tray/LICENSE rename to src/OpenClaw.Tray/LICENSE diff --git a/src/Moltbot.Tray/Logger.cs b/src/OpenClaw.Tray/Logger.cs similarity index 85% rename from src/Moltbot.Tray/Logger.cs rename to src/OpenClaw.Tray/Logger.cs index 9f5b872..d0dc7a8 100644 --- a/src/Moltbot.Tray/Logger.cs +++ b/src/OpenClaw.Tray/Logger.cs @@ -1,26 +1,26 @@ using System; using System.Diagnostics; using System.IO; -using Moltbot.Shared; +using OpenClaw.Shared; namespace MoltbotTray; /// /// Simple file + debug logger for troubleshooting. -/// Writes to %LOCALAPPDATA%\MoltbotTray\moltbot-tray.log +/// Writes to %LOCALAPPDATA%\MoltbotTray\openclaw-tray.log /// public static class Logger { private static readonly string LogDir = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), - "MoltbotTray"); - private static readonly string LogPath = Path.Combine(LogDir, "moltbot-tray.log"); + "OpenClawTray"); + private static readonly string LogPath = Path.Combine(LogDir, "openclaw-tray.log"); private static readonly object Lock = new(); private static bool _initialized; private static StreamWriter? _writer; - /// Get a logger instance that implements IMoltbotLogger for the shared library. - public static IMoltbotLogger Instance { get; } = new LoggerAdapter(); + /// Get a logger instance that implements IOpenClawLogger for the shared library. + public static IOpenClawLogger Instance { get; } = new LoggerAdapter(); public static void Info(string message) => Write("INFO", message); public static void Warn(string message) => Write("WARN", message); @@ -89,8 +89,8 @@ public static class Logger } } - /// Adapter to make the static Logger work with IMoltbotLogger interface. - private class LoggerAdapter : IMoltbotLogger + /// Adapter to make the static Logger work with IOpenClawLogger interface. + private class LoggerAdapter : IOpenClawLogger { public void Info(string message) => Logger.Info(message); public void Warn(string message) => Logger.Warn(message); diff --git a/src/Moltbot.Tray/ModernForm.cs b/src/OpenClaw.Tray/ModernForm.cs similarity index 100% rename from src/Moltbot.Tray/ModernForm.cs rename to src/OpenClaw.Tray/ModernForm.cs diff --git a/src/Moltbot.Tray/ModernForm.resx b/src/OpenClaw.Tray/ModernForm.resx similarity index 100% rename from src/Moltbot.Tray/ModernForm.resx rename to src/OpenClaw.Tray/ModernForm.resx diff --git a/src/Moltbot.Tray/ModernTrayMenu.cs b/src/OpenClaw.Tray/ModernTrayMenu.cs similarity index 100% rename from src/Moltbot.Tray/ModernTrayMenu.cs rename to src/OpenClaw.Tray/ModernTrayMenu.cs diff --git a/src/Moltbot.Tray/NotificationHistoryForm.cs b/src/OpenClaw.Tray/NotificationHistoryForm.cs similarity index 100% rename from src/Moltbot.Tray/NotificationHistoryForm.cs rename to src/OpenClaw.Tray/NotificationHistoryForm.cs diff --git a/src/Moltbot.Tray/Moltbot.Tray.csproj b/src/OpenClaw.Tray/OpenClaw.Tray.csproj similarity index 91% rename from src/Moltbot.Tray/Moltbot.Tray.csproj rename to src/OpenClaw.Tray/OpenClaw.Tray.csproj index 179f165..f1f772b 100644 --- a/src/Moltbot.Tray/Moltbot.Tray.csproj +++ b/src/OpenClaw.Tray/OpenClaw.Tray.csproj @@ -8,7 +8,7 @@ enable true MSB3277 - moltbot.ico + openclaw.ico Moltbot Windows Tray Windows system tray companion app for Moltbot Scott Hanselman @@ -23,7 +23,7 @@ - + diff --git a/src/Moltbot.Tray/Program.cs b/src/OpenClaw.Tray/Program.cs similarity index 97% rename from src/Moltbot.Tray/Program.cs rename to src/OpenClaw.Tray/Program.cs index fb1a65a..d701b74 100644 --- a/src/Moltbot.Tray/Program.cs +++ b/src/OpenClaw.Tray/Program.cs @@ -23,11 +23,11 @@ internal static class Program static void Main(string[] args) { // Single instance check - using var mutex = new Mutex(true, "MoltbotTray", out bool createdNew); + using var mutex = new Mutex(true, "OpenClawTray", out bool createdNew); if (!createdNew) { // Forward deep link args to running instance via named pipe - if (args.Length > 0 && args[0].StartsWith("moltbot://", StringComparison.OrdinalIgnoreCase)) + if (args.Length > 0 && args[0].StartsWith("openclaw://", StringComparison.OrdinalIgnoreCase)) { SendDeepLinkToRunningInstance(args[0]); } diff --git a/src/Moltbot.Tray/QuickSendDialog.cs b/src/OpenClaw.Tray/QuickSendDialog.cs similarity index 100% rename from src/Moltbot.Tray/QuickSendDialog.cs rename to src/OpenClaw.Tray/QuickSendDialog.cs diff --git a/src/Moltbot.Tray/README.md b/src/OpenClaw.Tray/README.md similarity index 93% rename from src/Moltbot.Tray/README.md rename to src/OpenClaw.Tray/README.md index e646397..df3da45 100644 --- a/src/Moltbot.Tray/README.md +++ b/src/OpenClaw.Tray/README.md @@ -1,6 +1,6 @@ # Moltbot Windows Tray -A Windows system tray companion for [Moltbot](https://github.com/Moltbot/Moltbot) โ€” the Windows equivalent of the macOS menu bar app. Provides desktop notifications, embedded chat, live agent activity monitoring, and gateway status tracking. +A Windows system tray companion for [OpenClaw](https://moltbot.com) โ€” the Windows equivalent of the macOS menu bar app. Provides desktop notifications, embedded chat, live agent activity monitoring, and gateway status tracking. ## Features @@ -91,7 +91,7 @@ A Windows system tray companion for [Moltbot](https://github.com/Moltbot/Moltbot ```bash # In WSL2: -cat ~/.Moltbot/Moltbot.json | grep token +cat ~/.Moltbot/OpenClaw.json | grep token # Or: Moltbot config get gateway.auth.token ``` @@ -122,7 +122,7 @@ dotnet build -p:EnableWindowsTargeting=true -r win-x64 ``` โ”œโ”€โ”€ Program.cs # Entry point, single instance, deep link registration โ”œโ”€โ”€ TrayApplication.cs # Tray icon, menu, event wiring, UI updates -โ”œโ”€โ”€ MoltbotGatewayClient.cs # WebSocket client, protocol v3, event parsing, state tracking +โ”œโ”€โ”€ OpenClawGatewayClient.cs # WebSocket client, protocol v3, event parsing, state tracking โ”œโ”€โ”€ WebChatForm.cs # WebView2 chat panel (singleton, dark mode) โ”œโ”€โ”€ QuickSendDialog.cs # Quick message input (Enter to send, TopMost) โ”œโ”€โ”€ StatusDetailForm.cs # Rich status detail view (dark theme) @@ -138,7 +138,7 @@ dotnet build -p:EnableWindowsTargeting=true -r win-x64 ## macOS Parity Status -This Windows tray app aims for feature parity with the [Moltbot macOS menu bar app](https://github.com/Moltbot/Moltbot-macos). +This Windows tray app aims for feature parity with the [Moltbot macOS menu bar app](https://moltbot.com-macos). | Feature | macOS | Windows | Notes | |---------|:-----:|:-------:|-------| @@ -196,7 +196,7 @@ Settings are stored in `%APPDATA%\MoltbotTray\settings.json`: **Can't connect?** - Check gateway: `Moltbot gateway status` in WSL2 -- Verify token matches `~/.Moltbot/Moltbot.json` +- Verify token matches `~/.Moltbot/OpenClaw.json` - Try WSL2 IP directly: `ws://:18789` (`wsl hostname -I`) **No notifications?** @@ -222,5 +222,5 @@ MIT - Built with .NET 10, Windows Forms, and [WebView2](https://developer.microsoft.com/en-us/microsoft-edge/webview2/) - Toast notifications via [Microsoft.Toolkit.Uwp.Notifications](https://github.com/CommunityToolkit/WindowsCommunityToolkit) -- Part of the [Moltbot](https://github.com/Moltbot/Moltbot) ecosystem +- Part of the [Moltbot](https://moltbot.com) ecosystem diff --git a/src/Moltbot.Tray/SettingsDialog.cs b/src/OpenClaw.Tray/SettingsDialog.cs similarity index 99% rename from src/Moltbot.Tray/SettingsDialog.cs rename to src/OpenClaw.Tray/SettingsDialog.cs index 604b559..4e1941f 100644 --- a/src/Moltbot.Tray/SettingsDialog.cs +++ b/src/OpenClaw.Tray/SettingsDialog.cs @@ -1,5 +1,5 @@ using Microsoft.Toolkit.Uwp.Notifications; -using Moltbot.Shared; +using OpenClaw.Shared; using System; using System.Drawing; using System.Windows.Forms; @@ -282,7 +282,7 @@ public partial class SettingsDialog : ModernForm try { - var testClient = new MoltbotGatewayClient( + var testClient = new OpenClawGatewayClient( _gatewayUrlTextBox.Text.Trim(), _tokenTextBox.Text.Trim()); diff --git a/src/Moltbot.Tray/SettingsManager.cs b/src/OpenClaw.Tray/SettingsManager.cs similarity index 99% rename from src/Moltbot.Tray/SettingsManager.cs rename to src/OpenClaw.Tray/SettingsManager.cs index 57cc98f..50f959f 100644 --- a/src/Moltbot.Tray/SettingsManager.cs +++ b/src/OpenClaw.Tray/SettingsManager.cs @@ -9,7 +9,7 @@ public class SettingsManager { private static readonly string SettingsDirectory = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), - "MoltbotTray"); + "OpenClawTray"); private static readonly string SettingsFile = Path.Combine(SettingsDirectory, "settings.json"); diff --git a/src/Moltbot.Tray/StatusDetailForm.cs b/src/OpenClaw.Tray/StatusDetailForm.cs similarity index 95% rename from src/Moltbot.Tray/StatusDetailForm.cs rename to src/OpenClaw.Tray/StatusDetailForm.cs index 87bcee6..a2aec81 100644 --- a/src/Moltbot.Tray/StatusDetailForm.cs +++ b/src/OpenClaw.Tray/StatusDetailForm.cs @@ -1,4 +1,4 @@ -using Moltbot.Shared; +using OpenClaw.Shared; using System; using System.Drawing; using System.Text; @@ -14,13 +14,13 @@ public class StatusDetailForm : ModernForm private RichTextBox _textBox = null!; private Button _refreshButton = null!; private Button _closeButton = null!; - private readonly MoltbotGatewayClient? _client; + private readonly OpenClawGatewayClient? _client; private readonly SettingsManager? _settings; private readonly ConnectionStatus _status; private static StatusDetailForm? _instance; - public static void ShowOrFocus(MoltbotGatewayClient? client, SettingsManager? settings, ConnectionStatus status) + public static void ShowOrFocus(OpenClawGatewayClient? client, SettingsManager? settings, ConnectionStatus status) { if (_instance != null && !_instance.IsDisposed) { @@ -33,7 +33,7 @@ public class StatusDetailForm : ModernForm _instance.Show(); } - private StatusDetailForm(MoltbotGatewayClient? client, SettingsManager? settings, ConnectionStatus status) + private StatusDetailForm(OpenClawGatewayClient? client, SettingsManager? settings, ConnectionStatus status) { _client = client; _settings = settings; diff --git a/src/Moltbot.Tray/TrayApplication.cs b/src/OpenClaw.Tray/TrayApplication.cs similarity index 98% rename from src/Moltbot.Tray/TrayApplication.cs rename to src/OpenClaw.Tray/TrayApplication.cs index 6821df6..1f3630c 100644 --- a/src/Moltbot.Tray/TrayApplication.cs +++ b/src/OpenClaw.Tray/TrayApplication.cs @@ -1,5 +1,5 @@ using Microsoft.Toolkit.Uwp.Notifications; -using Moltbot.Shared; +using OpenClaw.Shared; using System; using System.Collections.Generic; using System.Diagnostics; @@ -18,7 +18,7 @@ public class TrayApplication : ApplicationContext private NotifyIcon? _notifyIcon; private ContextMenuStrip? _contextMenu; private ModernTrayMenu? _modernMenu; - private MoltbotGatewayClient? _gatewayClient; + private OpenClawGatewayClient? _gatewayClient; private SettingsManager? _settings; private System.Windows.Forms.Timer? _healthCheckTimer; private System.Windows.Forms.Timer? _sessionPollTimer; @@ -398,7 +398,7 @@ public class TrayApplication : ApplicationContext { try { - _gatewayClient = new MoltbotGatewayClient(_settings!.GatewayUrl, _settings.Token, Logger.Instance); + _gatewayClient = new OpenClawGatewayClient(_settings!.GatewayUrl, _settings.Token, Logger.Instance); _gatewayClient.StatusChanged += OnStatusChanged; _gatewayClient.NotificationReceived += OnNotificationReceived; _gatewayClient.ActivityChanged += OnActivityChanged; @@ -469,7 +469,7 @@ public class TrayApplication : ApplicationContext _syncContext?.Post(_ => UpdateStatus(status), null); } - private void OnNotificationReceived(object? sender, MoltbotNotification n) + private void OnNotificationReceived(object? sender, OpenClawNotification n) { _syncContext?.Post(_ => ShowNotificationToast(n.Title, n.Message, n.Type), null); } @@ -1062,8 +1062,8 @@ public class TrayApplication : ApplicationContext { var logDir = System.IO.Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), - "MoltbotTray"); - var logPath = System.IO.Path.Combine(logDir, "moltbot-tray.log"); + "OpenClawTray"); + var logPath = System.IO.Path.Combine(logDir, "openclaw-tray.log"); if (System.IO.File.Exists(logPath)) { @@ -1090,7 +1090,7 @@ public class TrayApplication : ApplicationContext _gatewayClient.Dispose(); } - _gatewayClient = new MoltbotGatewayClient(_settings!.GatewayUrl, _settings.Token, Logger.Instance); + _gatewayClient = new OpenClawGatewayClient(_settings!.GatewayUrl, _settings.Token, Logger.Instance); _gatewayClient.StatusChanged += OnStatusChanged; _gatewayClient.NotificationReceived += OnNotificationReceived; _gatewayClient.ActivityChanged += OnActivityChanged; diff --git a/src/Moltbot.Tray/UpdateDialog.cs b/src/OpenClaw.Tray/UpdateDialog.cs similarity index 100% rename from src/Moltbot.Tray/UpdateDialog.cs rename to src/OpenClaw.Tray/UpdateDialog.cs diff --git a/src/Moltbot.Tray/WebChatForm.cs b/src/OpenClaw.Tray/WebChatForm.cs similarity index 99% rename from src/Moltbot.Tray/WebChatForm.cs rename to src/OpenClaw.Tray/WebChatForm.cs index 7a2f577..76d8a94 100644 --- a/src/Moltbot.Tray/WebChatForm.cs +++ b/src/OpenClaw.Tray/WebChatForm.cs @@ -122,7 +122,7 @@ public class WebChatForm : ModernForm { var userDataDir = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), - "MoltbotTray", "WebView2"); + "OpenClawTray", "WebView2"); var env = await CoreWebView2Environment.CreateAsync(userDataFolder: userDataDir); await _webView!.EnsureCoreWebView2Async(env); diff --git a/src/Moltbot.Tray/WelcomeDialog.cs b/src/OpenClaw.Tray/WelcomeDialog.cs similarity index 100% rename from src/Moltbot.Tray/WelcomeDialog.cs rename to src/OpenClaw.Tray/WelcomeDialog.cs diff --git a/src/Moltbot.Tray/moltbot.ico b/src/OpenClaw.Tray/openclaw.ico similarity index 100% rename from src/Moltbot.Tray/moltbot.ico rename to src/OpenClaw.Tray/openclaw.ico diff --git a/src/Moltbot.Tray/screenshots/README.md b/src/OpenClaw.Tray/screenshots/README.md similarity index 100% rename from src/Moltbot.Tray/screenshots/README.md rename to src/OpenClaw.Tray/screenshots/README.md diff --git a/tests/Moltbot.Shared.Tests/ModelsTests.cs b/tests/OpenClaw.Shared.Tests/ModelsTests.cs similarity index 99% rename from tests/Moltbot.Shared.Tests/ModelsTests.cs rename to tests/OpenClaw.Shared.Tests/ModelsTests.cs index 171b831..63dda0c 100644 --- a/tests/Moltbot.Shared.Tests/ModelsTests.cs +++ b/tests/OpenClaw.Shared.Tests/ModelsTests.cs @@ -1,7 +1,7 @@ using Xunit; -using Moltbot.Shared; +using OpenClaw.Shared; -namespace Moltbot.Shared.Tests; +namespace OpenClaw.Shared.Tests; public class AgentActivityTests { diff --git a/tests/Moltbot.Shared.Tests/Moltbot.Shared.Tests.csproj b/tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj similarity index 88% rename from tests/Moltbot.Shared.Tests/Moltbot.Shared.Tests.csproj rename to tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj index 806cb18..c322211 100644 --- a/tests/Moltbot.Shared.Tests/Moltbot.Shared.Tests.csproj +++ b/tests/OpenClaw.Shared.Tests/OpenClaw.Shared.Tests.csproj @@ -19,7 +19,7 @@ - + diff --git a/tests/Moltbot.Shared.Tests/MoltbotGatewayClientTests.cs b/tests/OpenClaw.Shared.Tests/OpenClawGatewayClientTests.cs similarity index 92% rename from tests/Moltbot.Shared.Tests/MoltbotGatewayClientTests.cs rename to tests/OpenClaw.Shared.Tests/OpenClawGatewayClientTests.cs index d01fd7b..dd5ca32 100644 --- a/tests/Moltbot.Shared.Tests/MoltbotGatewayClientTests.cs +++ b/tests/OpenClaw.Shared.Tests/OpenClawGatewayClientTests.cs @@ -2,25 +2,25 @@ using System; using System.Collections.Generic; using System.Linq; using Xunit; -using Moltbot.Shared; +using OpenClaw.Shared; -namespace Moltbot.Shared.Tests; +namespace OpenClaw.Shared.Tests; -public class MoltbotGatewayClientTests +public class OpenClawGatewayClientTests { // Test helper to access private methods through reflection private class GatewayClientTestHelper { - private readonly MoltbotGatewayClient _client; + private readonly OpenClawGatewayClient _client; public GatewayClientTestHelper() { - _client = new MoltbotGatewayClient("ws://localhost:18789", "test-token", new TestLogger()); + _client = new OpenClawGatewayClient("ws://localhost:18789", "test-token", new TestLogger()); } public string ClassifyNotification(string text) { - var method = typeof(MoltbotGatewayClient).GetMethod("ClassifyNotification", + var method = typeof(OpenClawGatewayClient).GetMethod("ClassifyNotification", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static); var result = method!.Invoke(null, new object[] { text }); var tuple = ((string title, string type))result!; @@ -29,7 +29,7 @@ public class MoltbotGatewayClientTests public string GetNotificationTitle(string text) { - var method = typeof(MoltbotGatewayClient).GetMethod("ClassifyNotification", + var method = typeof(OpenClawGatewayClient).GetMethod("ClassifyNotification", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static); var result = method!.Invoke(null, new object[] { text }); var tuple = ((string title, string type))result!; @@ -38,7 +38,7 @@ public class MoltbotGatewayClientTests public ActivityKind ClassifyTool(string toolName) { - var method = typeof(MoltbotGatewayClient).GetMethod("ClassifyTool", + var method = typeof(OpenClawGatewayClient).GetMethod("ClassifyTool", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static); var result = method!.Invoke(null, new object[] { toolName }); return (ActivityKind)result!; @@ -46,7 +46,7 @@ public class MoltbotGatewayClientTests public string ShortenPath(string path) { - var method = typeof(MoltbotGatewayClient).GetMethod("ShortenPath", + var method = typeof(OpenClawGatewayClient).GetMethod("ShortenPath", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static); var result = method!.Invoke(null, new object[] { path }); return (string)result!; @@ -54,7 +54,7 @@ public class MoltbotGatewayClientTests public string TruncateLabel(string text, int maxLen = 60) { - var method = typeof(MoltbotGatewayClient).GetMethod("TruncateLabel", + var method = typeof(OpenClawGatewayClient).GetMethod("TruncateLabel", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Static); var result = method!.Invoke(null, new object[] { text, maxLen }); return (string)result!; @@ -66,7 +66,7 @@ public class MoltbotGatewayClientTests } } - private class TestLogger : IMoltbotLogger + private class TestLogger : IOpenClawLogger { public List Logs { get; } = new(); @@ -323,7 +323,7 @@ public class MoltbotGatewayClientTests public void Constructor_InitializesWithProvidedValues() { var logger = new TestLogger(); - var client = new MoltbotGatewayClient("ws://test:8080", "my-token", logger); + var client = new OpenClawGatewayClient("ws://test:8080", "my-token", logger); // Should not throw Assert.NotNull(client); @@ -332,7 +332,7 @@ public class MoltbotGatewayClientTests [Fact] public void Constructor_UsesNullLogger_WhenNotProvided() { - var client = new MoltbotGatewayClient("ws://test:8080", "my-token"); + var client = new OpenClawGatewayClient("ws://test:8080", "my-token"); // Should not throw Assert.NotNull(client); diff --git a/tests/Moltbot.Shared.Tests/README.md b/tests/OpenClaw.Shared.Tests/README.md similarity index 93% rename from tests/Moltbot.Shared.Tests/README.md rename to tests/OpenClaw.Shared.Tests/README.md index 90b9ac3..c333806 100644 --- a/tests/Moltbot.Shared.Tests/README.md +++ b/tests/OpenClaw.Shared.Tests/README.md @@ -1,10 +1,10 @@ -# Moltbot.Shared.Tests +# OpenClaw.Shared.Tests -Unit test suite for the Moltbot.Shared library. +Unit test suite for the OpenClaw.Shared library. ## Overview -This test project provides comprehensive coverage of the Moltbot.Shared library, focusing on: +This test project provides comprehensive coverage of the OpenClaw.Shared library, focusing on: - Data model display text generation - Gateway client utility methods - Notification classification @@ -59,7 +59,7 @@ dotnet test --filter "FullyQualifiedName~AgentActivityTests" - โœ… Combined field formatting - โœ… Empty state ("No usage data") -### MoltbotGatewayClientTests.cs (20 tests) +### OpenClawGatewayClientTests.cs (20 tests) #### Notification Classification (11 tests) - โœ… Health alerts (blood sugar, glucose, CGM, mg/dl) @@ -141,7 +141,7 @@ Some functionality is Windows-only (Tray app, PowerToys extension), but the Shar ## Contributing -When adding new functionality to `Moltbot.Shared`: +When adding new functionality to `OpenClaw.Shared`: 1. Add corresponding unit tests 2. Ensure tests are cross-platform compatible 3. Test edge cases (empty strings, null values, very long inputs) @@ -151,7 +151,7 @@ When adding new functionality to `Moltbot.Shared`: - xUnit 2.9.3 - Test framework - .NET 9.0 - Runtime -- Moltbot.Shared library +- OpenClaw.Shared library ## License diff --git a/tools/cmdpal-dev.ps1 b/tools/cmdpal-dev.ps1 index 45bb56e..ab00108 100644 --- a/tools/cmdpal-dev.ps1 +++ b/tools/cmdpal-dev.ps1 @@ -9,7 +9,7 @@ param( $ErrorActionPreference = 'Stop' $RepoRoot = Split-Path -Parent $PSScriptRoot -$ProjectPath = "$RepoRoot\src\Moltbot.CommandPalette" +$ProjectPath = "$RepoRoot\src\OpenClaw.CommandPalette" # Detect architecture $Arch = if ([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -eq 'Arm64') { 'arm64' } else { 'x64' } @@ -18,7 +18,7 @@ $OutputPath = "$ProjectPath\bin\$Arch\Debug\net10.0-windows10.0.26100.0\win-$Arc function Write-Step($msg) { Write-Host "`n>> $msg" -ForegroundColor Cyan } function Get-InstalledPackage { - Get-AppxPackage -Name "*Moltbot*" 2>$null + Get-AppxPackage -Name "*OpenClaw*" 2>$null } function Remove-ExtensionPackage { @@ -35,7 +35,7 @@ function Remove-ExtensionPackage { function Build-Extension { Write-Step "Building Command Palette ($Arch)..." Push-Location $RepoRoot - dotnet build src/Moltbot.CommandPalette -c Debug -p:Platform=$Arch + dotnet build src/OpenClaw.CommandPalette -c Debug -p:Platform=$Arch if ($LASTEXITCODE -ne 0) { throw "Build failed" } Pop-Location Write-Host "Build succeeded!" -ForegroundColor Green @@ -51,7 +51,7 @@ function Deploy-Extension { # Register for development (loose files, no MSIX needed) Add-AppxPackage -Register $manifest -ForceApplicationShutdown - Write-Host "Deployed! Open Command Palette, type 'Reload', then 'Moltbot'" -ForegroundColor Green + Write-Host "Deployed! Open Command Palette, type 'Reload', then 'OpenClaw'" -ForegroundColor Green } function Show-Status { @@ -76,6 +76,6 @@ switch ($Action) { Remove-ExtensionPackage Build-Extension Deploy-Extension - Write-Host "`n=== In Command Palette: type 'Reload' then 'Moltbot' ===" -ForegroundColor Magenta + Write-Host "`n=== In Command Palette: type 'Reload' then 'OpenClaw' ===" -ForegroundColor Magenta } }