Skip to content

chore(release): prepare for publishing - #2067

Open
devolutionsbot wants to merge 1 commit into
masterfrom
release-plz/2026-10-01T12-37-25Z
Open

devolutionsbot wants to merge 1 commit into
masterfrom
release-plz/2026-10-01T12-37-25Z

Conversation

@devolutionsbot

@devolutionsbot devolutionsbot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

🤖 New release

  • ironrdp-error: 0.2.0 -> 0.2.1 (✓ API compatible changes)
  • ironrdp-core: 0.2.1 -> 0.3.0 (⚠ API breaking changes)
  • ironrdp-pdu: 0.9.0 -> 0.10.0 (⚠ API breaking changes)
  • ironrdp-svc: 0.8.0 -> 0.9.0 (✓ API compatible changes)
  • ironrdp-connector: 0.10.0 -> 0.11.0 (✓ API compatible changes)
  • ironrdp-async: 0.10.0 -> 0.11.0 (✓ API compatible changes)
  • ironrdp-acceptor: 0.10.0 -> 0.11.0 (✓ API compatible changes)
  • ironrdp-cfg: 0.1.0 -> 0.2.0 (⚠ API breaking changes)
  • ironrdp-cliprdr: 0.7.0 -> 0.8.0 (✓ API compatible changes)
  • ironrdp-dvc: 0.8.0 -> 0.9.0 (⚠ API breaking changes)
  • ironrdp-displaycontrol: 0.8.0 -> 0.9.0 (✓ API compatible changes)
  • ironrdp-dvc-pipe-proxy: 0.5.0 -> 0.5.1 (✓ API compatible changes)
  • ironrdp-graphics: 0.9.0 -> 0.10.0 (⚠ API breaking changes)
  • ironrdp-egfx: 0.3.0 -> 0.4.0 (✓ API compatible changes)
  • ironrdp-tls: 0.2.2 -> 0.2.3 (✓ API compatible changes)
  • ironrdp-mstsgu: 0.0.1 -> 0.0.2 (✓ API compatible changes)
  • ironrdp-rail: 0.1.0
  • ironrdp-rdcleanpath: 0.2.2 -> 0.2.3 (✓ API compatible changes)
  • ironrdp-rdpdr: 0.7.0 -> 0.8.0 (⚠ API breaking changes)
  • ironrdp-rdpsnd: 0.9.0 -> 0.10.0 (⚠ API breaking changes)
  • ironrdp-rdpei: 0.1.0
  • ironrdp-rdpel: 0.0.0
  • ironrdp-rdpeudp: 0.1.0
  • ironrdp-rdpemt: 0.1.0
  • ironrdp-rdpeudp-tokio: 0.1.0
  • ironrdp-rdpsnd-native: 0.7.0 -> 0.7.1 (✓ API compatible changes)
  • ironrdp-bulk: 0.1.1 -> 0.2.0 (✓ API compatible changes)
  • ironrdp-session: 0.11.0 -> 0.12.0 (⚠ API breaking changes)
  • ironrdp-vmconnect: 0.1.0
  • ironrdp-dvc-com-plugin: 0.1.3 -> 0.1.4 (✓ API compatible changes)
  • ironrdp-rdpewa: 0.1.0
  • ironrdp-rdpewa-native: 0.1.0
  • ironrdp-client: 0.1.0 -> 0.2.0 (✓ API compatible changes)
  • ironrdp-input: 0.7.0 -> 0.7.1 (✓ API compatible changes)
  • ironrdp-ainput: 0.8.0 -> 0.9.0 (✓ API compatible changes)
  • ironrdp-str: 0.1.1 -> 0.2.0 (✓ API compatible changes)
  • ironrdp-usb: 0.1.0
  • ironrdp-server: 0.13.0 -> 0.14.0 (✓ API compatible changes)
  • ironrdp: 0.17.0 -> 0.18.0 (✓ API compatible changes)
  • ironrdp-blocking: 0.10.0 -> 0.11.0 (✓ API compatible changes)
  • ironrdp-cliprdr-format: 0.2.0 -> 0.3.0 (✓ API compatible changes)
  • ironrdp-rdpdr-native: 0.7.0 -> 0.8.0 (⚠ API breaking changes)
  • ironrdp-agent: 0.1.0 -> 0.1.1 (✓ API compatible changes)
  • ironrdp-viewer: 0.1.0 -> 0.2.0 (✓ API compatible changes)
  • ironrdp-cliprdr-native: 0.7.0 -> 0.7.1
  • ironrdp-echo: 0.4.0 -> 0.4.1
  • ironrdp-tokio: 0.10.0 -> 0.10.1
  • ironrdp-nscodec: 0.2.0 -> 0.2.1
  • ironrdp-futures: 0.8.0 -> 0.8.1

⚠ ironrdp-core breaking changes

--- failure enum_struct_variant_field_added: pub enum struct variant field added ---

Description:
An enum's exhaustive struct variant has a new field, which has to be included when constructing or matching on this variant.
        ref: https://doc.rust-lang.org/reference/attributes/type_system.html#the-non_exhaustive-attribute
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/enum_struct_variant_field_added.ron

Failed in:
  field offset of variant EncodeErrorKind::NotEnoughBytes in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/encode.rs:49
  field offset of variant EncodeErrorKind::InvalidField in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/encode.rs:60
  field offset of variant EncodeErrorKind::UnexpectedMessageType in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/encode.rs:69
  field offset of variant EncodeErrorKind::UnsupportedVersion in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/encode.rs:78
  field offset of variant EncodeErrorKind::UnsupportedValue in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/encode.rs:90
  field offset of variant DecodeErrorKind::NotEnoughBytes in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/decode.rs:54
  field offset of variant DecodeErrorKind::InvalidField in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/decode.rs:65
  field offset of variant DecodeErrorKind::UnexpectedMessageType in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/decode.rs:74
  field offset of variant DecodeErrorKind::UnsupportedVersion in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/decode.rs:83
  field offset of variant DecodeErrorKind::UnsupportedValue in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/decode.rs:95

--- failure function_parameter_count_changed: pub fn parameter count changed ---

Description:
A publicly-visible function now takes a different number of parameters.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/function_parameter_count_changed.ron

Failed in:
  ironrdp_core::invalid_field_err now takes 4 parameters instead of 3, in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/error.rs:103
  ironrdp_core::unsupported_value_err now takes 4 parameters instead of 3, in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/error.rs:180
  ironrdp_core::not_enough_bytes_err now takes 4 parameters instead of 3, in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/error.rs:64
  ironrdp_core::unexpected_message_type_err now takes 3 parameters instead of 2, in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/error.rs:126
  ironrdp_core::invalid_field_err_with_source now takes 5 parameters instead of 4, in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/error.rs:92
  ironrdp_core::unsupported_version_err now takes 3 parameters instead of 2, in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/error.rs:148

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/inherent_method_missing.ron

Failed in:
  ReadCursor::rewinded, previously in file /tmp/.tmpuEgTIz/ironrdp-core/src/cursor.rs:496
  WriteCursor::rewinded, previously in file /tmp/.tmpuEgTIz/ironrdp-core/src/cursor.rs:732

