Breaking Changes
- Removed the option for external relay servers.
- Earlier versions of ControlR were intended to be a horizontally-scaling SaaS product with global relays. That's no longer a design goal, and the focus will be on self-hosting individual instances.
- This also paves the way for fine-grained permissions, session recording, and potentially other features.
Changes:
- New color scheme and icons
- New light theme with Auto/Light/Dark toggle.
- You can now configure the app name that appears in TOTP authenticator apps via the
ControlR_AppOptions__AuthenticatorIssuerNameenvironment variable indocker-compose.yml. - The DesktopClient is now bundled into the agent and doesn't need to be downloaded at runtime.
- Improved the IPC authentication between desktop and agent processes.
- Reimplemented auto-reconnect when the viewer loses connection during remote control (e.g. when logging into Windows).
- Fixed the screen redraw when switching back to Remote Control from another tool.
- New Server Alert function for server admins.
- Reworked auto-update so it no longer requires Cloudflare's cache to be bypassed.
- Pre-existing agents will still need it bypassed to upgrade from 0.14.x to 0.15.x, but it won't be needed afterward.
- You can now pan while pinch-zooming on mobile.
- Improved support for non-US keyboard layouts (though testing so far has been limited).
- Fixed bug in remote control's display canvas caused by undisposed event handler registrations.
- Screen is now kept awake during remote control sessions.
Installation
See the readme for instructions on running in Docker.
Commits:
- 59ae473 Update sponsors logo.
- 5db3b8e Revert test value.
- 2fc11a8 Add contrast text resources to Avalonia.
- 20597e8 Update readme.
- bbfd8b7 Update screenshots.
- 8641f1e Fix ChatTitle binding.
- 970673e Auto-close PRs (for now). (#7)
- b7abe30 Add ViewerName to ChatSession and improve message change handling
- 590b997 Refactor ChatSession in DesktopClient.
- 1662c5e Update Welcome.razor
See More
- c898c52 Update Welcome.razor
- 6f480e9 Move GetServerStats to controller. (#6)
- e7adf18 Implement IAppEnvironment interface for environment detection and update RemoteDisplay and JsInteropableComponent for improved touch handling and JS module import.
- db0182f Update test.yml
- 66e5932 Add forceKeyFrame parameter to CaptureDisplay method for full frame captures
- 2b1cc48 Wait until after first render to request key frame.
- 1e8c590 Add missing MessagePackObject attribute.
- ce2aed0 Detect and shut down duplicate DesktopClients on Windows.
- b877e09 Implement keyboard state reset for X11 and macOS; enhance key tracking in RemoteDisplay
- 49125b5 Track modifier key state.
- 31b38f4 Refactor SKRect and Rectangle conversions in SkiaSharpExtensions and update DesktopCapturer and ImageUtility to use SKRect for improved consistency
- d2f64fe Remove unused IDesktopClientUpdater dependency and enhance update check with cancellation token support
- d8c625f Merge branch 'main' of github.com:bitbound/ControlR-Private
- 8738a12 Refactor AgentHeartbeatTimer and related services for improved heartbeat management and connection handling
- a35aa10 Default to Dark theme on Windows (#4)
- 6c1057e Update GetFrameDirtyRects for API changes.
- a3f77c6 Remove TokenUiAccess.
- f1b4233 Update packages.
- 13e5f82 Rework input simulation. (#3)
- f100869 Update AGENTS.md
- 5fa682e Reimplement dispose is RemoteDisplay's js, using mutation observer.
- f4180d9 Rework theme and apply it to DesktopClient. (#2)
- c1fa013 Update icns path.
- 975a8d2 Merged PR 39: Refactor input simulation to consider both KeyboardEvent.key and KeyboardEvent.code.
- e6cd498 Merge pull request #1 from bitbound/claude/design-welcome-component-011CUqhFUe6FSpoXV24XzQya
- 002f351 Adjust welcome screen and connection indicator.
- ca79976 Move CSS to component-scoped file
- b45ef47 Enhance Welcome.razor component with modern design
- e4353b6 Rename icons in wwwroot.
- 5dce1ef Remove "sendKeyPress" js interop method. No longer needed.
- d664d64 Update demo server url.
- d3d009e Merged PR 38: Create new theme and dark/light toggle.
- d221e92 Add LoggedInUserProvider.
- 0dff950 Refactor: Replace duplicate logic for retrieving logged-in users with
ILoggedInUserProvideracross services. AddILoggedInUserProviderdependency injection where necessary. - 899e62a Enhance session handling in DesktopClientWatcherLinux to ignore closing and display manager sessions
- 86bbac3 Merged PR 37: Add the ability to create a server-wide alert banner.
- 01a38c6 Rework VIewrHub.
- 3378da2 Change license from GPLv3 to AGPLv3
- 389674d Extract IDesktopClientFileVerifier.
- d96636b Refactor IpcClientAuthenticatorTests to use consistent mock variable names
- 045485e Fix constructor params in test.
- f2c638f Merged PR 36: Add IPC client authentication mechanisms.
- 7566fb1 Allow 2 parallel SignalR messages per client.
- adfc463 Merged PR 35: Re-implement automatic viewer reconnects.
- a396817 Observe cancellation tokens.
- 2530b2a Fix task return.
- 20460ba Merged PR 34: Modify agent update to avoid need for Cloudflare cache bypass.
- 3b15f25 Move Copilot instrucitons to AGENTS.md
- 13b32dd Refactor.
- 81e339b Add controlr-network back in for deterministic gateway IP to add to ControlR options.
- 1a99e30 Add screen wake lock on the browser during remote control.
- b1d9871 Toggle fullscreen on whole document so popovers are visible.
- 085424f Zoom out when pinch-zoom transitions from scaled to original.
- 8b6cb86 Merged PR 33: Extract DeviceAccessHub from ViewerHub to separate SignalR connections.
- d73fc39 Refactor image utility calculations for clarity; add MaybeDisposable extension for conditional disposal management.
This list of changes was auto generated.