Releases: sharpninja/remote-agent
Releases · sharpninja/remote-agent
Beta v1.0.0-develop.2 (build 164)
Changes in this beta
- Replace .NET splash screen logo with app icon (032e786)
- CQRS server profile handlers + clear API key feature (bfdc4da)
- Fix Android Enter-to-send, icon-only Send button, compact button padding (5ceb870)
- Add FR-19/20, TR-21/22: server profiles and mobile chat UX requirements (6384ba0)
- Make Enter key send message on Android (41796c9)
- Add server profiles: save connection details per host:port (2d2b678)
- Hide connection card in chat view when already connected (22da942)
- Hide navigation until connection and session are established (b3d01ac)
- Migrate GetSessionCapacityAsync to gRPC, remove dead HTTP helpers (a6e698c)
- Hardcode server connection mode on Android, remove mode selector dialog (9ef7799)
- docs: add FR-17/18 and TR-19/20 for device pairing, API key management, and desktop UX (5b4f109)
- docs: update session handoff 2026-02-20 (a7add4c)
- Replace QR camera scanner with server login webview for pairing (1dfe673)
- Fix: generate QR code server-side (embedded PNG) instead of CDN JS (0a3e7e7)
- Style: global 4px margin on all interactive/display controls in Avalonia app (324f229)
- UX: SelectableTextBlock everywhere in Avalonia; simplify mobile login UI; persist ApiKey on connect (0b491de)
- Fix: use Shell.Current.Navigation + MainThread for QR scanner modal push (25a470e)
- Fix: forward ApiKey to server info and capacity checks in ConnectMobileSessionHandler (ddaa2f1)
- Feat: generate and return API key when saving pairing user (2c30fd5)
- Fix: use IOptionsMonitor so /pair reloads after SetPairingUsers writes appsettings.json (db645e3)
- feat: SetPairingUsers — PS script + Desktop toolbar + gRPC RPC (f37e28e)
- feat: serve /pair web UI on dedicated HTTP/1+2 port (1+gRPC port) (b0d82d5)
- Merge Build MSIX workflow into Build and Deploy pipeline (bd06f38)
- Fix MSIX CI: exit 0 to prevent LASTEXITCODE leak from native commands (0e5e9bf)
- fix: replace obsolete Frame with Border in QrScannerPage; fix nullable sender in event handlers (3767edb)
- feat: add camera QR scan pairing flow with ZXing.Net.Maui and Android deep link support (1a3a2e7)
- refactor: serialise Connect writes via Channel; remove dead code (85e91d5)
- chore: bump next-version to 0.1.12 (2ad92ae)
- docs: session handoff 2026-02-19T21-06-54-0600 (fe2a68b)
- fix: wire MessageReceived/ConnectionStateChanged before connecting session (ea42807)
- feat: end server session when closing a tab (94a65e9)
- feat: use shared app logo in desktop window and MSIX (85374ab)
- feat: migrate 13 management REST endpoints to gRPC; revert to Http2-only (8cd2862)
- fix: set Kestrel EndpointDefaults to Http1AndHttp2 in appsettings.json (ea30a88)
- fix: use Http1AndHttp2 + h2c switch to allow gRPC and REST on same port (a143ffd)
- feat: centralize service port in ServiceDefaults; enforce port picker with tests (c4752ee)
- feat: replace port Entry with Picker on mobile; default to 5244 (69a8f70)
- fix: use Http2 (h2c) for cleartext gRPC endpoint (e297d8b)
- fix: checkout submodules in build-msix CI job (915fc55)
- docs: session handoff 2026-02-19T18-35-50-0600 (d5eb6ad)
- Merge branch 'main' into develop (7f6bf06)
- feat: versioned Windows service display name (19f301e)
- feat: add Windows Event Log as ILogger provider (23f5d82)
- feat: expose DbPath on ILocalStorage; log connection details on open (5ff90ad)
- chore: commit working tree changes before PR (b26b3a8)
- Add .deb build job and GitHub Release to pipeline (1247a7e)
- Fix Build MSIX: upgrade gittools/actions to v3 for GitVersion 6.x (94a07f9)
- Add Open Logs Folder button to status log viewer; icon-only buttons (026f1a2)
- Fix Windows port binding: use ConfigureKestrel instead of UseUrls (f67685b)
- Fix Windows port: bind to 5243 (not 5244) on Windows (658195b)
- Extract navigation panels to UserControls with IsVisible bindings (6df3aa2)
- Add Open Logs Folder button to App Log section (CQRS + tests) (cb47ae1)
- Add directive: UI buttons require CQRS handler + complete tests (c49dee8)
- Refactor copy-status-log to follow CQRS pattern with tests (acfef9a)
- Use Segoe MDL2 Assets for icons and Segoe UI as base font on Windows (70682bd)
- chore: update MsixTools submodule (add MCP server) (4473082)
- chore: update MsixTools submodule to include bump params (5d45758)
- refactor: wrapper scripts are now zero-logic param forwarders (3b67902)
- chore: add MsixTools as git submodule (a749871)
- chore: remove inline MsixTools (replaced by submodule) (a8a912f)
- feat: add -NoBuild flag; make -Clean and -NoBuild mutually exclusive (7821b41)
- fix: use Convert-Path to establish absolute WorkspaceRoot (f1a3187)
- fix: resolve WorkspaceRoot to absolute path at function entry (f3145ed)
- fix: resolve OutDir to absolute path before icon generation (131c689)
- feat: MsixTools PowerShell module with YAML-driven config (3d71056)
- feat: add -BumpMajor/-BumpMinor/-BumpPatch flags to package-msix.ps1 (bca1fab)
- fix: use Directory.Delete for robust bin/obj removal in -Clean (5834173)
- feat: add -Install flag to package-msix.ps1 (c4219a5)
- fix: replace dotnet clean with direct bin/obj deletion in -Clean (c7316a1)
- fix: restore packages after dotnet clean before publish (dc131c6)
- fix: remove --configfile from dotnet clean (unsupported flag) (a1a131e)
- fix: close desktop app before MSIX update to resolve 0x80073D02 (7ece071)
- fix: stop service before MSIX update to avoid locked-file deployment failure (62d625b)
- fix: navigate to Sessions view after successful connection (9bf403e)
- feat: add -Clean flag to package-msix.ps1 (383cfdc)
- fix: auto-sign unsigned MSIX with dev cert instead of using -AllowUnsigned (b130917)
- fix: auto-detect unsigned MSIX and pass -AllowUnsigned in install script (880d87e)
- fix: pause after manifest write to show version provenance and manifest content (98d3d86)
- fix: print calculated version at end of package-msix.ps1 (0fdc454)
- fix: add version source diagnostic logging to package-msix.ps1 (cef353b)
- fix: read GitVersion.yml before git describe in version fallback (31d3d7c)
- fix: MSIX versioning, single-file self-contained packaging, and version bump script (8897a32)
- [WIP] Add direct FR/TR annotations for test methods (#16) (6c36350)
- Merge branch 'main' into develop (fee4f52)
- Fix obsolete MAUI Page method calls in MauiPlatformServices (c9d16c4)
- docs: fix all 505 broken DocFX breadcrumb links (5451a85)
- docs: rebuild README; fix broken doc links (6045eb6)
- docs: add DocFX API+testing reference; add XML docs to all test classes (0fdb33c)
- docs: add session handoff 2026-02-19T00-04-44 (6a7a370)
- docs: mark FR-12.12 Done, update test count to 240, mark all todos complete (95c9313)
- test: Phase 3d — mobile handler unit tests (8 handlers, 22 tests) (f7839ab)
Docker image
Pull the service image from GitHub Container Registry:
docker pull ghcr.io/sharpninja/remote-agent/service:latest
docker pull ghcr.io/sharpninja/remote-agent/service@sha256:78438f892a0322867cc4e86115d1e6f559fe2e7cd15b8e1bf4c6f79a3c3fb5c5
Beta v1.0.0-develop.2 (build 162)
Changes in this beta
- Fix Android Enter-to-send, icon-only Send button, compact button padding (5ceb870)
- Add FR-19/20, TR-21/22: server profiles and mobile chat UX requirements (6384ba0)
- Make Enter key send message on Android (41796c9)
- Add server profiles: save connection details per host:port (2d2b678)
- Hide connection card in chat view when already connected (22da942)
- Hide navigation until connection and session are established (b3d01ac)
- Migrate GetSessionCapacityAsync to gRPC, remove dead HTTP helpers (a6e698c)
- Hardcode server connection mode on Android, remove mode selector dialog (9ef7799)
- docs: add FR-17/18 and TR-19/20 for device pairing, API key management, and desktop UX (5b4f109)
- docs: update session handoff 2026-02-20 (a7add4c)
- Replace QR camera scanner with server login webview for pairing (1dfe673)
- Fix: generate QR code server-side (embedded PNG) instead of CDN JS (0a3e7e7)
- Style: global 4px margin on all interactive/display controls in Avalonia app (324f229)
- UX: SelectableTextBlock everywhere in Avalonia; simplify mobile login UI; persist ApiKey on connect (0b491de)
- Fix: use Shell.Current.Navigation + MainThread for QR scanner modal push (25a470e)
- Fix: forward ApiKey to server info and capacity checks in ConnectMobileSessionHandler (ddaa2f1)
- Feat: generate and return API key when saving pairing user (2c30fd5)
- Fix: use IOptionsMonitor so /pair reloads after SetPairingUsers writes appsettings.json (db645e3)
- feat: SetPairingUsers — PS script + Desktop toolbar + gRPC RPC (f37e28e)
- feat: serve /pair web UI on dedicated HTTP/1+2 port (1+gRPC port) (b0d82d5)
- Merge Build MSIX workflow into Build and Deploy pipeline (bd06f38)
- Fix MSIX CI: exit 0 to prevent LASTEXITCODE leak from native commands (0e5e9bf)
- fix: replace obsolete Frame with Border in QrScannerPage; fix nullable sender in event handlers (3767edb)
- feat: add camera QR scan pairing flow with ZXing.Net.Maui and Android deep link support (1a3a2e7)
- refactor: serialise Connect writes via Channel; remove dead code (85e91d5)
- chore: bump next-version to 0.1.12 (2ad92ae)
- docs: session handoff 2026-02-19T21-06-54-0600 (fe2a68b)
- fix: wire MessageReceived/ConnectionStateChanged before connecting session (ea42807)
- feat: end server session when closing a tab (94a65e9)
- feat: use shared app logo in desktop window and MSIX (85374ab)
- feat: migrate 13 management REST endpoints to gRPC; revert to Http2-only (8cd2862)
- fix: set Kestrel EndpointDefaults to Http1AndHttp2 in appsettings.json (ea30a88)
- fix: use Http1AndHttp2 + h2c switch to allow gRPC and REST on same port (a143ffd)
- feat: centralize service port in ServiceDefaults; enforce port picker with tests (c4752ee)
- feat: replace port Entry with Picker on mobile; default to 5244 (69a8f70)
- fix: use Http2 (h2c) for cleartext gRPC endpoint (e297d8b)
- fix: checkout submodules in build-msix CI job (915fc55)
- docs: session handoff 2026-02-19T18-35-50-0600 (d5eb6ad)
- Merge branch 'main' into develop (7f6bf06)
- feat: versioned Windows service display name (19f301e)
- feat: add Windows Event Log as ILogger provider (23f5d82)
- feat: expose DbPath on ILocalStorage; log connection details on open (5ff90ad)
- chore: commit working tree changes before PR (b26b3a8)
- Add .deb build job and GitHub Release to pipeline (1247a7e)
- Fix Build MSIX: upgrade gittools/actions to v3 for GitVersion 6.x (94a07f9)
- Add Open Logs Folder button to status log viewer; icon-only buttons (026f1a2)
- Fix Windows port binding: use ConfigureKestrel instead of UseUrls (f67685b)
- Fix Windows port: bind to 5243 (not 5244) on Windows (658195b)
- Extract navigation panels to UserControls with IsVisible bindings (6df3aa2)
- Add Open Logs Folder button to App Log section (CQRS + tests) (cb47ae1)
- Add directive: UI buttons require CQRS handler + complete tests (c49dee8)
- Refactor copy-status-log to follow CQRS pattern with tests (acfef9a)
- Use Segoe MDL2 Assets for icons and Segoe UI as base font on Windows (70682bd)
- chore: update MsixTools submodule (add MCP server) (4473082)
- chore: update MsixTools submodule to include bump params (5d45758)
- refactor: wrapper scripts are now zero-logic param forwarders (3b67902)
- chore: add MsixTools as git submodule (a749871)
- chore: remove inline MsixTools (replaced by submodule) (a8a912f)
- feat: add -NoBuild flag; make -Clean and -NoBuild mutually exclusive (7821b41)
- fix: use Convert-Path to establish absolute WorkspaceRoot (f1a3187)
- fix: resolve WorkspaceRoot to absolute path at function entry (f3145ed)
- fix: resolve OutDir to absolute path before icon generation (131c689)
- feat: MsixTools PowerShell module with YAML-driven config (3d71056)
- feat: add -BumpMajor/-BumpMinor/-BumpPatch flags to package-msix.ps1 (bca1fab)
- fix: use Directory.Delete for robust bin/obj removal in -Clean (5834173)
- feat: add -Install flag to package-msix.ps1 (c4219a5)
- fix: replace dotnet clean with direct bin/obj deletion in -Clean (c7316a1)
- fix: restore packages after dotnet clean before publish (dc131c6)
- fix: remove --configfile from dotnet clean (unsupported flag) (a1a131e)
- fix: close desktop app before MSIX update to resolve 0x80073D02 (7ece071)
- fix: stop service before MSIX update to avoid locked-file deployment failure (62d625b)
- fix: navigate to Sessions view after successful connection (9bf403e)
- feat: add -Clean flag to package-msix.ps1 (383cfdc)
- fix: auto-sign unsigned MSIX with dev cert instead of using -AllowUnsigned (b130917)
- fix: auto-detect unsigned MSIX and pass -AllowUnsigned in install script (880d87e)
- fix: pause after manifest write to show version provenance and manifest content (98d3d86)
- fix: print calculated version at end of package-msix.ps1 (0fdc454)
- fix: add version source diagnostic logging to package-msix.ps1 (cef353b)
- fix: read GitVersion.yml before git describe in version fallback (31d3d7c)
- fix: MSIX versioning, single-file self-contained packaging, and version bump script (8897a32)
- [WIP] Add direct FR/TR annotations for test methods (#16) (6c36350)
- Merge branch 'main' into develop (fee4f52)
- Fix obsolete MAUI Page method calls in MauiPlatformServices (c9d16c4)
- docs: fix all 505 broken DocFX breadcrumb links (5451a85)
- docs: rebuild README; fix broken doc links (6045eb6)
- docs: add DocFX API+testing reference; add XML docs to all test classes (0fdb33c)
- docs: add session handoff 2026-02-19T00-04-44 (6a7a370)
- docs: mark FR-12.12 Done, update test count to 240, mark all todos complete (95c9313)
- test: Phase 3d — mobile handler unit tests (8 handlers, 22 tests) (f7839ab)
Docker image
Pull the service image from GitHub Container Registry:
docker pull ghcr.io/sharpninja/remote-agent/service:latest
docker pull ghcr.io/sharpninja/remote-agent/service@sha256:147d5869658bdb989ba2d3658c3a4875391ad6c91715ce1169ddd5f28c722a13
Beta v1.0.0-develop.2 (build 159)
Changes in this beta
- Add server profiles: save connection details per host:port (2d2b678)
- Hide connection card in chat view when already connected (22da942)
- Hide navigation until connection and session are established (b3d01ac)
- Migrate GetSessionCapacityAsync to gRPC, remove dead HTTP helpers (a6e698c)
- Hardcode server connection mode on Android, remove mode selector dialog (9ef7799)
- docs: add FR-17/18 and TR-19/20 for device pairing, API key management, and desktop UX (5b4f109)
- docs: update session handoff 2026-02-20 (a7add4c)
- Replace QR camera scanner with server login webview for pairing (1dfe673)
- Fix: generate QR code server-side (embedded PNG) instead of CDN JS (0a3e7e7)
- Style: global 4px margin on all interactive/display controls in Avalonia app (324f229)
- UX: SelectableTextBlock everywhere in Avalonia; simplify mobile login UI; persist ApiKey on connect (0b491de)
- Fix: use Shell.Current.Navigation + MainThread for QR scanner modal push (25a470e)
- Fix: forward ApiKey to server info and capacity checks in ConnectMobileSessionHandler (ddaa2f1)
- Feat: generate and return API key when saving pairing user (2c30fd5)
- Fix: use IOptionsMonitor so /pair reloads after SetPairingUsers writes appsettings.json (db645e3)
- feat: SetPairingUsers — PS script + Desktop toolbar + gRPC RPC (f37e28e)
- feat: serve /pair web UI on dedicated HTTP/1+2 port (1+gRPC port) (b0d82d5)
- Merge Build MSIX workflow into Build and Deploy pipeline (bd06f38)
- Fix MSIX CI: exit 0 to prevent LASTEXITCODE leak from native commands (0e5e9bf)
- fix: replace obsolete Frame with Border in QrScannerPage; fix nullable sender in event handlers (3767edb)
- feat: add camera QR scan pairing flow with ZXing.Net.Maui and Android deep link support (1a3a2e7)
- refactor: serialise Connect writes via Channel; remove dead code (85e91d5)
- chore: bump next-version to 0.1.12 (2ad92ae)
- docs: session handoff 2026-02-19T21-06-54-0600 (fe2a68b)
- fix: wire MessageReceived/ConnectionStateChanged before connecting session (ea42807)
- feat: end server session when closing a tab (94a65e9)
- feat: use shared app logo in desktop window and MSIX (85374ab)
- feat: migrate 13 management REST endpoints to gRPC; revert to Http2-only (8cd2862)
- fix: set Kestrel EndpointDefaults to Http1AndHttp2 in appsettings.json (ea30a88)
- fix: use Http1AndHttp2 + h2c switch to allow gRPC and REST on same port (a143ffd)
- feat: centralize service port in ServiceDefaults; enforce port picker with tests (c4752ee)
- feat: replace port Entry with Picker on mobile; default to 5244 (69a8f70)
- fix: use Http2 (h2c) for cleartext gRPC endpoint (e297d8b)
- fix: checkout submodules in build-msix CI job (915fc55)
- docs: session handoff 2026-02-19T18-35-50-0600 (d5eb6ad)
- Merge branch 'main' into develop (7f6bf06)
- feat: versioned Windows service display name (19f301e)
- feat: add Windows Event Log as ILogger provider (23f5d82)
- feat: expose DbPath on ILocalStorage; log connection details on open (5ff90ad)
- chore: commit working tree changes before PR (b26b3a8)
- Add .deb build job and GitHub Release to pipeline (1247a7e)
- Fix Build MSIX: upgrade gittools/actions to v3 for GitVersion 6.x (94a07f9)
- Add Open Logs Folder button to status log viewer; icon-only buttons (026f1a2)
- Fix Windows port binding: use ConfigureKestrel instead of UseUrls (f67685b)
- Fix Windows port: bind to 5243 (not 5244) on Windows (658195b)
- Extract navigation panels to UserControls with IsVisible bindings (6df3aa2)
- Add Open Logs Folder button to App Log section (CQRS + tests) (cb47ae1)
- Add directive: UI buttons require CQRS handler + complete tests (c49dee8)
- Refactor copy-status-log to follow CQRS pattern with tests (acfef9a)
- Use Segoe MDL2 Assets for icons and Segoe UI as base font on Windows (70682bd)
- chore: update MsixTools submodule (add MCP server) (4473082)
- chore: update MsixTools submodule to include bump params (5d45758)
- refactor: wrapper scripts are now zero-logic param forwarders (3b67902)
- chore: add MsixTools as git submodule (a749871)
- chore: remove inline MsixTools (replaced by submodule) (a8a912f)
- feat: add -NoBuild flag; make -Clean and -NoBuild mutually exclusive (7821b41)
- fix: use Convert-Path to establish absolute WorkspaceRoot (f1a3187)
- fix: resolve WorkspaceRoot to absolute path at function entry (f3145ed)
- fix: resolve OutDir to absolute path before icon generation (131c689)
- feat: MsixTools PowerShell module with YAML-driven config (3d71056)
- feat: add -BumpMajor/-BumpMinor/-BumpPatch flags to package-msix.ps1 (bca1fab)
- fix: use Directory.Delete for robust bin/obj removal in -Clean (5834173)
- feat: add -Install flag to package-msix.ps1 (c4219a5)
- fix: replace dotnet clean with direct bin/obj deletion in -Clean (c7316a1)
- fix: restore packages after dotnet clean before publish (dc131c6)
- fix: remove --configfile from dotnet clean (unsupported flag) (a1a131e)
- fix: close desktop app before MSIX update to resolve 0x80073D02 (7ece071)
- fix: stop service before MSIX update to avoid locked-file deployment failure (62d625b)
- fix: navigate to Sessions view after successful connection (9bf403e)
- feat: add -Clean flag to package-msix.ps1 (383cfdc)
- fix: auto-sign unsigned MSIX with dev cert instead of using -AllowUnsigned (b130917)
- fix: auto-detect unsigned MSIX and pass -AllowUnsigned in install script (880d87e)
- fix: pause after manifest write to show version provenance and manifest content (98d3d86)
- fix: print calculated version at end of package-msix.ps1 (0fdc454)
- fix: add version source diagnostic logging to package-msix.ps1 (cef353b)
- fix: read GitVersion.yml before git describe in version fallback (31d3d7c)
- fix: MSIX versioning, single-file self-contained packaging, and version bump script (8897a32)
- [WIP] Add direct FR/TR annotations for test methods (#16) (6c36350)
- Merge branch 'main' into develop (fee4f52)
- Fix obsolete MAUI Page method calls in MauiPlatformServices (c9d16c4)
- docs: fix all 505 broken DocFX breadcrumb links (5451a85)
- docs: rebuild README; fix broken doc links (6045eb6)
- docs: add DocFX API+testing reference; add XML docs to all test classes (0fdb33c)
- docs: add session handoff 2026-02-19T00-04-44 (6a7a370)
- docs: mark FR-12.12 Done, update test count to 240, mark all todos complete (95c9313)
- test: Phase 3d — mobile handler unit tests (8 handlers, 22 tests) (f7839ab)
Docker image
Pull the service image from GitHub Container Registry:
docker pull ghcr.io/sharpninja/remote-agent/service:latest
docker pull ghcr.io/sharpninja/remote-agent/service@sha256:a9b5a8e2286b919ee28c7b5e23ababb7dcee76255df8561f5d41e3f606bc737d
Beta v1.0.0-develop.2 (build 156)
Changes in this beta
- Replace QR camera scanner with server login webview for pairing (1dfe673)
- Fix: generate QR code server-side (embedded PNG) instead of CDN JS (0a3e7e7)
- Style: global 4px margin on all interactive/display controls in Avalonia app (324f229)
- UX: SelectableTextBlock everywhere in Avalonia; simplify mobile login UI; persist ApiKey on connect (0b491de)
- Fix: use Shell.Current.Navigation + MainThread for QR scanner modal push (25a470e)
- Fix: forward ApiKey to server info and capacity checks in ConnectMobileSessionHandler (ddaa2f1)
- Feat: generate and return API key when saving pairing user (2c30fd5)
- Fix: use IOptionsMonitor so /pair reloads after SetPairingUsers writes appsettings.json (db645e3)
- feat: SetPairingUsers — PS script + Desktop toolbar + gRPC RPC (f37e28e)
- feat: serve /pair web UI on dedicated HTTP/1+2 port (1+gRPC port) (b0d82d5)
- Merge Build MSIX workflow into Build and Deploy pipeline (bd06f38)
- Fix MSIX CI: exit 0 to prevent LASTEXITCODE leak from native commands (0e5e9bf)
- fix: replace obsolete Frame with Border in QrScannerPage; fix nullable sender in event handlers (3767edb)
- feat: add camera QR scan pairing flow with ZXing.Net.Maui and Android deep link support (1a3a2e7)
- refactor: serialise Connect writes via Channel; remove dead code (85e91d5)
- chore: bump next-version to 0.1.12 (2ad92ae)
- docs: session handoff 2026-02-19T21-06-54-0600 (fe2a68b)
- fix: wire MessageReceived/ConnectionStateChanged before connecting session (ea42807)
- feat: end server session when closing a tab (94a65e9)
- feat: use shared app logo in desktop window and MSIX (85374ab)
- feat: migrate 13 management REST endpoints to gRPC; revert to Http2-only (8cd2862)
- fix: set Kestrel EndpointDefaults to Http1AndHttp2 in appsettings.json (ea30a88)
- fix: use Http1AndHttp2 + h2c switch to allow gRPC and REST on same port (a143ffd)
- feat: centralize service port in ServiceDefaults; enforce port picker with tests (c4752ee)
- feat: replace port Entry with Picker on mobile; default to 5244 (69a8f70)
- fix: use Http2 (h2c) for cleartext gRPC endpoint (e297d8b)
- fix: checkout submodules in build-msix CI job (915fc55)
- docs: session handoff 2026-02-19T18-35-50-0600 (d5eb6ad)
- Merge branch 'main' into develop (7f6bf06)
- feat: versioned Windows service display name (19f301e)
- feat: add Windows Event Log as ILogger provider (23f5d82)
- feat: expose DbPath on ILocalStorage; log connection details on open (5ff90ad)
- chore: commit working tree changes before PR (b26b3a8)
- Add .deb build job and GitHub Release to pipeline (1247a7e)
- Fix Build MSIX: upgrade gittools/actions to v3 for GitVersion 6.x (94a07f9)
- Add Open Logs Folder button to status log viewer; icon-only buttons (026f1a2)
- Fix Windows port binding: use ConfigureKestrel instead of UseUrls (f67685b)
- Fix Windows port: bind to 5243 (not 5244) on Windows (658195b)
- Extract navigation panels to UserControls with IsVisible bindings (6df3aa2)
- Add Open Logs Folder button to App Log section (CQRS + tests) (cb47ae1)
- Add directive: UI buttons require CQRS handler + complete tests (c49dee8)
- Refactor copy-status-log to follow CQRS pattern with tests (acfef9a)
- Use Segoe MDL2 Assets for icons and Segoe UI as base font on Windows (70682bd)
- chore: update MsixTools submodule (add MCP server) (4473082)
- chore: update MsixTools submodule to include bump params (5d45758)
- refactor: wrapper scripts are now zero-logic param forwarders (3b67902)
- chore: add MsixTools as git submodule (a749871)
- chore: remove inline MsixTools (replaced by submodule) (a8a912f)
- feat: add -NoBuild flag; make -Clean and -NoBuild mutually exclusive (7821b41)
- fix: use Convert-Path to establish absolute WorkspaceRoot (f1a3187)
- fix: resolve WorkspaceRoot to absolute path at function entry (f3145ed)
- fix: resolve OutDir to absolute path before icon generation (131c689)
- feat: MsixTools PowerShell module with YAML-driven config (3d71056)
- feat: add -BumpMajor/-BumpMinor/-BumpPatch flags to package-msix.ps1 (bca1fab)
- fix: use Directory.Delete for robust bin/obj removal in -Clean (5834173)
- feat: add -Install flag to package-msix.ps1 (c4219a5)
- fix: replace dotnet clean with direct bin/obj deletion in -Clean (c7316a1)
- fix: restore packages after dotnet clean before publish (dc131c6)
- fix: remove --configfile from dotnet clean (unsupported flag) (a1a131e)
- fix: close desktop app before MSIX update to resolve 0x80073D02 (7ece071)
- fix: stop service before MSIX update to avoid locked-file deployment failure (62d625b)
- fix: navigate to Sessions view after successful connection (9bf403e)
- feat: add -Clean flag to package-msix.ps1 (383cfdc)
- fix: auto-sign unsigned MSIX with dev cert instead of using -AllowUnsigned (b130917)
- fix: auto-detect unsigned MSIX and pass -AllowUnsigned in install script (880d87e)
- fix: pause after manifest write to show version provenance and manifest content (98d3d86)
- fix: print calculated version at end of package-msix.ps1 (0fdc454)
- fix: add version source diagnostic logging to package-msix.ps1 (cef353b)
- fix: read GitVersion.yml before git describe in version fallback (31d3d7c)
- fix: MSIX versioning, single-file self-contained packaging, and version bump script (8897a32)
- [WIP] Add direct FR/TR annotations for test methods (#16) (6c36350)
- Merge branch 'main' into develop (fee4f52)
- Fix obsolete MAUI Page method calls in MauiPlatformServices (c9d16c4)
- docs: fix all 505 broken DocFX breadcrumb links (5451a85)
- docs: rebuild README; fix broken doc links (6045eb6)
- docs: add DocFX API+testing reference; add XML docs to all test classes (0fdb33c)
- docs: add session handoff 2026-02-19T00-04-44 (6a7a370)
- docs: mark FR-12.12 Done, update test count to 240, mark all todos complete (95c9313)
- test: Phase 3d — mobile handler unit tests (8 handlers, 22 tests) (f7839ab)
Docker image
Pull the service image from GitHub Container Registry:
docker pull ghcr.io/sharpninja/remote-agent/service:latest
docker pull ghcr.io/sharpninja/remote-agent/service@sha256:5a8ecbad1efc602a208a4b5ccc054e2e6004365282ac53f19c474b0ff9802ccf
Beta v1.0.0-develop.2 (build 155)
Changes in this beta
- Fix: generate QR code server-side (embedded PNG) instead of CDN JS (0a3e7e7)
- Style: global 4px margin on all interactive/display controls in Avalonia app (324f229)
- UX: SelectableTextBlock everywhere in Avalonia; simplify mobile login UI; persist ApiKey on connect (0b491de)
- Fix: use Shell.Current.Navigation + MainThread for QR scanner modal push (25a470e)
- Fix: forward ApiKey to server info and capacity checks in ConnectMobileSessionHandler (ddaa2f1)
- Feat: generate and return API key when saving pairing user (2c30fd5)
- Fix: use IOptionsMonitor so /pair reloads after SetPairingUsers writes appsettings.json (db645e3)
- feat: SetPairingUsers — PS script + Desktop toolbar + gRPC RPC (f37e28e)
- feat: serve /pair web UI on dedicated HTTP/1+2 port (1+gRPC port) (b0d82d5)
- Merge Build MSIX workflow into Build and Deploy pipeline (bd06f38)
- Fix MSIX CI: exit 0 to prevent LASTEXITCODE leak from native commands (0e5e9bf)
- fix: replace obsolete Frame with Border in QrScannerPage; fix nullable sender in event handlers (3767edb)
- feat: add camera QR scan pairing flow with ZXing.Net.Maui and Android deep link support (1a3a2e7)
- refactor: serialise Connect writes via Channel; remove dead code (85e91d5)
- chore: bump next-version to 0.1.12 (2ad92ae)
- docs: session handoff 2026-02-19T21-06-54-0600 (fe2a68b)
- fix: wire MessageReceived/ConnectionStateChanged before connecting session (ea42807)
- feat: end server session when closing a tab (94a65e9)
- feat: use shared app logo in desktop window and MSIX (85374ab)
- feat: migrate 13 management REST endpoints to gRPC; revert to Http2-only (8cd2862)
- fix: set Kestrel EndpointDefaults to Http1AndHttp2 in appsettings.json (ea30a88)
- fix: use Http1AndHttp2 + h2c switch to allow gRPC and REST on same port (a143ffd)
- feat: centralize service port in ServiceDefaults; enforce port picker with tests (c4752ee)
- feat: replace port Entry with Picker on mobile; default to 5244 (69a8f70)
- fix: use Http2 (h2c) for cleartext gRPC endpoint (e297d8b)
- fix: checkout submodules in build-msix CI job (915fc55)
- docs: session handoff 2026-02-19T18-35-50-0600 (d5eb6ad)
- Merge branch 'main' into develop (7f6bf06)
- feat: versioned Windows service display name (19f301e)
- feat: add Windows Event Log as ILogger provider (23f5d82)
- feat: expose DbPath on ILocalStorage; log connection details on open (5ff90ad)
- chore: commit working tree changes before PR (b26b3a8)
- Add .deb build job and GitHub Release to pipeline (1247a7e)
- Fix Build MSIX: upgrade gittools/actions to v3 for GitVersion 6.x (94a07f9)
- Add Open Logs Folder button to status log viewer; icon-only buttons (026f1a2)
- Fix Windows port binding: use ConfigureKestrel instead of UseUrls (f67685b)
- Fix Windows port: bind to 5243 (not 5244) on Windows (658195b)
- Extract navigation panels to UserControls with IsVisible bindings (6df3aa2)
- Add Open Logs Folder button to App Log section (CQRS + tests) (cb47ae1)
- Add directive: UI buttons require CQRS handler + complete tests (c49dee8)
- Refactor copy-status-log to follow CQRS pattern with tests (acfef9a)
- Use Segoe MDL2 Assets for icons and Segoe UI as base font on Windows (70682bd)
- chore: update MsixTools submodule (add MCP server) (4473082)
- chore: update MsixTools submodule to include bump params (5d45758)
- refactor: wrapper scripts are now zero-logic param forwarders (3b67902)
- chore: add MsixTools as git submodule (a749871)
- chore: remove inline MsixTools (replaced by submodule) (a8a912f)
- feat: add -NoBuild flag; make -Clean and -NoBuild mutually exclusive (7821b41)
- fix: use Convert-Path to establish absolute WorkspaceRoot (f1a3187)
- fix: resolve WorkspaceRoot to absolute path at function entry (f3145ed)
- fix: resolve OutDir to absolute path before icon generation (131c689)
- feat: MsixTools PowerShell module with YAML-driven config (3d71056)
- feat: add -BumpMajor/-BumpMinor/-BumpPatch flags to package-msix.ps1 (bca1fab)
- fix: use Directory.Delete for robust bin/obj removal in -Clean (5834173)
- feat: add -Install flag to package-msix.ps1 (c4219a5)
- fix: replace dotnet clean with direct bin/obj deletion in -Clean (c7316a1)
- fix: restore packages after dotnet clean before publish (dc131c6)
- fix: remove --configfile from dotnet clean (unsupported flag) (a1a131e)
- fix: close desktop app before MSIX update to resolve 0x80073D02 (7ece071)
- fix: stop service before MSIX update to avoid locked-file deployment failure (62d625b)
- fix: navigate to Sessions view after successful connection (9bf403e)
- feat: add -Clean flag to package-msix.ps1 (383cfdc)
- fix: auto-sign unsigned MSIX with dev cert instead of using -AllowUnsigned (b130917)
- fix: auto-detect unsigned MSIX and pass -AllowUnsigned in install script (880d87e)
- fix: pause after manifest write to show version provenance and manifest content (98d3d86)
- fix: print calculated version at end of package-msix.ps1 (0fdc454)
- fix: add version source diagnostic logging to package-msix.ps1 (cef353b)
- fix: read GitVersion.yml before git describe in version fallback (31d3d7c)
- fix: MSIX versioning, single-file self-contained packaging, and version bump script (8897a32)
- [WIP] Add direct FR/TR annotations for test methods (#16) (6c36350)
- Merge branch 'main' into develop (fee4f52)
- Fix obsolete MAUI Page method calls in MauiPlatformServices (c9d16c4)
- docs: fix all 505 broken DocFX breadcrumb links (5451a85)
- docs: rebuild README; fix broken doc links (6045eb6)
- docs: add DocFX API+testing reference; add XML docs to all test classes (0fdb33c)
- docs: add session handoff 2026-02-19T00-04-44 (6a7a370)
- docs: mark FR-12.12 Done, update test count to 240, mark all todos complete (95c9313)
- test: Phase 3d — mobile handler unit tests (8 handlers, 22 tests) (f7839ab)
Docker image
Pull the service image from GitHub Container Registry:
docker pull ghcr.io/sharpninja/remote-agent/service:latest
docker pull ghcr.io/sharpninja/remote-agent/service@sha256:f5780d3b653838b857e44fe62e8592362c8f5b5737d4a53c1ead9d0fea7d7c60
Beta v1.0.0-develop.2 (build 154)
Changes in this beta
- Style: global 4px margin on all interactive/display controls in Avalonia app (324f229)
- UX: SelectableTextBlock everywhere in Avalonia; simplify mobile login UI; persist ApiKey on connect (0b491de)
- Fix: use Shell.Current.Navigation + MainThread for QR scanner modal push (25a470e)
- Fix: forward ApiKey to server info and capacity checks in ConnectMobileSessionHandler (ddaa2f1)
- Feat: generate and return API key when saving pairing user (2c30fd5)
- Fix: use IOptionsMonitor so /pair reloads after SetPairingUsers writes appsettings.json (db645e3)
- feat: SetPairingUsers — PS script + Desktop toolbar + gRPC RPC (f37e28e)
- feat: serve /pair web UI on dedicated HTTP/1+2 port (1+gRPC port) (b0d82d5)
- Merge Build MSIX workflow into Build and Deploy pipeline (bd06f38)
- Fix MSIX CI: exit 0 to prevent LASTEXITCODE leak from native commands (0e5e9bf)
- fix: replace obsolete Frame with Border in QrScannerPage; fix nullable sender in event handlers (3767edb)
- feat: add camera QR scan pairing flow with ZXing.Net.Maui and Android deep link support (1a3a2e7)
- refactor: serialise Connect writes via Channel; remove dead code (85e91d5)
- chore: bump next-version to 0.1.12 (2ad92ae)
- docs: session handoff 2026-02-19T21-06-54-0600 (fe2a68b)
- fix: wire MessageReceived/ConnectionStateChanged before connecting session (ea42807)
- feat: end server session when closing a tab (94a65e9)
- feat: use shared app logo in desktop window and MSIX (85374ab)
- feat: migrate 13 management REST endpoints to gRPC; revert to Http2-only (8cd2862)
- fix: set Kestrel EndpointDefaults to Http1AndHttp2 in appsettings.json (ea30a88)
- fix: use Http1AndHttp2 + h2c switch to allow gRPC and REST on same port (a143ffd)
- feat: centralize service port in ServiceDefaults; enforce port picker with tests (c4752ee)
- feat: replace port Entry with Picker on mobile; default to 5244 (69a8f70)
- fix: use Http2 (h2c) for cleartext gRPC endpoint (e297d8b)
- fix: checkout submodules in build-msix CI job (915fc55)
- docs: session handoff 2026-02-19T18-35-50-0600 (d5eb6ad)
- Merge branch 'main' into develop (7f6bf06)
- feat: versioned Windows service display name (19f301e)
- feat: add Windows Event Log as ILogger provider (23f5d82)
- feat: expose DbPath on ILocalStorage; log connection details on open (5ff90ad)
- chore: commit working tree changes before PR (b26b3a8)
- Add .deb build job and GitHub Release to pipeline (1247a7e)
- Fix Build MSIX: upgrade gittools/actions to v3 for GitVersion 6.x (94a07f9)
- Add Open Logs Folder button to status log viewer; icon-only buttons (026f1a2)
- Fix Windows port binding: use ConfigureKestrel instead of UseUrls (f67685b)
- Fix Windows port: bind to 5243 (not 5244) on Windows (658195b)
- Extract navigation panels to UserControls with IsVisible bindings (6df3aa2)
- Add Open Logs Folder button to App Log section (CQRS + tests) (cb47ae1)
- Add directive: UI buttons require CQRS handler + complete tests (c49dee8)
- Refactor copy-status-log to follow CQRS pattern with tests (acfef9a)
- Use Segoe MDL2 Assets for icons and Segoe UI as base font on Windows (70682bd)
- chore: update MsixTools submodule (add MCP server) (4473082)
- chore: update MsixTools submodule to include bump params (5d45758)
- refactor: wrapper scripts are now zero-logic param forwarders (3b67902)
- chore: add MsixTools as git submodule (a749871)
- chore: remove inline MsixTools (replaced by submodule) (a8a912f)
- feat: add -NoBuild flag; make -Clean and -NoBuild mutually exclusive (7821b41)
- fix: use Convert-Path to establish absolute WorkspaceRoot (f1a3187)
- fix: resolve WorkspaceRoot to absolute path at function entry (f3145ed)
- fix: resolve OutDir to absolute path before icon generation (131c689)
- feat: MsixTools PowerShell module with YAML-driven config (3d71056)
- feat: add -BumpMajor/-BumpMinor/-BumpPatch flags to package-msix.ps1 (bca1fab)
- fix: use Directory.Delete for robust bin/obj removal in -Clean (5834173)
- feat: add -Install flag to package-msix.ps1 (c4219a5)
- fix: replace dotnet clean with direct bin/obj deletion in -Clean (c7316a1)
- fix: restore packages after dotnet clean before publish (dc131c6)
- fix: remove --configfile from dotnet clean (unsupported flag) (a1a131e)
- fix: close desktop app before MSIX update to resolve 0x80073D02 (7ece071)
- fix: stop service before MSIX update to avoid locked-file deployment failure (62d625b)
- fix: navigate to Sessions view after successful connection (9bf403e)
- feat: add -Clean flag to package-msix.ps1 (383cfdc)
- fix: auto-sign unsigned MSIX with dev cert instead of using -AllowUnsigned (b130917)
- fix: auto-detect unsigned MSIX and pass -AllowUnsigned in install script (880d87e)
- fix: pause after manifest write to show version provenance and manifest content (98d3d86)
- fix: print calculated version at end of package-msix.ps1 (0fdc454)
- fix: add version source diagnostic logging to package-msix.ps1 (cef353b)
- fix: read GitVersion.yml before git describe in version fallback (31d3d7c)
- fix: MSIX versioning, single-file self-contained packaging, and version bump script (8897a32)
- [WIP] Add direct FR/TR annotations for test methods (#16) (6c36350)
- Merge branch 'main' into develop (fee4f52)
- Fix obsolete MAUI Page method calls in MauiPlatformServices (c9d16c4)
- docs: fix all 505 broken DocFX breadcrumb links (5451a85)
- docs: rebuild README; fix broken doc links (6045eb6)
- docs: add DocFX API+testing reference; add XML docs to all test classes (0fdb33c)
- docs: add session handoff 2026-02-19T00-04-44 (6a7a370)
- docs: mark FR-12.12 Done, update test count to 240, mark all todos complete (95c9313)
- test: Phase 3d — mobile handler unit tests (8 handlers, 22 tests) (f7839ab)
Docker image
Pull the service image from GitHub Container Registry:
docker pull ghcr.io/sharpninja/remote-agent/service:latest
docker pull ghcr.io/sharpninja/remote-agent/service@sha256:30d2aa5446a4f1e39cb8a3d64ffe6d99f3b7157ad091c5623bf153a7b14cbea0
Beta v1.0.0-develop.2 (build 152)
Changes in this beta
- Fix: use Shell.Current.Navigation + MainThread for QR scanner modal push (25a470e)
- Fix: forward ApiKey to server info and capacity checks in ConnectMobileSessionHandler (ddaa2f1)
- Feat: generate and return API key when saving pairing user (2c30fd5)
- Fix: use IOptionsMonitor so /pair reloads after SetPairingUsers writes appsettings.json (db645e3)
- feat: SetPairingUsers — PS script + Desktop toolbar + gRPC RPC (f37e28e)
- feat: serve /pair web UI on dedicated HTTP/1+2 port (1+gRPC port) (b0d82d5)
- Merge Build MSIX workflow into Build and Deploy pipeline (bd06f38)
- Fix MSIX CI: exit 0 to prevent LASTEXITCODE leak from native commands (0e5e9bf)
- fix: replace obsolete Frame with Border in QrScannerPage; fix nullable sender in event handlers (3767edb)
- feat: add camera QR scan pairing flow with ZXing.Net.Maui and Android deep link support (1a3a2e7)
- refactor: serialise Connect writes via Channel; remove dead code (85e91d5)
- chore: bump next-version to 0.1.12 (2ad92ae)
- docs: session handoff 2026-02-19T21-06-54-0600 (fe2a68b)
- fix: wire MessageReceived/ConnectionStateChanged before connecting session (ea42807)
- feat: end server session when closing a tab (94a65e9)
- feat: use shared app logo in desktop window and MSIX (85374ab)
- feat: migrate 13 management REST endpoints to gRPC; revert to Http2-only (8cd2862)
- fix: set Kestrel EndpointDefaults to Http1AndHttp2 in appsettings.json (ea30a88)
- fix: use Http1AndHttp2 + h2c switch to allow gRPC and REST on same port (a143ffd)
- feat: centralize service port in ServiceDefaults; enforce port picker with tests (c4752ee)
- feat: replace port Entry with Picker on mobile; default to 5244 (69a8f70)
- fix: use Http2 (h2c) for cleartext gRPC endpoint (e297d8b)
- fix: checkout submodules in build-msix CI job (915fc55)
- docs: session handoff 2026-02-19T18-35-50-0600 (d5eb6ad)
- Merge branch 'main' into develop (7f6bf06)
- feat: versioned Windows service display name (19f301e)
- feat: add Windows Event Log as ILogger provider (23f5d82)
- feat: expose DbPath on ILocalStorage; log connection details on open (5ff90ad)
- chore: commit working tree changes before PR (b26b3a8)
- Add .deb build job and GitHub Release to pipeline (1247a7e)
- Fix Build MSIX: upgrade gittools/actions to v3 for GitVersion 6.x (94a07f9)
- Add Open Logs Folder button to status log viewer; icon-only buttons (026f1a2)
- Fix Windows port binding: use ConfigureKestrel instead of UseUrls (f67685b)
- Fix Windows port: bind to 5243 (not 5244) on Windows (658195b)
- Extract navigation panels to UserControls with IsVisible bindings (6df3aa2)
- Add Open Logs Folder button to App Log section (CQRS + tests) (cb47ae1)
- Add directive: UI buttons require CQRS handler + complete tests (c49dee8)
- Refactor copy-status-log to follow CQRS pattern with tests (acfef9a)
- Use Segoe MDL2 Assets for icons and Segoe UI as base font on Windows (70682bd)
- chore: update MsixTools submodule (add MCP server) (4473082)
- chore: update MsixTools submodule to include bump params (5d45758)
- refactor: wrapper scripts are now zero-logic param forwarders (3b67902)
- chore: add MsixTools as git submodule (a749871)
- chore: remove inline MsixTools (replaced by submodule) (a8a912f)
- feat: add -NoBuild flag; make -Clean and -NoBuild mutually exclusive (7821b41)
- fix: use Convert-Path to establish absolute WorkspaceRoot (f1a3187)
- fix: resolve WorkspaceRoot to absolute path at function entry (f3145ed)
- fix: resolve OutDir to absolute path before icon generation (131c689)
- feat: MsixTools PowerShell module with YAML-driven config (3d71056)
- feat: add -BumpMajor/-BumpMinor/-BumpPatch flags to package-msix.ps1 (bca1fab)
- fix: use Directory.Delete for robust bin/obj removal in -Clean (5834173)
- feat: add -Install flag to package-msix.ps1 (c4219a5)
- fix: replace dotnet clean with direct bin/obj deletion in -Clean (c7316a1)
- fix: restore packages after dotnet clean before publish (dc131c6)
- fix: remove --configfile from dotnet clean (unsupported flag) (a1a131e)
- fix: close desktop app before MSIX update to resolve 0x80073D02 (7ece071)
- fix: stop service before MSIX update to avoid locked-file deployment failure (62d625b)
- fix: navigate to Sessions view after successful connection (9bf403e)
- feat: add -Clean flag to package-msix.ps1 (383cfdc)
- fix: auto-sign unsigned MSIX with dev cert instead of using -AllowUnsigned (b130917)
- fix: auto-detect unsigned MSIX and pass -AllowUnsigned in install script (880d87e)
- fix: pause after manifest write to show version provenance and manifest content (98d3d86)
- fix: print calculated version at end of package-msix.ps1 (0fdc454)
- fix: add version source diagnostic logging to package-msix.ps1 (cef353b)
- fix: read GitVersion.yml before git describe in version fallback (31d3d7c)
- fix: MSIX versioning, single-file self-contained packaging, and version bump script (8897a32)
- [WIP] Add direct FR/TR annotations for test methods (#16) (6c36350)
- Merge branch 'main' into develop (fee4f52)
- Fix obsolete MAUI Page method calls in MauiPlatformServices (c9d16c4)
- docs: fix all 505 broken DocFX breadcrumb links (5451a85)
- docs: rebuild README; fix broken doc links (6045eb6)
- docs: add DocFX API+testing reference; add XML docs to all test classes (0fdb33c)
- docs: add session handoff 2026-02-19T00-04-44 (6a7a370)
- docs: mark FR-12.12 Done, update test count to 240, mark all todos complete (95c9313)
- test: Phase 3d — mobile handler unit tests (8 handlers, 22 tests) (f7839ab)
Docker image
Pull the service image from GitHub Container Registry:
docker pull ghcr.io/sharpninja/remote-agent/service:latest
docker pull ghcr.io/sharpninja/remote-agent/service@sha256:e010af8d9697189969302fab92cac7f711dfe45707eae7243e85e0276f3683ff
Beta v1.0.0-develop.2 (build 149)
Changes in this beta
- Fix: use IOptionsMonitor so /pair reloads after SetPairingUsers writes appsettings.json (db645e3)
- feat: SetPairingUsers — PS script + Desktop toolbar + gRPC RPC (f37e28e)
- feat: serve /pair web UI on dedicated HTTP/1+2 port (1+gRPC port) (b0d82d5)
- Merge Build MSIX workflow into Build and Deploy pipeline (bd06f38)
- Fix MSIX CI: exit 0 to prevent LASTEXITCODE leak from native commands (0e5e9bf)
- fix: replace obsolete Frame with Border in QrScannerPage; fix nullable sender in event handlers (3767edb)
- feat: add camera QR scan pairing flow with ZXing.Net.Maui and Android deep link support (1a3a2e7)
- refactor: serialise Connect writes via Channel; remove dead code (85e91d5)
- chore: bump next-version to 0.1.12 (2ad92ae)
- docs: session handoff 2026-02-19T21-06-54-0600 (fe2a68b)
- fix: wire MessageReceived/ConnectionStateChanged before connecting session (ea42807)
- feat: end server session when closing a tab (94a65e9)
- feat: use shared app logo in desktop window and MSIX (85374ab)
- feat: migrate 13 management REST endpoints to gRPC; revert to Http2-only (8cd2862)
- fix: set Kestrel EndpointDefaults to Http1AndHttp2 in appsettings.json (ea30a88)
- fix: use Http1AndHttp2 + h2c switch to allow gRPC and REST on same port (a143ffd)
- feat: centralize service port in ServiceDefaults; enforce port picker with tests (c4752ee)
- feat: replace port Entry with Picker on mobile; default to 5244 (69a8f70)
- fix: use Http2 (h2c) for cleartext gRPC endpoint (e297d8b)
- fix: checkout submodules in build-msix CI job (915fc55)
- docs: session handoff 2026-02-19T18-35-50-0600 (d5eb6ad)
- Merge branch 'main' into develop (7f6bf06)
- feat: versioned Windows service display name (19f301e)
- feat: add Windows Event Log as ILogger provider (23f5d82)
- feat: expose DbPath on ILocalStorage; log connection details on open (5ff90ad)
- chore: commit working tree changes before PR (b26b3a8)
- Add .deb build job and GitHub Release to pipeline (1247a7e)
- Fix Build MSIX: upgrade gittools/actions to v3 for GitVersion 6.x (94a07f9)
- Add Open Logs Folder button to status log viewer; icon-only buttons (026f1a2)
- Fix Windows port binding: use ConfigureKestrel instead of UseUrls (f67685b)
- Fix Windows port: bind to 5243 (not 5244) on Windows (658195b)
- Extract navigation panels to UserControls with IsVisible bindings (6df3aa2)
- Add Open Logs Folder button to App Log section (CQRS + tests) (cb47ae1)
- Add directive: UI buttons require CQRS handler + complete tests (c49dee8)
- Refactor copy-status-log to follow CQRS pattern with tests (acfef9a)
- Use Segoe MDL2 Assets for icons and Segoe UI as base font on Windows (70682bd)
- chore: update MsixTools submodule (add MCP server) (4473082)
- chore: update MsixTools submodule to include bump params (5d45758)
- refactor: wrapper scripts are now zero-logic param forwarders (3b67902)
- chore: add MsixTools as git submodule (a749871)
- chore: remove inline MsixTools (replaced by submodule) (a8a912f)
- feat: add -NoBuild flag; make -Clean and -NoBuild mutually exclusive (7821b41)
- fix: use Convert-Path to establish absolute WorkspaceRoot (f1a3187)
- fix: resolve WorkspaceRoot to absolute path at function entry (f3145ed)
- fix: resolve OutDir to absolute path before icon generation (131c689)
- feat: MsixTools PowerShell module with YAML-driven config (3d71056)
- feat: add -BumpMajor/-BumpMinor/-BumpPatch flags to package-msix.ps1 (bca1fab)
- fix: use Directory.Delete for robust bin/obj removal in -Clean (5834173)
- feat: add -Install flag to package-msix.ps1 (c4219a5)
- fix: replace dotnet clean with direct bin/obj deletion in -Clean (c7316a1)
- fix: restore packages after dotnet clean before publish (dc131c6)
- fix: remove --configfile from dotnet clean (unsupported flag) (a1a131e)
- fix: close desktop app before MSIX update to resolve 0x80073D02 (7ece071)
- fix: stop service before MSIX update to avoid locked-file deployment failure (62d625b)
- fix: navigate to Sessions view after successful connection (9bf403e)
- feat: add -Clean flag to package-msix.ps1 (383cfdc)
- fix: auto-sign unsigned MSIX with dev cert instead of using -AllowUnsigned (b130917)
- fix: auto-detect unsigned MSIX and pass -AllowUnsigned in install script (880d87e)
- fix: pause after manifest write to show version provenance and manifest content (98d3d86)
- fix: print calculated version at end of package-msix.ps1 (0fdc454)
- fix: add version source diagnostic logging to package-msix.ps1 (cef353b)
- fix: read GitVersion.yml before git describe in version fallback (31d3d7c)
- fix: MSIX versioning, single-file self-contained packaging, and version bump script (8897a32)
- [WIP] Add direct FR/TR annotations for test methods (#16) (6c36350)
- Merge branch 'main' into develop (fee4f52)
- Fix obsolete MAUI Page method calls in MauiPlatformServices (c9d16c4)
- docs: fix all 505 broken DocFX breadcrumb links (5451a85)
- docs: rebuild README; fix broken doc links (6045eb6)
- docs: add DocFX API+testing reference; add XML docs to all test classes (0fdb33c)
- docs: add session handoff 2026-02-19T00-04-44 (6a7a370)
- docs: mark FR-12.12 Done, update test count to 240, mark all todos complete (95c9313)
- test: Phase 3d — mobile handler unit tests (8 handlers, 22 tests) (f7839ab)
Docker image
Pull the service image from GitHub Container Registry:
docker pull ghcr.io/sharpninja/remote-agent/service:latest
docker pull ghcr.io/sharpninja/remote-agent/service@sha256:e4432858bf628a6d97af26173a60f8ebba34b9012be57089f7c723f4348163e7
Beta v1.0.0-develop.2 (build 148)
Changes in this beta
- feat: SetPairingUsers — PS script + Desktop toolbar + gRPC RPC (f37e28e)
- feat: serve /pair web UI on dedicated HTTP/1+2 port (1+gRPC port) (b0d82d5)
- Merge Build MSIX workflow into Build and Deploy pipeline (bd06f38)
- Fix MSIX CI: exit 0 to prevent LASTEXITCODE leak from native commands (0e5e9bf)
- fix: replace obsolete Frame with Border in QrScannerPage; fix nullable sender in event handlers (3767edb)
- feat: add camera QR scan pairing flow with ZXing.Net.Maui and Android deep link support (1a3a2e7)
- refactor: serialise Connect writes via Channel; remove dead code (85e91d5)
- chore: bump next-version to 0.1.12 (2ad92ae)
- docs: session handoff 2026-02-19T21-06-54-0600 (fe2a68b)
- fix: wire MessageReceived/ConnectionStateChanged before connecting session (ea42807)
- feat: end server session when closing a tab (94a65e9)
- feat: use shared app logo in desktop window and MSIX (85374ab)
- feat: migrate 13 management REST endpoints to gRPC; revert to Http2-only (8cd2862)
- fix: set Kestrel EndpointDefaults to Http1AndHttp2 in appsettings.json (ea30a88)
- fix: use Http1AndHttp2 + h2c switch to allow gRPC and REST on same port (a143ffd)
- feat: centralize service port in ServiceDefaults; enforce port picker with tests (c4752ee)
- feat: replace port Entry with Picker on mobile; default to 5244 (69a8f70)
- fix: use Http2 (h2c) for cleartext gRPC endpoint (e297d8b)
- fix: checkout submodules in build-msix CI job (915fc55)
- docs: session handoff 2026-02-19T18-35-50-0600 (d5eb6ad)
- Merge branch 'main' into develop (7f6bf06)
- feat: versioned Windows service display name (19f301e)
- feat: add Windows Event Log as ILogger provider (23f5d82)
- feat: expose DbPath on ILocalStorage; log connection details on open (5ff90ad)
- chore: commit working tree changes before PR (b26b3a8)
- Add .deb build job and GitHub Release to pipeline (1247a7e)
- Fix Build MSIX: upgrade gittools/actions to v3 for GitVersion 6.x (94a07f9)
- Add Open Logs Folder button to status log viewer; icon-only buttons (026f1a2)
- Fix Windows port binding: use ConfigureKestrel instead of UseUrls (f67685b)
- Fix Windows port: bind to 5243 (not 5244) on Windows (658195b)
- Extract navigation panels to UserControls with IsVisible bindings (6df3aa2)
- Add Open Logs Folder button to App Log section (CQRS + tests) (cb47ae1)
- Add directive: UI buttons require CQRS handler + complete tests (c49dee8)
- Refactor copy-status-log to follow CQRS pattern with tests (acfef9a)
- Use Segoe MDL2 Assets for icons and Segoe UI as base font on Windows (70682bd)
- chore: update MsixTools submodule (add MCP server) (4473082)
- chore: update MsixTools submodule to include bump params (5d45758)
- refactor: wrapper scripts are now zero-logic param forwarders (3b67902)
- chore: add MsixTools as git submodule (a749871)
- chore: remove inline MsixTools (replaced by submodule) (a8a912f)
- feat: add -NoBuild flag; make -Clean and -NoBuild mutually exclusive (7821b41)
- fix: use Convert-Path to establish absolute WorkspaceRoot (f1a3187)
- fix: resolve WorkspaceRoot to absolute path at function entry (f3145ed)
- fix: resolve OutDir to absolute path before icon generation (131c689)
- feat: MsixTools PowerShell module with YAML-driven config (3d71056)
- feat: add -BumpMajor/-BumpMinor/-BumpPatch flags to package-msix.ps1 (bca1fab)
- fix: use Directory.Delete for robust bin/obj removal in -Clean (5834173)
- feat: add -Install flag to package-msix.ps1 (c4219a5)
- fix: replace dotnet clean with direct bin/obj deletion in -Clean (c7316a1)
- fix: restore packages after dotnet clean before publish (dc131c6)
- fix: remove --configfile from dotnet clean (unsupported flag) (a1a131e)
- fix: close desktop app before MSIX update to resolve 0x80073D02 (7ece071)
- fix: stop service before MSIX update to avoid locked-file deployment failure (62d625b)
- fix: navigate to Sessions view after successful connection (9bf403e)
- feat: add -Clean flag to package-msix.ps1 (383cfdc)
- fix: auto-sign unsigned MSIX with dev cert instead of using -AllowUnsigned (b130917)
- fix: auto-detect unsigned MSIX and pass -AllowUnsigned in install script (880d87e)
- fix: pause after manifest write to show version provenance and manifest content (98d3d86)
- fix: print calculated version at end of package-msix.ps1 (0fdc454)
- fix: add version source diagnostic logging to package-msix.ps1 (cef353b)
- fix: read GitVersion.yml before git describe in version fallback (31d3d7c)
- fix: MSIX versioning, single-file self-contained packaging, and version bump script (8897a32)
- [WIP] Add direct FR/TR annotations for test methods (#16) (6c36350)
- Merge branch 'main' into develop (fee4f52)
- Fix obsolete MAUI Page method calls in MauiPlatformServices (c9d16c4)
- docs: fix all 505 broken DocFX breadcrumb links (5451a85)
- docs: rebuild README; fix broken doc links (6045eb6)
- docs: add DocFX API+testing reference; add XML docs to all test classes (0fdb33c)
- docs: add session handoff 2026-02-19T00-04-44 (6a7a370)
- docs: mark FR-12.12 Done, update test count to 240, mark all todos complete (95c9313)
- test: Phase 3d — mobile handler unit tests (8 handlers, 22 tests) (f7839ab)
Docker image
Pull the service image from GitHub Container Registry:
docker pull ghcr.io/sharpninja/remote-agent/service:latest
docker pull ghcr.io/sharpninja/remote-agent/service@sha256:e81e5217d92c9fdfb9da9072af137f555fbe6eda4bb612bd7bc00dffd6ebbc7d
Beta v1.0.0-develop.2 (build 147)
Changes in this beta
- feat: serve /pair web UI on dedicated HTTP/1+2 port (1+gRPC port) (b0d82d5)
- Merge Build MSIX workflow into Build and Deploy pipeline (bd06f38)
- Fix MSIX CI: exit 0 to prevent LASTEXITCODE leak from native commands (0e5e9bf)
- fix: replace obsolete Frame with Border in QrScannerPage; fix nullable sender in event handlers (3767edb)
- feat: add camera QR scan pairing flow with ZXing.Net.Maui and Android deep link support (1a3a2e7)
- refactor: serialise Connect writes via Channel; remove dead code (85e91d5)
- chore: bump next-version to 0.1.12 (2ad92ae)
- docs: session handoff 2026-02-19T21-06-54-0600 (fe2a68b)
- fix: wire MessageReceived/ConnectionStateChanged before connecting session (ea42807)
- feat: end server session when closing a tab (94a65e9)
- feat: use shared app logo in desktop window and MSIX (85374ab)
- feat: migrate 13 management REST endpoints to gRPC; revert to Http2-only (8cd2862)
- fix: set Kestrel EndpointDefaults to Http1AndHttp2 in appsettings.json (ea30a88)
- fix: use Http1AndHttp2 + h2c switch to allow gRPC and REST on same port (a143ffd)
- feat: centralize service port in ServiceDefaults; enforce port picker with tests (c4752ee)
- feat: replace port Entry with Picker on mobile; default to 5244 (69a8f70)
- fix: use Http2 (h2c) for cleartext gRPC endpoint (e297d8b)
- fix: checkout submodules in build-msix CI job (915fc55)
- docs: session handoff 2026-02-19T18-35-50-0600 (d5eb6ad)
- Merge branch 'main' into develop (7f6bf06)
- feat: versioned Windows service display name (19f301e)
- feat: add Windows Event Log as ILogger provider (23f5d82)
- feat: expose DbPath on ILocalStorage; log connection details on open (5ff90ad)
- chore: commit working tree changes before PR (b26b3a8)
- Add .deb build job and GitHub Release to pipeline (1247a7e)
- Fix Build MSIX: upgrade gittools/actions to v3 for GitVersion 6.x (94a07f9)
- Add Open Logs Folder button to status log viewer; icon-only buttons (026f1a2)
- Fix Windows port binding: use ConfigureKestrel instead of UseUrls (f67685b)
- Fix Windows port: bind to 5243 (not 5244) on Windows (658195b)
- Extract navigation panels to UserControls with IsVisible bindings (6df3aa2)
- Add Open Logs Folder button to App Log section (CQRS + tests) (cb47ae1)
- Add directive: UI buttons require CQRS handler + complete tests (c49dee8)
- Refactor copy-status-log to follow CQRS pattern with tests (acfef9a)
- Use Segoe MDL2 Assets for icons and Segoe UI as base font on Windows (70682bd)
- chore: update MsixTools submodule (add MCP server) (4473082)
- chore: update MsixTools submodule to include bump params (5d45758)
- refactor: wrapper scripts are now zero-logic param forwarders (3b67902)
- chore: add MsixTools as git submodule (a749871)
- chore: remove inline MsixTools (replaced by submodule) (a8a912f)
- feat: add -NoBuild flag; make -Clean and -NoBuild mutually exclusive (7821b41)
- fix: use Convert-Path to establish absolute WorkspaceRoot (f1a3187)
- fix: resolve WorkspaceRoot to absolute path at function entry (f3145ed)
- fix: resolve OutDir to absolute path before icon generation (131c689)
- feat: MsixTools PowerShell module with YAML-driven config (3d71056)
- feat: add -BumpMajor/-BumpMinor/-BumpPatch flags to package-msix.ps1 (bca1fab)
- fix: use Directory.Delete for robust bin/obj removal in -Clean (5834173)
- feat: add -Install flag to package-msix.ps1 (c4219a5)
- fix: replace dotnet clean with direct bin/obj deletion in -Clean (c7316a1)
- fix: restore packages after dotnet clean before publish (dc131c6)
- fix: remove --configfile from dotnet clean (unsupported flag) (a1a131e)
- fix: close desktop app before MSIX update to resolve 0x80073D02 (7ece071)
- fix: stop service before MSIX update to avoid locked-file deployment failure (62d625b)
- fix: navigate to Sessions view after successful connection (9bf403e)
- feat: add -Clean flag to package-msix.ps1 (383cfdc)
- fix: auto-sign unsigned MSIX with dev cert instead of using -AllowUnsigned (b130917)
- fix: auto-detect unsigned MSIX and pass -AllowUnsigned in install script (880d87e)
- fix: pause after manifest write to show version provenance and manifest content (98d3d86)
- fix: print calculated version at end of package-msix.ps1 (0fdc454)
- fix: add version source diagnostic logging to package-msix.ps1 (cef353b)
- fix: read GitVersion.yml before git describe in version fallback (31d3d7c)
- fix: MSIX versioning, single-file self-contained packaging, and version bump script (8897a32)
- [WIP] Add direct FR/TR annotations for test methods (#16) (6c36350)
- Merge branch 'main' into develop (fee4f52)
- Fix obsolete MAUI Page method calls in MauiPlatformServices (c9d16c4)
- docs: fix all 505 broken DocFX breadcrumb links (5451a85)
- docs: rebuild README; fix broken doc links (6045eb6)
- docs: add DocFX API+testing reference; add XML docs to all test classes (0fdb33c)
- docs: add session handoff 2026-02-19T00-04-44 (6a7a370)
- docs: mark FR-12.12 Done, update test count to 240, mark all todos complete (95c9313)
- test: Phase 3d — mobile handler unit tests (8 handlers, 22 tests) (f7839ab)
Docker image
Pull the service image from GitHub Container Registry:
docker pull ghcr.io/sharpninja/remote-agent/service:latest
docker pull ghcr.io/sharpninja/remote-agent/service@sha256:fe884100e396245db62c7f8f470b8eb41f694a50cf274554e7d90b8dfb2e5017