--- failure trait_method_parameter_count_changed: pub trait method parameter count changed ---

Description:
A trait method now takes a different number of parameters.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-item-signature
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/trait_method_parameter_count_changed.ron

Failed in:
  UnexpectedMessageTypeErr::unexpected_message_type now takes 3 instead of 2 parameters, in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/error.rs:122
  InvalidFieldErr::invalid_field now takes 4 instead of 3 parameters, in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/error.rs:88
  UnsupportedVersionErr::unsupported_version now takes 3 instead of 2 parameters, in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/error.rs:144
  UnsupportedValueErr::unsupported_value now takes 4 instead of 3 parameters, in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/error.rs:164
  NotEnoughBytesErr::not_enough_bytes now takes 4 instead of 3 parameters, in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-core/src/error.rs:58

⚠ ironrdp-pdu breaking changes

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field ConnectionRequest.correlation_info in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-pdu/src/nego.rs:314
  field ShareDataCtx.compression_flags in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-pdu/src/rdp/headers.rs:155
  field ShareDataCtx.compression_type in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-pdu/src/rdp/headers.rs:156

--- failure enum_changed_kind: pub enum changed kind ---

Description:
A public enum has been replaced by a different kind of item at the same path, which breaks code that relied on the enum's variants and representation.
        ref: https://github.com/obi1kenobi/cargo-semver-checks/issues/302
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/enum_changed_kind.ron

Failed in:
  enum ironrdp_pdu::gcc::KeyboardType became struct in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-pdu/src/gcc/core_data/client.rs:569

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/enum_variant_added.ron

Failed in:
  variant ProtocolIndependentCode:ServerShutdown in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-pdu/src/rdp/server_error_info.rs:130
  variant ProtocolIndependentCode:ServerReboot in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-pdu/src/rdp/server_error_info.rs:131
  variant FastPathUpdate:Orders in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-pdu/src/basic_output/fast_path/mod.rs:227
  variant ShareDataPdu:Compressed in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-pdu/src/rdp/headers.rs:556

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/inherent_method_missing.ron

Failed in:
  KeyboardType::as_u32, previously in file /tmp/.tmpuEgTIz/ironrdp-pdu/src/gcc/core_data/client.rs:588

⚠ ironrdp-cfg breaking changes

--- failure trait_method_added: pub trait method added ---

Description:
A non-sealed public trait added a new method without a default implementation, which breaks downstream implementations of the trait
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#trait-new-item-no-default
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/trait_method_added.ron

Failed in:
  trait method ironrdp_cfg::PropertySetExt::remote_application_mode in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:350
  trait method ironrdp_cfg::PropertySetExt::set_remote_application_mode in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:352
  trait method ironrdp_cfg::PropertySetExt::clear_remote_application_mode in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:354
  trait method ironrdp_cfg::PropertySetExt::audio_capture_mode in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:364
  trait method ironrdp_cfg::PropertySetExt::set_audio_capture_mode in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:366
  trait method ironrdp_cfg::PropertySetExt::clear_audio_capture_mode in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:368
  trait method ironrdp_cfg::PropertySetExt::redirect_webauthn in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:489
  trait method ironrdp_cfg::PropertySetExt::set_redirect_webauthn in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:491
  trait method ironrdp_cfg::PropertySetExt::clear_redirect_webauthn in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:493
  trait method ironrdp_cfg::PropertySetExt::named_pipe in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:630
  trait method ironrdp_cfg::PropertySetExt::set_named_pipe in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:632
  trait method ironrdp_cfg::PropertySetExt::clear_named_pipe in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:634
  trait method ironrdp_cfg::PropertySetExt::vmconnect_basic in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:637
  trait method ironrdp_cfg::PropertySetExt::set_vmconnect_basic in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:639
  trait method ironrdp_cfg::PropertySetExt::clear_vmconnect_basic in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:641
  trait method ironrdp_cfg::PropertySetExt::vmconnect_current_user in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:644
  trait method ironrdp_cfg::PropertySetExt::set_vmconnect_current_user in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:646
  trait method ironrdp_cfg::PropertySetExt::clear_vmconnect_current_user in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:648
  trait method ironrdp_cfg::PropertySetExt::vmconnect_id in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:651
  trait method ironrdp_cfg::PropertySetExt::set_vmconnect_id in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:653
  trait method ironrdp_cfg::PropertySetExt::clear_vmconnect_id in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:655
  trait method ironrdp_cfg::PropertySetExt::sandbox_id in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:658
  trait method ironrdp_cfg::PropertySetExt::set_sandbox_id in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:660
  trait method ironrdp_cfg::PropertySetExt::clear_sandbox_id in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-cfg/src/lib.rs:662

⚠ ironrdp-dvc breaking changes

--- failure enum_marked_non_exhaustive: enum marked #[non_exhaustive] ---

Description:
A public enum has been marked #[non_exhaustive]. Pattern-matching on it outside of its crate must now include a wildcard pattern like `_`, or it will fail to compile.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#attr-adding-non-exhaustive
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/enum_marked_non_exhaustive.ron

Failed in:
  enum DrdynvcClientPdu in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-dvc/src/pdu.rs:62
  enum DrdynvcDataPdu in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-dvc/src/pdu.rs:19
  enum DrdynvcServerPdu in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-dvc/src/pdu.rs:122

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/inherent_method_missing.ron

Failed in:
  DrdynvcClient::get_dvc_by_type_id, previously in file /tmp/.tmpuEgTIz/ironrdp-dvc/src/client.rs:153

--- failure method_requires_different_generic_type_params: method now requires a different number of generic type parameters ---

Description:
A method now requires a different number of generic type parameters than it used to. Uses of this method that supplied the previous number of generic types will be broken.
        ref: https://doc.rust-lang.org/reference/items/generics.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/method_requires_different_generic_type_params.ron

Failed in:
  ironrdp_dvc::DrdynvcClient::get_dvc_by_channel_id takes 1 generic types instead of 0, in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-dvc/src/client.rs:281
  ironrdp_dvc::DrdynvcClient::get_dvc_by_channel_id_mut takes 1 generic types instead of 0, in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-dvc/src/client.rs:294

--- failure struct_missing: pub struct removed or renamed ---

Description:
A publicly-visible struct cannot be imported by its prior path. A `pub use` may have been removed, or the struct itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/struct_missing.ron

Failed in:
  struct ironrdp_dvc::DynamicVirtualChannel, previously in file /tmp/.tmpuEgTIz/ironrdp-dvc/src/lib.rs:103

⚠ ironrdp-graphics breaking changes

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field DecodedTile.update_rectangles in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-graphics/src/progressive.rs:1152
  field TileState.base_quant in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-graphics/src/progressive.rs:832

--- failure enum_marked_non_exhaustive: enum marked #[non_exhaustive] ---

Description:
A public enum has been marked #[non_exhaustive]. Pattern-matching on it outside of its crate must now include a wildcard pattern like `_`, or it will fail to compile.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#attr-adding-non-exhaustive
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/enum_marked_non_exhaustive.ron

