Skip to content

Commit fe4324e

Browse files
authored
chore(release): prepare for 2026.1.2 (#1759)
1 parent a18e6b9 commit fe4324e

10 files changed

Lines changed: 76 additions & 13 deletions

File tree

CHANGELOG.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,54 @@
22

33
This document provides a list of notable changes introduced in Devolutions Gateway service, installer and Jetsocat.
44

5+
## 2026.1.2 (2026-04-18)
6+
7+
### Features
8+
9+
- _dgw,agent_: agent self update and scheduled updates ([#1726](https://github.com/Devolutions/devolutions-gateway/issues/1726)) ([541abfeed2](https://github.com/Devolutions/devolutions-gateway/commit/541abfeed2982540365a99df47980959acb53e8a)) ([ARC-447](https://devolutions.atlassian.net/browse/ARC-447)) ([DGW-371](https://devolutions.atlassian.net/browse/DGW-371))
10+
11+
- Devolutions Agent self-update using shim executable.
12+
- Scheduled updates.
13+
- `/jet/update` endpoint improvements (moved params to request body, deprecated query param).
14+
- New `/jet/update/schedule` endpoint for controlling on-machine update scheduling.
15+
- New GET endpoints for both `/jet/update` and `/jet/update/schedule`. Agent now provides new `update_status.json` for querying product update and schedule status.
16+
17+
### Bug Fixes
18+
19+
- _jetsocat_: `--log-term` was logging to stdout instead of stderr ([48242abb7e](https://github.com/Devolutions/devolutions-gateway/commit/48242abb7edaea757f46b3b7c23b905997fa00be))
20+
21+
The `--log-term` flag was routing log output through stdout, polluting the MCP stdio JSON-RPC channel and any other stdout-based protocol. Fixed to use stderr, which is the correct descriptor for diagnostic output.
22+
23+
- _jetsocat_: always send JSON-RPC message on MCP proxy backend disconnect ([5a124c6c4b](https://github.com/Devolutions/devolutions-gateway/commit/5a124c6c4ba1ecd6c52fb90b7ba38288459a4860))
24+
25+
When the backend MCP process disconnects, the proxy now always sends a protocol-level message to the client before exiting, instead of silently closing the stdio channel:
26+
27+
- `SendError::Fatal` (write to broken backend): JSON-RPC error response (-32099) with the pending request id.
28+
- `ReadError::Fatal` with a pending request: JSON-RPC error response (-32099) so the client can correlate it with the outstanding request.
29+
- `ReadError::Fatal` with no pending request: a `$/proxy/serverDisconnected` notification so the client is informed even without an active request.
30+
31+
- _jetsocat_: properly JSON-escape error details in MCP proxy JSON-RPC error responses ([e4052b2709](https://github.com/Devolutions/devolutions-gateway/commit/e4052b27098e96e605cf6706c9e46bed2451f7c7))
32+
33+
- _dgw_: report disk space when recording dir does not exist yet ([#1746](https://github.com/Devolutions/devolutions-gateway/issues/1746)) ([10c9cd0d77](https://github.com/Devolutions/devolutions-gateway/commit/10c9cd0d7798adf3c0a2551dd593bcfe4faea0c3)) ([DGW-372](https://devolutions.atlassian.net/browse/DGW-372))
34+
35+
When the recording folder has not been created yet, `GetDiskFreeSpaceExW` / `statvfs` failed with OS error 3 because the path did not exist, causing `recording_storage_total_space` and `recording_storage_available_space` to be absent from the heartbeat response. Fix by walking up to the nearest existing ancestor before querying disk space.
36+
37+
- _dgw_: add warn logs to shadow recording error paths ([#1749](https://github.com/Devolutions/devolutions-gateway/issues/1749)) ([773104086f](https://github.com/Devolutions/devolutions-gateway/commit/773104086f9a672469d03b7b0d3334cc8ce44884)) ([DGW-373](https://devolutions.atlassian.net/browse/DGW-373))
38+
39+
Added `warn!` logs to all 4 `InternalError` (close code 4002) branches in the `shadow_recording` handler. Previously, these error paths silently closed the WebSocket with no diagnostic output, making production debugging nearly impossible.
40+
41+
- _dgw_: resolve WER APIs dynamically to support Windows Server 2016 ([#1751](https://github.com/Devolutions/devolutions-gateway/issues/1751)) ([7fe1038225](https://github.com/Devolutions/devolutions-gateway/commit/7fe10382252b578ce4e4969eb9322c7f1b191072)) ([DGW-368](https://devolutions.atlassian.net/browse/DGW-368))
42+
43+
`WerRegisterExcludedMemoryBlock` is absent from `wer.dll` on Windows Server 2016 RTM (NT 10.0.14393). The static import introduced in v2026.1.1 caused the Windows loader to refuse starting `DevolutionsGateway.exe` on those hosts. Replaced with runtime resolution via `GetModuleHandleW` / `GetProcAddress`, cached in a `OnceLock`. The binary now starts on any Windows 10/Server 2016 build and silently skips WER dump exclusion when the API is unavailable.
44+
45+
- _agent_: configure features correctly during silent install by passing feature states via CustomActionData ([108d2efdfb](https://github.com/Devolutions/devolutions-gateway/commit/108d2efdfba6a8720d9661d58f8e683397886637)) ([DGW-374](https://devolutions.atlassian.net/browse/DGW-374))
46+
47+
- _agent_: propagate registry open errors during agent install detection ([14295159](https://github.com/Devolutions/devolutions-gateway/commit/14295159060c025c388d6fbdab7c5040d08bcff6)) ([DGW-375](https://devolutions.atlassian.net/browse/DGW-375))
48+
49+
- _dgw_: overhaul Linux RPM/DEB packaging ([#1747](https://github.com/Devolutions/devolutions-gateway/issues/1747)) ([a18e6b92d2](https://github.com/Devolutions/devolutions-gateway/commit/a18e6b92d2284e371a0d17866259cbba67d706aa)) ([DGW-366](https://devolutions.atlassian.net/browse/DGW-366))
50+
51+
RPM: bundle the systemd unit file directly (eliminating the `service register` call), ship a systemd preset file so the service is enabled on fresh RHEL/Rocky install, use `systemd-rpm-macros` for correct lifecycle semantics, fix `prerm`/`postrm` scripts, harden config directory permissions to 750. DEB: mirror RPM service lifecycle semantics (enable on fresh install but do not start; try-restart on upgrade), harden config directory permissions to 750, add `Description=` to unit file. Both packages print a post-install message directing the admin to configure and start the service.
52+
553
## 2026.1.1 (2026-04-01)
654

755
### Features

Cargo.lock

Lines changed: 7 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ default-members = [
1919
]
2020

2121
[workspace.package]
22-
version = "2026.1.1"
22+
version = "2026.1.2"
2323

2424
[profile.profiling]
2525
inherits = "release"

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
2026.1.1
1+
2026.1.2

crates/devolutions-pedm-shell-ext/AppxManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
1212
IgnorableNamespaces="uap uap2 uap3 rescap desktop desktop4 desktop5 uap10 com">
1313
<Identity Name="DevolutionPEDMShellExtension" ProcessorArchitecture="neutral" Publisher="CN=Devolutions"
14-
Version="2026.1.1.0" />
14+
Version="2026.1.2.0" />
1515
<Properties>
1616
<DisplayName>Devolutions Agent</DisplayName>
1717
<PublisherDisplayName>Devolutions</PublisherDisplayName>

dotnet/DesktopAgent/DesktopAgent.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<AssemblyName>DevolutionsDesktopAgent</AssemblyName>
77
<AssemblyTitle>Devolutions Agent</AssemblyTitle>
88
<LangVersion>latest</LangVersion>
9-
<Version>2026.1.1.0</Version>
9+
<Version>2026.1.2.0</Version>
1010
<Company>Devolutions</Company>
1111
<Copyright>Copyright © 2025</Copyright>
1212
<Product>Devolutions Agent</Product>

fuzz/Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package/AgentLinux/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
# Packaging changelog
22

3+
## 2026.1.2 (2026-04-18)
4+
5+
- No changes.
6+
37
## 2026.1.1 (2026-04-01)
48

59
- No changes.

package/Linux/CHANGELOG.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
# Packaging changelog
22

3+
## 2026.1.2 (2026-04-18)
4+
5+
- RPM: bundles the systemd unit file directly in the package, eliminating the `service register` post-install call that caused a systemd startup failure on RHEL/Rocky Linux.
6+
- RPM: ships a systemd preset file (`85-devolutions-gateway.preset`) so the service is enabled on fresh install on RHEL/Rocky Linux (which defaults to `disable *` for unknown units).
7+
- RPM: rewrites `%post`, `%preun`, and `%postun` scripts with correct systemd lifecycle semantics (enable on fresh install; try-restart on upgrade; disable on erase).
8+
- RPM: fixes `%preun`/`%postun` scripts to use RPM numeric arguments (`$1`) instead of Debian-style strings.
9+
- RPM: preserves config on removal (RPM has no purge concept).
10+
- DEB: mirrors RPM service lifecycle — enable on fresh install but do not start; try-restart on upgrade.
11+
- Both: config directory permissions hardened to 750.
12+
- Both: print a post-install message directing the admin to configure `gateway.json` and start the service.
13+
314
## 2026.1.1 (2026-04-01)
415

516
- Fixes the minimum glibc version declared in the Debian package manifest (was 2.31, now correctly 2.27), allowing installation on older distributions such as Ubuntu 18.04.

powershell/DevolutionsGateway/DevolutionsGateway.psd1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
RootModule = 'DevolutionsGateway.psm1'
88

99
# Version number of this module.
10-
ModuleVersion = '2026.1.1'
10+
ModuleVersion = '2026.1.2'
1111

1212
# Supported PSEditions
1313
CompatiblePSEditions = 'Desktop', 'Core'

0 commit comments

Comments
 (0)