Skip to content

Releases: sharpninja/remote-agent

Beta v1.0.0-develop.2 (build 164)

20 Feb 05:21
3463576

Choose a tag to compare

Pre-release

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)

20 Feb 04:55
3463576

Choose a tag to compare

Pre-release

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)

20 Feb 04:35
3463576

Choose a tag to compare

Pre-release

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)

20 Feb 02:56
3463576

Choose a tag to compare

Pre-release

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)

20 Feb 02:19
3463576

Choose a tag to compare

Pre-release

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)

20 Feb 02:10
3463576

Choose a tag to compare

Pre-release

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)

20 Feb 01:41
3463576

Choose a tag to compare

Pre-release

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)

20 Feb 00:49
3463576

Choose a tag to compare

Pre-release

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)

20 Feb 00:32
3463576

Choose a tag to compare

Pre-release

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)

19 Feb 23:59
3463576

Choose a tag to compare

Pre-release

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