Failed in:
  enum ZgfxError in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-graphics/src/zgfx/mod.rs:647

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/enum_variant_added.ron

Failed in:
  variant RleError:DimensionsTooLarge in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-graphics/src/rle.rs:122
  variant RlgrError:OutputTooSmall in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-graphics/src/rlgr.rs:462
  variant ProgressiveDecodeError:Srl in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-graphics/src/progressive.rs:1181
  variant ProgressiveDecodeError:MissingTileReference in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-graphics/src/progressive.rs:1189

--- failure method_parameter_count_changed: pub method parameter count changed ---

Description:
A publicly-visible method now takes a different number of parameters, not counting the receiver (self) parameter.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/method_parameter_count_changed.ron

Failed in:
  ironrdp_graphics::progressive::ProgressiveDecoder::decode_bitmap takes 4 parameters in /tmp/.tmpuEgTIz/ironrdp-graphics/src/progressive.rs:1068, but now takes 5 parameters in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-graphics/src/progressive.rs:1330
  ironrdp_graphics::progressive::ProgressiveDecoder::delete_context takes 1 parameters in /tmp/.tmpuEgTIz/ironrdp-graphics/src/progressive.rs:1151, but now takes 2 parameters in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-graphics/src/progressive.rs:1531

⚠ ironrdp-rdpdr breaking changes

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field StatusReturn.reader_c_bytes in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:1947
  field ListReadersReturn.encoding in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:921
  field ListReadersReturn.c_bytes in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:923
  field TransmitReturn.recv_len in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:1837
  field ReadCacheReturn.data_len in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:2255
  field ServerDriveLockControlRequest.operation in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/efs.rs:5381
  field ServerDriveLockControlRequest.wait in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/efs.rs:5382
  field ServerDriveLockControlRequest.locks in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/efs.rs:5383

--- failure constructible_struct_adds_private_field: struct no longer constructible due to new private field ---

Description:
A struct constructible with a struct literal has a new non-public field. It can no longer be constructed using a struct literal outside of its crate.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/constructible_struct_adds_private_field.ron

Failed in:
  field ScardContext.len in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:195
  field ScardContext.bytes in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:197
  field ScardHandle.len in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:1471
  field ScardHandle.bytes in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:1473

--- failure copy_impl_added: type now implements Copy ---

Description:
A public type now implements Copy, causing non-move closures to capture it by reference instead of moving it.
        ref: https://github.com/rust-lang/rust/issues/100905
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/copy_impl_added.ron

Failed in:
  ironrdp_rdpdr::pdu::esc::ScardHandle in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:1468
  ironrdp_rdpdr::pdu::efs::AnyIoCtlCode in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/efs.rs:1901

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/enum_variant_added.ron

Failed in:
  variant FileInformationClass:Stream in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/efs.rs:3074
  variant MajorFunction:FlushBuffers in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/efs.rs:1714
  variant MajorFunction:QuerySecurity in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/efs.rs:1730
  variant MajorFunction:SetSecurity in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/efs.rs:1732
  variant ScardCall:ListReaderGroupsCall in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:28
  variant ScardCall:LocateCardsCall in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:31
  variant ScardCall:LocateCardsByAtrCall in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:32
  variant ScardCall:ReconnectCall in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:34
  variant ScardCall:StateCall in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:38
  variant ScardCall:ControlCall in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:39
  variant ScardCall:GetAttribCall in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:40
  variant ScardCall:SetAttribCall in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:41
  variant ScardCall:GetTransmitCountCall in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:42
  variant ScardCall:ContextAndStringCall in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:48
  variant ScardCall:ContextAndTwoStringCall in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:49
  variant RdpdrPdu:ClientDriveQuerySecurityResponse in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/mod.rs:34
  variant RdpdrPdu:DeviceFlushBuffersResponse in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/mod.rs:40
  variant RdpdrPdu:ClientDriveSetSecurityResponse in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/mod.rs:42
  variant RdpdrPdu:ClientDriveNotifyChangeDirectoryResponse in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/mod.rs:43
  variant RdpdrPdu:ClientDriveLockControlResponse in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/mod.rs:44
  variant ServerDriveIoRequest:DeviceFlushBuffersRequest in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/efs.rs:2090
  variant ServerDriveIoRequest:ServerDriveQuerySecurityRequest in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/efs.rs:2093
  variant ServerDriveIoRequest:ServerDriveSetSecurityRequest in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/efs.rs:2094

--- failure method_parameter_count_changed: pub method parameter count changed ---

Description:
A publicly-visible method now takes a different number of parameters, not counting the receiver (self) parameter.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/method_parameter_count_changed.ron

Failed in:
  ironrdp_rdpdr::pdu::esc::ListReadersReturn::new takes 2 parameters in /tmp/.tmpuEgTIz/ironrdp-rdpdr/src/pdu/esc/mod.rs:763, but now takes 3 parameters in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:931

--- failure struct_pub_field_missing: pub struct's pub field removed or renamed ---

Description:
A publicly-visible struct has at least one public field that is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/struct_pub_field_missing.ron

Failed in:
  field value of struct ScardContext, previously in file /tmp/.tmpuEgTIz/ironrdp-rdpdr/src/pdu/esc/mod.rs:121
  field context of struct ScardHandle, previously in file /tmp/.tmpuEgTIz/ironrdp-rdpdr/src/pdu/esc/mod.rs:1041
  field value of struct ScardHandle, previously in file /tmp/.tmpuEgTIz/ironrdp-rdpdr/src/pdu/esc/mod.rs:1044

--- failure struct_pub_field_now_doc_hidden: pub struct field is now #[doc(hidden)] ---

Description:
A pub field of a pub struct is now marked #[doc(hidden)] and is no longer part of the public API.
        ref: https://doc.rust-lang.org/rustdoc/write-documentation/the-doc-attribute.html#hidden
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/struct_pub_field_now_doc_hidden.ron

Failed in:
  field ScardHandle.context in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/esc/mod.rs:1468

--- failure trait_added_supertrait: non-sealed trait added new supertraits ---

Description:
A non-sealed trait added one or more supertraits, which breaks downstream implementations of the trait
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#generic-bounds-tighten
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/trait_added_supertrait.ron

Failed in:
  trait ironrdp_rdpdr::pdu::efs::IoCtlCode gained Into in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/efs.rs:1896
  trait ironrdp_rdpdr::pdu::efs::IoCtlCode gained Copy in file /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr/src/pdu/efs.rs:1896

⚠ ironrdp-rdpsnd breaking changes

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field WavePdu.data_prefix in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpsnd/src/pdu/mod.rs:796
  field WavePdu.audio_length in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpsnd/src/pdu/mod.rs:798

--- failure struct_missing: pub struct removed or renamed ---

Description:
A publicly-visible struct cannot be imported by its prior path. A `pub use` may have been removed, or the struct itself may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/struct_missing.ron

Failed in:
  struct ironrdp_rdpsnd::pdu::SndWavePdu, previously in file /tmp/.tmpuEgTIz/ironrdp-rdpsnd/src/pdu/mod.rs:757

--- failure struct_pub_field_missing: pub struct's pub field removed or renamed ---

Description:
A publicly-visible struct has at least one public field that is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/struct_pub_field_missing.ron

Failed in:
  field data of struct WavePdu, previously in file /tmp/.tmpuEgTIz/ironrdp-rdpsnd/src/pdu/mod.rs:804

--- failure type_mismatched_generic_lifetimes: type now takes a different number of generic lifetimes ---

Description:
A type now takes a different number of generic lifetime parameters. Uses of this type that name the previous number of parameters will be broken.
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/type_mismatched_generic_lifetimes.ron
Failed in:
  Struct WavePdu (1 -> 0 lifetime params) in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpsnd/src/pdu/mod.rs:791

⚠ ironrdp-session breaking changes

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/enum_variant_added.ron

Failed in:
  variant UpdateKind:Orders in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-session/src/fast_path.rs:117
  variant ActiveStageOutput:MonitorLayout in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-session/src/active_stage.rs:815
  variant ActiveStageOutput:WindowingOrders in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-session/src/active_stage.rs:820
  variant ActiveStageOutput:SaveSessionInfo in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-session/src/active_stage.rs:826
  variant ActiveStageOutput:AutoReconnectCookie in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-session/src/active_stage.rs:859
  variant ActiveStageOutput:AutoReconnectFailed in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-session/src/active_stage.rs:861
  variant ProcessorOutput:SaveSessionInfo in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-session/src/x224/mod.rs:40
  variant ProcessorOutput:AutoReconnectCookie in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-session/src/x224/mod.rs:65
  variant ProcessorOutput:AutoReconnectFailed in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-session/src/x224/mod.rs:71
  variant ProcessorOutput:MonitorLayout in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-session/src/x224/mod.rs:89

--- failure method_parameter_count_changed: pub method parameter count changed ---

Description:
A publicly-visible method now takes a different number of parameters, not counting the receiver (self) parameter.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/method_parameter_count_changed.ron

Failed in:
  ironrdp_session::fast_path::Processor::process takes 3 parameters in /tmp/.tmpuEgTIz/ironrdp-session/src/fast_path.rs:59, but now takes 4 parameters in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-session/src/fast_path.rs:165
  ironrdp_session::x224::Processor::process takes 1 parameters in /tmp/.tmpuEgTIz/ironrdp-session/src/x224/mod.rs:128, but now takes 2 parameters in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-session/src/x224/mod.rs:211

--- failure method_requires_different_generic_type_params: method now requires a different number of generic type parameters ---

Description:
A method now requires a different number of generic type parameters than it used to. Uses of this method that supplied the previous number of generic types will be broken.
        ref: https://doc.rust-lang.org/reference/items/generics.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/method_requires_different_generic_type_params.ron

Failed in:
  ironrdp_session::ActiveStage::get_dvc_by_channel_id takes 1 generic types instead of 0, in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-session/src/active_stage.rs:500
  ironrdp_session::x224::Processor::get_dvc_by_channel_id takes 1 generic types instead of 0, in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-session/src/x224/mod.rs:201

--- failure struct_pub_field_missing: pub struct's pub field removed or renamed ---

Description:
A publicly-visible struct has at least one public field that is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/struct_pub_field_missing.ron

Failed in:
  field bulk_decompressor of struct ProcessorBuilder, previously in file /tmp/.tmpuEgTIz/ironrdp-session/src/fast_path.rs:603

⚠ ironrdp-rdpdr-native breaking changes

--- failure auto_trait_impl_removed: auto trait no longer implemented ---

Description:
A public type has stopped implementing one or more auto traits. This can break downstream code that depends on the traits being implemented.
        ref: https://doc.rust-lang.org/reference/special-types-and-traits.html#auto-traits
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.47.0/src/lints/auto_trait_impl_removed.ron

Failed in:
  type NixRdpdrBackend is no longer UnwindSafe, in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr-native/src/nix/backend.rs:22
  type NixRdpdrBackend is no longer RefUnwindSafe, in /tmp/.tmpTYE9yV/IronRDP/crates/ironrdp-rdpdr-native/src/nix/backend.rs:22
Changelog

ironrdp-error

[0.2.1] - 2026-10-07

Features

ironrdp-core

[0.3.0] - 2026-10-07

Features

  • Add NonEmpty (#1444) (bdcc0ceec3)

    Add a NonEmpty<T> collection guaranteeing at least one element. The
    first element (head) is stored inline, so a single-element NonEmpty
    performs no heap allocation, and first() is infallible while len()
    returns a NonZeroUsize, and callers never branch on an "is it empty?"
    case.

  • [breaking] Pass frame arrival time into Sequence::step (#1530) (6a499faece)

ironrdp-pdu

[0.10.0] - 2026-10-07

Security

  • Tolerate unknown security header flags in BasicSecurityHeader (#1458) (a4acab488b)

ironrdp-svc

[0.9.0] - 2026-10-07

Features

ironrdp-connector

[0.11.0] - 2026-10-07

Security

  • [breaking] Implement multitransport bootstrapping handshake (#1098) (e45fbfe0f5)

ironrdp-async

[0.11.0] - 2026-10-07

Security

  • [breaking] Implement multitransport bootstrapping handshake (#1098) (e45fbfe0f5)

ironrdp-acceptor

[0.11.0] - 2026-10-07

Security

ironrdp-cfg

[0.2.0] - 2026-10-07

Security

  • Connect to Windows Sandbox named pipes (#1580) (39b020343d)

    Windows Sandbox's default attach path is a local named pipe carrying
    plain TPKT/X.224 with PROTOCOL_RDP and ENCRYPTION_LEVEL_NONE, not
    TCP:3389 or VMConnect. Allow the connector and client to complete that
    sequence only via an explicit opt-in (enable_standard_rdp_security;
    NamedPipe enables it), and teach ironrdp-agent to resolve pipe path and
    guest credentials from WindowsSandboxServer after wsb start.

    Adds Transport::NamedPipe, ironrdp_named_pipe/ironrdp_sandbox_id
    properties, sandbox list/config/stop CLI helpers via an in-process
    h2/gRPC client on the per-user \\.\pipe\wsandbox\{guid} pipe (no .NET
    helper), and connect --sandbox-id / --sandbox-pipe. Sandbox-derived
    properties are the merge base; explicit .rdp/--prop/flags override them
    while NamedPipe TLS/CredSSP stay forced off. Local :2179+PCB remains
    unsupported.

Features

  • Add RemoteApp channel support (#1637) (ab48c6cb8c)

    Configure and negotiate RAIL connections, then route its static channel
    through the portable client with bounded request queues and server
    control events.

  • Wire MS-RDPEAI capture into Windows client and ActiveX (#1642) (205fe038cc)

    Add the client MS-RDPEAI capture path on top of hardened RDPSND
    playback: connector CFG + static channel wiring, CPAL PCM capture
    backend, ironrdp-client --audio-capture, and ActiveX
    AudioCaptureRedirectionMode.

    PCM capture only accepts encode formats that match the Open capture
    stream, rejects non-16-bit capture (Data PDU size contract), and gates
    the capture backend behind ironrdp-rdpsnd-native/capture.

    Depends on feat(rdpsnd): harden Windows client playback path #1648 (playback).

  • Add native MS-RDPEWA WebAuthn redirection (#1644) (66da78bc4e)

    Implement the RDPEWA dynamic channel with a Windows WebAuthn backend and
    wire RedirectWebAuthn for ActiveX, the optional client feature, and the
    viewer CLI.

    Prefer System32\webauthn.dll via the DVC COM plugin for MSTSC parity.
    The pure-Rust backend forwards ceremonies through a webauthn.dll IWTS
    oneshot so hash-only hosts that omit clientDataJSON still work; public
    WebAuthN* remains a fallback when JSON is present. Recreate
    WebAuthN_Channel opens through shared COM/listener factories because
    Windows opens and closes the channel around each RPC.

    Side effects:

    • New crates ironrdp-rdpewa and ironrdp-rdpewa-native
    • Config key redirectwebauthn; ActiveX ExtendedSettings property
    • ironrdp-daemon webauthn feature for ironrdp-agent
    • IRONRDP_WEBAUTHN_FORCE_NATIVE debug switch
    • Viewer --webauthn/--no-webauthn flags; .rdp redirectwebauthn default
    • ActiveX docs note no AdvancedSettings slot and no IPersist persistence
  • Try a direct connection before the RD Gateway (#1713) (a67dbf47e4)

  • Wire local VMConnect features (#1768) (cf9bdef764)

    Wire VMConnect modes through the client configuration and RDP connector.
    Support current-user host authentication without a password, preserve
    guest credential boundaries, and attach Hyper-V framebuffer redirection
    only for eligible local Windows sessions.

ironrdp-cliprdr

[0.8.0] - 2026-10-07

Features

ironrdp-dvc

[0.9.0] - 2026-10-07

Security

  • Wire UDP multitransport into ironrdp-server (#1954) (73dfa30e38)

    • Add RdpServerBuilder::with_udp_transport(udp_bind_addr): opt-in,
      None by default, no behavior change unless called.
    • When set (and the security mode is Tls or Hybrid, matching the
      reference client's Enhanced-Security-only gate), the acceptor offers UDP
      multitransport, and accept_finalize uses
      accept_finalize_with_multitransport with a callback that binds a fresh
      UDP socket per connection, reuses the connection's own TLS certificate
      (TlsAcceptor::config()) for the sideband transport, and calls
      accept_udp().
    • Once established, the transport is used to migrate EGFX graphics
      traffic off TCP: request_reliable_udp is called opportunistically the
      first time EGFX has data to send (its dynamic channel id is only known
      once the client opens it). From the request on, every server message on
      that channel goes over the tunnel, starting with the batch that
      triggered it: the request carries SOFT_SYNC_TCP_FLUSHED and the server
      MUST keep using the named tunnel immediately after sending it
      (MS-RDPEDYC 2.2.5.1, 3.3.5.3.1). DRDYNVC replies for a tunneled channel
      go over the tunnel too, whichever path produced them. A new
      client_loop select arm feeds incoming tunnel payloads into
      DrdynvcServer::process_tunnel(); payloads that arrive before the
      client's Soft-Sync Response are held and processed once it does
      (3.3.5.3.2), rather than dropped.
    • The UDP accept runs as an ordinary tokio::spawn task, so enabling
      UDP adds no runtime requirement for the caller.
    • A failure before EGFX has moved (bind, handshake, TLS, or the tunnel
      closing) leaves the session on TCP, matching the reference client's
      posture. Once EGFX is on the tunnel, the tunnel closing ends the
      connection: Soft-Sync cannot move a channel back to TCP (MS-RDPEDYC
      2.2.5.1), and the tunnel lasts as long as the connection (MS-RDPEMT
      1.3.3).
    • A client that answers the Initiate Multitransport Request with E_ABORT
      (MS-RDPBCGR 2.2.15.2) has given up on the sideband transport, so the
      pending UDP accept is stopped as soon as that response arrives, whether
      during finalization or later on the message channel, instead of holding
      its socket until the 15 s accept timeout. Windows clients send it about
      2.7 s after connecting.
    • When the UDP bind address has an unspecified IP, each connection's
      socket binds to the local address that client reached over TCP instead.
      A socket bound to the unspecified address replies from whichever address
      the routing table picks, and on a host with several IPv6 addresses that
      is not always the one the client sent to: mstsc dropped the replies and
      gave up with E_ABORT. run() records the address itself; embedders
      driving run_connection_with pass it with the new
      RdpServer::set_connection_local_addr.
    • A successful Initiate Multitransport Response that arrives after
      finalization now enables EGFX migration for the rest of the session,
      provided Soft-Sync was negotiated. mstsc finishes its UDP bootstrap
      after the TCP finalization (0.87 s later in my test), so migration was
      previously decided before its response existed and the session never
      left TCP even with the sideband transport up.
    • The EGFX channel is found whichever way it was registered: an embedder
      that takes a frame handle from its GfxServerFactory registers it as
      GfxDvcBridge, which the migration lookup did not recognise, so it
      never sent the Soft-Sync Request. The Soft-Sync Request, the client's
      response (with the tunnels and channels it accepted) and the switch of
      EGFX onto UDP are now logged at debug level.

Features

  • Expose generic session configuration and lifecycle APIs (#1522) (57b1366650)

ironrdp-displaycontrol

[0.9.0] - 2026-10-07

Features

  • [breaking] Record byte offset on decode and encode error variants (#1266) (a1f9189c30)

ironrdp-dvc-pipe-proxy

[0.5.1] - 2026-10-07

Bug Fixes

ironrdp-graphics

[0.10.0] - 2026-10-07

Features

ironrdp-egfx

[0.4.0] - 2026-10-07

Features

  • Add ClearCodec client-side decode dispatch (#1175) (714dce4662)

    Follow-up to feat(pdu,graphics,egfx): add ClearCodec bitmap compression codec #1174. Supersedes feat(egfx): add send_clearcodec_frame for server-side ClearCodec transmission #1195 (the standalone server-helper PR;
    its 46-line send_clearcodec_frame() is included here).

    Wires ClearCodec into the EGFX client's WireToSurface1 codec dispatch,
    matching the existing AVC420 and Uncompressed decode patterns.

  • Composite client surface commands into pixel buffers (#1460) (9cd36952ca)

  • Decode Planar bitmaps in the client (#1507) (66c8a81be0)

    Wires RDPGFX_CODECID_PLANAR (0x000A) into the EGFX client's
    WireToSurface1 dispatch, alongside the existing ClearCodec and
    Uncompressed paths.

  • Add egfx_avc420_decode oracle and target (#1326) (cafbef1c9f)

    This change adds an assertion-or-panic fuzz oracle for the AVC
    length-prefix to Annex-B conversion that runs inside
    OpenH264Decoder::decode before any OpenH264 entry point. The same
    change refactors the conversion from a private method on
    OpenH264Decoder into two public free functions in
    ironrdp_egfx::pdu::avc. The first function, avc_to_annex_b,
    returns a fresh Vec<u8> and is symmetric with the existing
    annex_b_to_avc. The second function, avc_to_annex_b_into, writes
    into a caller-provided buffer and preserves the per-frame buffer-reuse
    optimization that OpenH264Decoder relied on.

    The conversion is now available unconditionally to any consumer of
    ironrdp-egfx. The previous #[cfg(feature = "openh264")] gating
    went with the location, not the bytes-to-bytes logic, so lifting the
    function out of decode.rs removed the gate too.

    The new oracle exercises two input distributions on every fuzz call:

    • Direct path: the oracle calls avc_to_annex_b(data) on the raw fuzz
      input. This exercises the wrapper on arbitrary byte distributions,
      including inputs that do not parse as Avc420BitmapStream.
    • Decode-chain path: the oracle tries
      Avc420BitmapStream::decode(data);
      on success it calls avc_to_annex_b(stream.data). This exercises the
      wrapper on the realistic post-decode payload distribution.

    The oracle catches panics in the wrapper, OOM allocation from
    attacker-controlled NAL length encoding, and contract violations on the
    produced Annex-B byte stream. The oracle does NOT catch OpenH264
    internal bugs (OSS-Fuzz coverage), the YUV-to-RGBA conversion path
    downstream of OpenH264 (separate workstream), or AVC444 luma plus
    chroma split (sibling target).

    Smoke fuzz ran 10,922,695 iterations in 31 seconds at ~352K exec/s
    sustained with zero crashes. Coverage settled at 158 lines, 456
    features, 69 corpus entries.

    The new target auto-discovers into CI via the cargo xtask fuzz list
    dynamic fan-out mechanism. The new check_egfx_avc420_decode
    regression-replay test in
    crates/ironrdp-testsuite-core/tests/fuzz_regression.rs runs against
    the seed corpus and passes.

  • Decode RFX Progressive tiles (#1673) (f21f1979f4)

    Keep Progressive tile state scoped to its surface and codec context.

    Reject context-less updates that have no state for their surface, and
    expose targeted context and surface cleanup for consumers.

  • [breaking] Populate decode/encode error offsets from cursor positions (#1275) (8607ac5d1c)

ironrdp-tls

[0.2.3] - 2026-10-07

Features

  • Apply certificate validation to gateways (#1775) (312d4466e7)

    Apply the RDP client's certificate-validation policy and callback to
    every
    gateway HTTPS connection.

    Existing gateway callers retain their compatibility default.

Bug Fixes

  • Make certificate validation explicit (#1520) (f1d53c78d3)

    IronRDP deployments commonly use self-signed or private-CA certificates.
    This keeps the historical permissive behavior for unmodified callers
    while making platform-root and server-name validation an explicit
    opt-in.

ironrdp-mstsgu

[0.0.2] - 2026-10-07

Security

  • Add RPC integrity framing (#1839) (db6436eead)

    Provide structural packet-integrity DCE/RPC framing with explicit
    caller-owned signed regions and verifier validation.

    Reject unsupported authentication levels and clear terminal response
    state after failed decoding. Verifier construction, sequence ownership,
    and RPCH transport remain with a future security context.

Features

  • Add Negotiate and NTLM HTTP gateway auth (#1715) (476b897129)

    Corporate RD Gateways typically challenge with Negotiate or NTLM rather
    than Basic, so the WebSocket-only client could not complete the upgrade.

    The first upgrade request omits Authorization. On 401, WWW-Authenticate
    is parsed as an HTTP challenge list and Negotiate is preferred (Kerberos
    then NTLM inside SPNEGO via sspi network_client), then NTLM, then HTTP
    Basic. SSPI and KDC resolution run on spawn_blocking. A 101 may complete
    SSPI from a final GSS token when present. connect and connect_with_port
    signatures are unchanged.

    sspi 0.21 is an implementation-only dependency. HTTP auth tests live in
    tests/http_auth.rs so [lib] test = false can stay. xtask runs that
    target with native-tls. RPCH, UDP, reauth, Detect, extended-auth packet
    exchange, and TLS channel bindings remain out of scope.

  • Add RDG-UDP PDU codecs (#1718) (5c6a28d2a5)

    Encode and decode MS-TSGU UDP framing (CONNECT_PKT, DATA_PKT, DISC_PKT,
    and UDP_CORRELATION_INFO) plus HTTP_CHANNEL_RESPONSE UDP offer metadata.

    A live DTLS side channel is not opened; these helpers only cover the
    packet layouts in [MS-TSGU] 2.2.5.4 and 2.2.11.

  • Decode HTTP service, reauth, and channel-close packets (#1723) (e583e3a1bb)

    PktTy already named ChannelClose, ServiceMessage, and ReauthMessage
    without decoding those payloads.

    Add encode/decode for HTTP_SERVICE_MESSAGE, HTTP_REAUTH_MESSAGE, and
    HTTP_CLOSE_PACKET, plus common MS-TSGU HRESULT display names. The work
    loop logs service and reauth packets. A server channel-close is answered
    with PKT_TYPE_CLOSE_CHANNEL_RESPONSE, then the work task ends.
    Mid-session reauthentication is not performed.

  • Add DCE/RPC fragment codecs (#1725) (438b177645)

    Master ironrdp-mstsgu is WebSocket + HTTP Negotiate/NTLM/Basic and has
    no DCE/RPC types. Add the common-header / fragmentation foundation used
    by a later RPC-over-HTTP transport: PDU errors, syntax version, fragment
    sizes, common header, stream framer, response reassembly, and fault
    parse.

    This does not add TsProxy NDR, RTS, NTLM packet integrity, or a live
    RPCH client.

  • Extract PacketIo from the WebSocket gateway client (#1717) (01aa50bedf)

    Move the HTTPS WebSocket transport, auth upgrade loop, and byte
    read/write helpers out of lib.rs so handshake/tunnel/channel
    sequencing stays separate from I/O.

    GwClient write-side shutdown now closes the outbound sender and
    inbound receiver, then waits for the worker so a local EOF can
    finish even if inbound delivery is blocked. Local shutdown still
    does not send HTTP_CLOSE_PACKET; inbound channel-close handling
    from master is preserved.

    This does not include dual-HTTP, RPCH, proxies, or certificate
    policy APIs.

  • Add RPC-over-HTTP request framing (#1727) (77689c3439)

    Add internal codecs for raw RPCH HTTP request and response framing.

    They validate bounded request and response heads without enabling a live
    RPC-over-HTTP gateway transport.

  • Decode tunnel authorization policy fields (#1730) (6d4e78b1af)

    Decode optional gateway redirection flags, idle timeout, and SoH
    response.
    Expose them through GwClient without enforcing the reported policy.

ironrdp-rail

[0.1.0] - 2026-10-07

Features

  • Add RemoteApp protocol primitives (#1636) (0161906731)

    Add portable RAIL wire types and a typed Remote Programs capability set.

    Validate the RAIL crate's bare no_std and allocation-backed
    configurations in the workspace feature matrix.

    Keep connection setup and windowing behavior outside this protocol
    layer.

ironrdp-rdcleanpath

[0.2.3] - 2026-10-07

Features

  • Support Hyper-V connection ordering (#1505) (5c1816244e)

    Hyper-V over RDCleanPath needs PCB → TLS on the proxy, then CredSSP →
    X.224 on the client. Ordinary RDCleanPath stays X.224-first.

    Still VERSION_1 with the same DER fields. An explicit VMConnect request
    carries a Unicode PCB payload in preconnection_blob with no X.224; the
    proxy encodes the binary PCB. Generic PCB requests keep their existing
    X.224-first behavior.

    Gateway reference implementation:
    Devolutions/devolutions-gateway#1372

    Checked locally: Rust builds, formatting, Svelte typecheck, and .NET
    build. Real nested Hyper-V E2E through Gateway: Native rendered 18
    frames, Avalonia connected and rendered its first frame, and Web
    rendered a non-empty 1280×720 canvas.

ironrdp-rdpdr

[0.8.0] - 2026-10-07

Security

  • Add advanced Windows filesystem semantics (#1590) (d1c63ecd7b)

    Extend the Windows-native RDPDR backend with confined directory,
    notification, lock, security, stream, control, and volume support.
    Decode only the portable IRPs and capability needed to dispatch these
    native operations.

Features

ironrdp-rdpsnd

[0.10.0] - 2026-10-07

Security

  • Support advanced session settings (#1781) (14ef4fd49f)

    Wire administrative-session GCC data, opaque load-balance routing
    tokens, and RDPSND quality selection through the ActiveX settings
    objects and client configuration.

    Keep unrelated transport, cache, video, device, and security policy
    slots as explicit E_NOTIMPL failures.

ironrdp-rdpei

[0.1.0] - YYYY-MM-DD

Added

  • Initial MS-RDPEI implementation: variable-length integers, all input PDUs, client and server DVC processors.

ironrdp-rdpel

[0.0.0] - 2026-10-07

Features

  • Add location redirection (#1778) (1cee7a8613)

    Implement MS-RDPEL v1 codecs and the location DVC state machine, then
    route the ActiveX methods through the bounded client input queue.

    Preserve mstsc-compatible validation and altitude caching while
    surfacing inactive sessions, channel readiness, queue pressure, and
    encoding failures. Coordinates are caller-supplied only and are never
    logged or persisted.

ironrdp-rdpeudp

[0.1.0] - 2026-10-07

Security

Copilot AI balanced review requested due to automatic review settings October 1, 2026 12:37
@github-actions
github-actions Bot force-pushed the release-plz/2026-10-01T12-37-25Z branch from 684f911 to d46a58f Compare October 1, 2026 12:37

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

An unresolved manifest conflict and nine under-versioned public-dependency updates block a safe release.

Review effort: Balanced
Findings: 9 Medium severity

Open (9)
What changed in this PR

Prepares the workspace for the 2026-10-01 release by updating crate versions, internal dependency requirements, and release changelogs.

Changes:

  • Bumps publishable crate versions and synchronized internal dependencies.
  • Adds release notes for new and updated crates.
  • Updates downstream consumers to the new crate versions.

Protocol review was not applicable because no protocol implementation changed.

File Description
crates/​ironrdp/​Cargo.toml Bumps the meta crate and re-exported dependencies.
crates/​ironrdp-vmconnect/​CHANGELOG.md Adds initial VMConnect release notes.
crates/​ironrdp-vmconnect/​Cargo.toml Updates VMConnect dependencies.
crates/​ironrdp-viewer/​Cargo.toml Bumps viewer and client dependencies.
crates/​ironrdp-usb/​CHANGELOG.md Adds initial USB crate release notes.
crates/​ironrdp-tokio/​CHANGELOG.md Adds the Tokio adapter release section.
crates/​ironrdp-tokio/​Cargo.toml Bumps Tokio adapter and dependencies.
crates/​ironrdp-tls/​CHANGELOG.md Adds TLS release notes.
crates/​ironrdp-tls/​Cargo.toml Bumps the TLS crate patch version.
crates/​ironrdp-svc/​CHANGELOG.md Adds static-channel release notes.
crates/​ironrdp-svc/​Cargo.toml Bumps SVC and public dependencies.
crates/​ironrdp-str/​CHANGELOG.md Adds string crate release notes.
crates/​ironrdp-str/​Cargo.toml Bumps the string crate and core dependency.
crates/​ironrdp-session/​Cargo.toml Bumps session and protocol dependencies.
crates/​ironrdp-server/​Cargo.toml Bumps server and channel dependencies.
crates/​ironrdp-rpc/​Cargo.toml Updates internal RPC dependencies.
crates/​ironrdp-rdpsnd/​Cargo.toml Bumps RDPSND and public dependencies.
crates/​ironrdp-rdpsnd-native/​CHANGELOG.md Adds native audio release notes.
crates/​ironrdp-rdpsnd-native/​Cargo.toml Updates native audio package metadata.
crates/​ironrdp-rdpewa/​CHANGELOG.md Adds initial RDPEWA release notes.
crates/​ironrdp-rdpewa/​Cargo.toml Updates RDPEWA protocol dependencies.
crates/​ironrdp-rdpewa-native/​CHANGELOG.md Adds initial native RDPEWA release notes.
crates/​ironrdp-rdpeusb/​Cargo.toml Updates RDPEUSB dependencies.
crates/​ironrdp-rdpeudp/​Cargo.toml Updates the shared core dependency.
crates/​ironrdp-rdpeudp-tokio/​Cargo.toml Updates UDP transport dependencies.
crates/​ironrdp-rdpemt/​CHANGELOG.md Adds initial RDPEMT release notes.
crates/​ironrdp-rdpemt/​Cargo.toml Updates the shared core dependency.
crates/​ironrdp-rdpel/​CHANGELOG.md Adds initial location-redirection notes.
crates/​ironrdp-rdpel/​Cargo.toml Updates RDPEL dependencies.
crates/​ironrdp-rdpei/​Cargo.toml Updates RDPEI dependencies.
crates/​ironrdp-rdpecam/​Cargo.toml Updates camera-channel dependencies.
crates/​ironrdp-rdpeai/​Cargo.toml Updates audio-input dependencies.
crates/​ironrdp-rdpdr/​Cargo.toml Bumps RDPDR and public dependencies.
crates/​ironrdp-rdpdr-native/​CHANGELOG.md Adds native RDPDR release notes.
crates/​ironrdp-rdpdr-native/​Cargo.toml Updates dependencies but retains conflict markers.
crates/​ironrdp-rdcleanpath/​CHANGELOG.md Adds RDCleanPath release notes.
crates/​ironrdp-rdcleanpath/​Cargo.toml Bumps the RDCleanPath patch version.
crates/​ironrdp-rail/​CHANGELOG.md Adds initial RAIL release notes.
crates/​ironrdp-rail/​Cargo.toml Updates RAIL dependencies.
crates/​ironrdp-pdu/​Cargo.toml Bumps the PDU crate and core dependency.
crates/​ironrdp-nscodec/​CHANGELOG.md Adds the NSCodec release section.
crates/​ironrdp-nscodec/​Cargo.toml Updates NSCodec and graphics dependency.
crates/​ironrdp-mstsgu/​Cargo.toml Bumps gateway protocol dependencies.
crates/​ironrdp-input/​CHANGELOG.md Adds input bug-fix release notes.
crates/​ironrdp-input/​Cargo.toml Updates input and PDU versions.
crates/​ironrdp-graphics/​Cargo.toml Bumps graphics and protocol dependencies.
crates/​ironrdp-futures/​CHANGELOG.md Adds the futures adapter release section.
crates/​ironrdp-futures/​Cargo.toml Updates futures adapter metadata.
crates/​ironrdp-error/​CHANGELOG.md Adds error crate release notes.
crates/​ironrdp-error/​Cargo.toml Bumps the error crate patch version.
crates/​ironrdp-egfx/​Cargo.toml Bumps EGFX and graphics dependencies.
crates/​ironrdp-echo/​CHANGELOG.md Adds the echo release section.
crates/​ironrdp-echo/​Cargo.toml Updates echo and protocol dependencies.
crates/​ironrdp-dvc/​Cargo.toml Bumps DVC and public dependencies.
crates/​ironrdp-dvc-pipe-proxy/​CHANGELOG.md Adds pipe-proxy bug-fix notes.
crates/​ironrdp-dvc-pipe-proxy/​Cargo.toml Updates pipe-proxy dependencies.
crates/​ironrdp-dvc-com-plugin/​CHANGELOG.md Adds COM plugin release notes.
crates/​ironrdp-dvc-com-plugin/​Cargo.toml Bumps COM plugin dependencies.
crates/​ironrdp-displaycontrol/​CHANGELOG.md Adds display-control release notes.
crates/​ironrdp-displaycontrol/​Cargo.toml Bumps display-control dependencies.
crates/​ironrdp-daemon/​Cargo.toml Updates daemon client dependencies.
crates/​ironrdp-core/​CHANGELOG.md Adds core breaking-change notes.
crates/​ironrdp-core/​Cargo.toml Bumps the core crate to 0.3.0.
crates/​ironrdp-connector/​Cargo.toml Bumps connector and public dependencies.
crates/​ironrdp-cliprdr/​Cargo.toml Bumps clipboard protocol dependencies.
crates/​ironrdp-cliprdr-native/​CHANGELOG.md Adds the native clipboard release section.
crates/​ironrdp-cliprdr-native/​Cargo.toml Updates native clipboard dependencies.
crates/​ironrdp-cliprdr-format/​CHANGELOG.md Adds clipboard-format release notes.
crates/​ironrdp-cliprdr-format/​Cargo.toml Bumps clipboard-format dependencies.
crates/​ironrdp-client/​Cargo.toml Bumps the client and protocol dependencies.
crates/​ironrdp-cfg/​CHANGELOG.md Adds configuration crate release notes.
crates/​ironrdp-cfg/​Cargo.toml Bumps the configuration crate.
crates/​ironrdp-capture-replay/​Cargo.toml Updates capture/replay dependencies.
crates/​ironrdp-bulk/​CHANGELOG.md Adds bulk-compression release notes.
crates/​ironrdp-bulk/​Cargo.toml Bumps the bulk-compression crate.
crates/​ironrdp-blocking/​CHANGELOG.md Adds blocking adapter release notes.
crates/​ironrdp-blocking/​Cargo.toml Bumps blocking adapter dependencies.
crates/​ironrdp-async/​CHANGELOG.md Adds asynchronous adapter release notes.
crates/​ironrdp-async/​Cargo.toml Bumps asynchronous adapter dependencies.
crates/​ironrdp-ainput/​CHANGELOG.md Adds AInput release notes.
crates/​ironrdp-ainput/​Cargo.toml Bumps AInput dependencies.
crates/​ironrdp-agent/​Cargo.toml Bumps agent and configuration dependencies.
crates/​ironrdp-activex/​Cargo.toml Updates ActiveX integration dependencies.
crates/​ironrdp-acceptor/​Cargo.toml Bumps acceptor and public dependencies.

[package]
name = "ironrdp-cliprdr-native"
version = "0.7.0"
version = "0.7.1"
[package]
name = "ironrdp-dvc-pipe-proxy"
version = "0.5.0"
version = "0.5.1"
[package]
name = "ironrdp-echo"
version = "0.4.0"
version = "0.4.1"
[package]
name = "ironrdp-futures"
version = "0.8.0"
version = "0.8.1"
[package]
name = "ironrdp-input"
version = "0.7.0"
version = "0.7.1"
[package]
name = "ironrdp-nscodec"
version = "0.2.0"
version = "0.2.1"
Comment thread crates/ironrdp-rdpdr-native/Cargo.toml Outdated
[package]
name = "ironrdp-rdpdr-native"
version = "0.7.0"
version = "0.7.1"
[package]
name = "ironrdp-rdpsnd-native"
version = "0.7.0"
version = "0.7.1"
[package]
name = "ironrdp-tokio"
version = "0.10.0"
version = "0.10.1"
@devolutionsbot
devolutionsbot force-pushed the release-plz/2026-10-01T12-37-25Z branch from d46a58f to 3af2c5a Compare October 1, 2026 13:04
@github-actions
github-actions Bot force-pushed the release-plz/2026-10-01T12-37-25Z branch from 3af2c5a to c08ba35 Compare October 1, 2026 13:04
@devolutionsbot
devolutionsbot force-pushed the release-plz/2026-10-01T12-37-25Z branch from c08ba35 to 9a445e1 Compare October 1, 2026 13:32
@github-actions
github-actions Bot force-pushed the release-plz/2026-10-01T12-37-25Z branch 2 times, most recently from 9a445e1 to 307aa1a Compare October 1, 2026 13:32
@devolutionsbot
devolutionsbot force-pushed the release-plz/2026-10-01T12-37-25Z branch from 307aa1a to 4c4cefc Compare October 6, 2026 14:33
@github-actions
github-actions Bot force-pushed the release-plz/2026-10-01T12-37-25Z branch from 4c4cefc to cb6a5da Compare October 6, 2026 14:33
@devolutionsbot
devolutionsbot force-pushed the release-plz/2026-10-01T12-37-25Z branch from cb6a5da to fdb4a71 Compare October 6, 2026 14:53
@github-actions
github-actions Bot force-pushed the release-plz/2026-10-01T12-37-25Z branch from fdb4a71 to 5d324cb Compare October 6, 2026 14:53
@devolutionsbot
devolutionsbot force-pushed the release-plz/2026-10-01T12-37-25Z branch from 5d324cb to 4f47f0c Compare October 7, 2026 13:38
@github-actions
github-actions Bot force-pushed the release-plz/2026-10-01T12-37-25Z branch from 4f47f0c to c4812d8 Compare October 7, 2026 13:38

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants