Skip to content

chore(release): prepare for publishing#1212

Open
devolutionsbot wants to merge 1 commit intomasterfrom
release-plz/2026-04-09T06-06-06Z
Open

chore(release): prepare for publishing#1212
devolutionsbot wants to merge 1 commit intomasterfrom
release-plz/2026-04-09T06-06-06Z

Conversation

@devolutionsbot
Copy link
Copy Markdown
Contributor

@devolutionsbot devolutionsbot commented Apr 9, 2026

🤖 New release

  • iron-remote-desktop: 0.7.0 -> 0.8.0 (⚠ API breaking changes)
  • ironrdp-error: 0.1.3 -> 0.2.0 (⚠ API breaking changes)
  • ironrdp-core: 0.1.5 -> 0.1.6 (✓ API compatible changes)
  • ironrdp-pdu: 0.7.0 -> 0.8.0 (⚠ API breaking changes)
  • ironrdp-svc: 0.6.0 -> 0.6.1 (✓ API compatible changes)
  • ironrdp-connector: 0.8.0 -> 0.9.0 (⚠ API breaking changes)
  • ironrdp-async: 0.8.0 -> 0.8.1 (✓ API compatible changes)
  • ironrdp-acceptor: 0.8.0 -> 0.9.0 (⚠ API breaking changes)
  • ironrdp-cliprdr: 0.5.0 -> 0.6.0 (⚠ API breaking changes)
  • ironrdp-dvc: 0.5.0 -> 0.5.1 (✓ API compatible changes)
  • ironrdp-displaycontrol: 0.5.0 -> 0.5.1 (✓ API compatible changes)
  • ironrdp-echo: 0.1.0 -> 0.1.1 (✓ API compatible changes)
  • ironrdp-graphics: 0.7.0 -> 0.7.1 (✓ API compatible changes)
  • ironrdp-input: 0.5.0 -> 0.5.1 (✓ API compatible changes)
  • ironrdp-rdpdr: 0.5.0 -> 0.6.0 (⚠ API breaking changes)
  • ironrdp-rdpsnd: 0.7.0 -> 0.7.1 (✓ API compatible changes)
  • ironrdp-ainput: 0.5.0 -> 0.5.1 (✓ API compatible changes)
  • ironrdp-tokio: 0.8.0 -> 0.8.1 (✓ API compatible changes)
  • ironrdp-server: 0.10.0 -> 0.11.0 (⚠ API breaking changes)
  • ironrdp-bulk: 0.1.0 -> 0.1.1 (✓ API compatible changes)
  • ironrdp-session: 0.8.0 -> 0.9.0 (⚠ API breaking changes)
  • ironrdp: 0.14.0 -> 0.14.1 (✓ API compatible changes)
  • ironrdp-blocking: 0.8.0 -> 0.8.1 (✓ API compatible changes)
  • ironrdp-cliprdr-native: 0.5.0 -> 0.5.1 (✓ API compatible changes)
  • ironrdp-dvc-pipe-proxy: 0.3.0 -> 0.3.1 (✓ API compatible changes)
  • ironrdp-tls: 0.2.0 -> 0.2.1 (✓ API compatible changes)
  • ironrdp-rdcleanpath: 0.2.1 -> 0.2.2 (✓ API compatible changes)
  • ironrdp-rdpsnd-native: 0.5.0 -> 0.5.1 (✓ API compatible changes)
  • ironrdp-dvc-com-plugin: 0.1.0
  • ironrdp-cliprdr-format: 0.1.4 -> 0.2.0 (✓ API compatible changes)
  • ironrdp-futures: 0.6.0 -> 0.6.1 (✓ API compatible changes)
  • ironrdp-rdpdr-native: 0.5.0 -> 0.5.1 (✓ API compatible changes)
  • ironrdp-str: 0.1.0

iron-remote-desktop 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.44.0/src/lints/trait_method_added.ron

Failed in:
  trait method iron_remote_desktop::IronError::rdcleanpath_details in file /tmp/.tmpTaYdM6/IronRDP/crates/iron-remote-desktop/src/error.rs:33

ironrdp-error breaking changes

--- 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.44.0/src/lints/struct_pub_field_missing.ron

Failed in:
  field context of struct Error, previously in file /tmp/.tmpPIxhrY/ironrdp-error/src/lib.rs:26
  field kind of struct Error, previously in file /tmp/.tmpPIxhrY/ironrdp-error/src/lib.rs:27

--- 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.44.0/src/lints/struct_pub_field_now_doc_hidden.ron

Failed in:
  field Error.context in file /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-error/src/lib.rs:25
  field Error.kind in file /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-error/src/lib.rs:25

ironrdp-pdu 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.44.0/src/lints/enum_variant_added.ron

Failed in:
  variant ShareDataPduType:AutoDetect in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-pdu/src/rdp/headers.rs:606
  variant ShareDataPdu:AutoDetectReq in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-pdu/src/rdp/headers.rs:335
  variant ShareDataPdu:AutoDetectRsp in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-pdu/src/rdp/headers.rs:337
  variant FastPathUpdate:Palette in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-pdu/src/basic_output/fast_path/mod.rs:227

ironrdp-connector 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.44.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field ConnectionResult.share_id in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-connector/src/connection.rs:25
  field ConnectionResult.compression_type in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-connector/src/connection.rs:32
  field Config.alternate_shell in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-connector/src/lib.rs:215
  field Config.work_dir in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-connector/src/lib.rs:217
  field Config.compression_type in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-connector/src/lib.rs:253
  field Config.multitransport_flags in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-connector/src/lib.rs:263
  field ConnectionFinalizationSequence.share_id in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-connector/src/connection_finalization.rs:57

--- 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.44.0/src/lints/enum_struct_variant_field_added.ron

Failed in:
  field share_id of variant ConnectionActivationState::ConnectionFinalization in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-connector/src/connection_activation.rs:245
  field share_id of variant ConnectionActivationState::Finalized in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-connector/src/connection_activation.rs:252

--- 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.44.0/src/lints/enum_variant_added.ron

Failed in:
  variant IoChannelPdu:MultitransportRequest in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-connector/src/legacy.rs:172

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

Description:
A publicly-visible method 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.44.0/src/lints/method_parameter_count_changed.ron

Failed in:
  ironrdp_connector::ConnectionFinalizationSequence::new now takes 3 parameters instead of 2, in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-connector/src/connection_finalization.rs:61

ironrdp-acceptor 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.44.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field AcceptorResult.credentials in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-acceptor/src/connection.rs:57

ironrdp-cliprdr breaking changes

--- failure enum_discriminants_undefined_non_unit_variant: enum's variants no longer have defined discriminants due to non-unit variant ---

Description:
An enum's variants no longer have well-defined discriminant values due to a tuple or struct variant in the enum. This breaks downstream code that accesses discriminants via a numeric cast like `as isize`.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html#assigning-discriminant-values
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.44.0/src/lints/enum_discriminants_undefined_non_unit_variant.ron

Failed in:
  enum ClipboardProtocolVersion in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-cliprdr/src/pdu/capabilities.rs:232

--- 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.44.0/src/lints/enum_variant_added.ron

Failed in:
  variant ClipboardMessage:SendFileContentsRequest in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-cliprdr/src/backend.rs:39
  variant ClipboardMessage:SendFileContentsResponse in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-cliprdr/src/backend.rs:44
  variant ClipboardProtocolVersion:Unknown in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-cliprdr/src/pdu/capabilities.rs:237

--- failure inherent_associated_pub_const_missing: inherent impl's associated pub const removed ---

Description:
An inherent impl's associated public constant is removed or renamed
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.44.0/src/lints/inherent_associated_pub_const_missing.ron

Failed in:
  FileContentsFlags::DATA, previously at /tmp/.tmpPIxhrY/ironrdp-cliprdr/src/pdu/file_contents.rs:13

--- failure struct_marked_non_exhaustive: struct marked #[non_exhaustive] ---

Description:
A public struct has been marked #[non_exhaustive], which will prevent it from being constructed using a struct literal outside of its crate. It previously had no private fields, so a struct literal could be used to construct it outside its crate.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#attr-adding-non-exhaustive
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.44.0/src/lints/struct_marked_non_exhaustive.ron

Failed in:
  struct FileDescriptor in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-cliprdr/src/pdu/format_data/file_list.rs:84

ironrdp-rdpdr breaking changes

--- 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.44.0/src/lints/inherent_method_missing.ron

Failed in:
  CreateDisposition::empty, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::all, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::bits, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::from_bits, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::from_bits_truncate, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::from_bits_retain, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::from_name, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::is_empty, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::is_all, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::intersects, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::contains, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::insert, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::remove, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::toggle, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::set, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::intersection, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::union, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::difference, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::symmetric_difference, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::complement, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::iter, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732
  CreateDisposition::iter_names, previously in file /tmp/.tmpPIxhrY/ironrdp-rdpdr/src/pdu/efs.rs:1732

ironrdp-server 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.44.0/src/lints/auto_trait_impl_removed.ron

Failed in:
  type ServerEvent is no longer Sync, in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-server/src/server.rs:297

--- 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.44.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field RGBAPointer.cache_index in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-server/src/display.rs:33
  field RdpServerOptions.max_request_size in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-server/src/server.rs:95
  field ColorPointer.cache_index in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-server/src/display.rs:55

--- 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.44.0/src/lints/enum_variant_added.ron

Failed in:
  variant ServerEvent:Echo in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-server/src/server.rs:301
  variant ServerEvent:Egfx in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-server/src/server.rs:305
  variant ServerEvent:AutoDetectRttRequest in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-server/src/server.rs:307
  variant DisplayUpdate:CachedPointer in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-server/src/display.rs:28

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

Description:
A publicly-visible method 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.44.0/src/lints/method_parameter_count_changed.ron

Failed in:
  ironrdp_server::RdpServer::new now takes 7 parameters instead of 5, in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-server/src/server.rs:328

--- 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.44.0/src/lints/method_requires_different_generic_type_params.ron

Failed in:
  ironrdp_server::RdpServer::run_connection takes 1 generic types instead of 0, in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-server/src/server.rs:459

ironrdp-session 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.44.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field ProcessorBuilder.share_id in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-session/src/fast_path.rs:574
  field ProcessorBuilder.bulk_decompressor in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-session/src/fast_path.rs:583

--- 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.44.0/src/lints/enum_variant_added.ron

Failed in:
  variant ProcessorOutput:MultitransportRequest in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-session/src/x224/mod.rs:36
  variant ProcessorOutput:AutoDetect in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-session/src/x224/mod.rs:43
  variant ProcessorOutput:GraphicsUpdate in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-session/src/x224/mod.rs:46
  variant ProcessorOutput:PointerUpdate in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-session/src/x224/mod.rs:49
  variant ActiveStageOutput:MultitransportRequest in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-session/src/active_stage.rs:330
  variant ActiveStageOutput:AutoDetect in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-session/src/active_stage.rs:339

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

Description:
A publicly-visible method 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.44.0/src/lints/method_parameter_count_changed.ron

Failed in:
  ironrdp_session::x224::Processor::new now takes 5 parameters instead of 4, in /tmp/.tmpTaYdM6/IronRDP/crates/ironrdp-session/src/x224/mod.rs:73
Changelog

iron-remote-desktop

[0.8.0] - 2026-04-10

Features

  • Expose granular RDCleanPath error details (#1117) (2911124e8f)

    Add RDCleanPathDetails struct to provide detailed error information for
    RDCleanPath errors, including HTTP status codes, WSA error codes, and
    TLS alert codes.

    Allows the web client to distinguish between different types of network
    errors (say, WSAEACCES/10013) instead of showing a generic RDCleanpath
    error message.

  • Implement clipboard file transfer support (#1166) (c98a8fb774)

    Add end-to-end clipboard file transfer (upload and download) across the
    CLIPRDR channel per MS-RDPECLIP.

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

  • Document iron-remote-desktop API design philosophy (#1192) (9bb909eca2)

    The core rule is: a method belongs in the base API (UserInteraction /
    Session / SessionBuilder) if the web component itself needs to call it
    for transparent behaviour, or if the feature is universal across all
    remote protocol backends. Protocol-specific concepts must go through the
    extension mechanism instead.

ironrdp-error

[0.2.0] - 2026-04-10

Bug Fixes

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp-core

[0.1.6] - 2026-04-10

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp-pdu

[0.8.0] - 2026-04-10

Features

  • Add Initiate Multitransport Request/Response PDU types (#1091) (5a50f4099b)

    Add MultitransportRequestPdu and MultitransportResponsePdu types for the
    sideband UDP transport bootstrapping PDUs defined in MS-RDPBCGR
    2.2.15.1 and 2.2.15.2. Needed to decode/encode the IO channel messages that
    initiate UDP transport setup.

  • Add Auto-Detect Request and Response PDU types (#1168) (6e5f08a1b9)

  • [breaking] Route auto-detect PDUs through ShareDataPdu dispatch (#1176) (e5f2f36e96)

    Added Share Data PDU dispatch support for auto-detect PDUs, improving compatibility with Windows servers.

  • Complete pixel format support for bitmap updates (#1134) (a6b41093ce)

    Wires missing bitmap pixel formats (8/15/24bpp) into the session rendering
    pipeline so bitmap updates at those depths are rendered instead of being
    dropped, and adds fast-path palette update parsing to support 8bpp indexed
    color sessions.

  • Add RemoteFX Progressive codec primitives (#1196) (49099f0c31)

    Add wire-format types for RemoteFX Progressive Codec (MS-RDPRFX
    Progressive Extension) and the computational primitives required for progressive refinement.

  • Handle slow-path graphics and pointer updates (#1132) (9383380292)

    Adds support for slow-path graphics and pointer updates to IronRDP, fixing connectivity issues with servers like XRDP that use slow-path output instead of fast-path. The implementation parses slow-path framing headers and routes the inner payload structures through the existing fast-path processing pipeline by extracting shared bitmap and pointer processing methods.

Bug Fixes

  • Accept short Server Deactivate All PDU (485d6c2f8d)

    Some servers (XRDP, older Windows) send a Deactivate All PDU without
    the sourceDescriptor field. The decode previously required at least 3
    bytes, which caused a hard failure during deactivation-reactivation
    sequences with these servers.

    Treat the sourceDescriptor as optional: if the remaining data is
    shorter than the fixed part size, return successfully without
    reading the field. FreeRDP handles this the same way.

  • Correct ShareDataHeader uncompressedLength calculation (#1148) (c2688f464d)

  • Replace all from_bits_truncate with from_bits_retain (#1144) (353e30ddfd)

    from_bits_truncate silently discards unknown bits, which breaks the
    encode/decode round-trip property. This matters for fuzzing because a
    PDU that decodes and re-encodes should produce identical bytes.
    from_bits_retain preserves all bits, including those not yet defined in
    our bitflags types, so the round-trip property holds.

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp-svc

[0.6.1] - 2026-04-10

Features

  • Add SvcMessage::encode_unframed_pdu for headerless encoding (#1093) (a21378e16a)

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp-connector

[0.9.0] - 2026-04-10

Security

  • Add alternate_shell and work_dir configuration support (#1095) (a33d27fe67)

    Add support for configuring alternate_shell and work_dir fields in
    ClientInfoPdu, which are used by:

    • CyberArk PSM (Privileged Session Manager) for session tokens
    • Remote application scenarios (RemoteApp)
    • Custom shell configurations
  • Dispatch multitransport PDUs on IO channel (#1096) (7853e3cc6f)

    decode_io_channel() assumes all IO channel PDUs begin with
    aShareControlHeader. Multitransport Request PDUs use a
    BasicSecurityHeader with SEC_TRANSPORT_REQ instead ([MS-RDPBCGR]
    2.2.15.1).

    This adds a peek-based dispatch: check the first u16
    forTRANSPORT_REQ, decode as MultitransportRequestPdu if set,
    otherwise fall through to the existing decode_share_control() path
    unchanged.

    The new variant is propagated through ProcessorOutput and
    'ActiveStageOutput` so applications can handle multitransport requests.
    Client and web consumers log the request (no UDP transport yet).

Features

  • Add bulk compression and wire negotiation (ebf5da5f33)

    • add ironrdp-bulk crate with MPPC/NCRUSH/XCRUSH, bitstream, benches, and metrics
    • advertise compression in Client Info and plumb compression_type through connector
    • decode compressed FastPath/ShareData updates using BulkCompressor
    • update CLI to numeric compression flags (enabled by default, level 0-3)
    • extend screenshot example with compression options and negotiated logging
    • refresh tests, FFI/web configs, typos, and Cargo.lock
  • Advertise multitransport channel in GCC blocks (#1092) (4f5fdd3628)

    Add multitransport_flags config option to populate the
    MultiTransportChannelData GCC block during connection negotiation.
    When None (the default), behavior is unchanged.

Bug Fixes

Performance

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

Build

  • Upgrade sspi to 0.19, picky to rc.22, fix NTLM fallback (#1188) (c70d38a9f1)

ironrdp-async

[0.8.1] - 2026-04-10

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp-acceptor

[0.9.0] - 2026-04-10

Security

  • Send RDP_NEG_FAILURE on security protocol mismatch (#1152) (02b9f4efbb)

    When the client and server have no common security protocol, the
    acceptor now sends a proper RDP_NEG_FAILURE PDU before returning an
    error, instead of dropping the TCP connection.

Features

  • Expose received client credentials in AcceptorResult (#1155) (eda32d8acf)

Bug Fixes

  • Skip credential check when server credentials are None (#1150) (84015c9467)

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

Build

  • Upgrade sspi to 0.19, picky to rc.22, fix NTLM fallback (#1188) (c70d38a9f1)

ironrdp-cliprdr

[0.6.0] - 2026-04-10

Features

  • Add clipboard data locking methods (#1064) (58c3df84bb)

    Per [MS-RDPECLIP sections 2.2.4.6 and 2.2.4.7][lock-spec], the Local
    Clipboard
    Owner may lock the Shared Clipboard Owner's clipboard data before
    requesting
    file contents to ensure data stability during multi-request transfers.

    This enables server implementations to safely request file data from
    clients
    when handling clipboard paste operations.

ironrdp-dvc

[0.5.1] - 2026-04-10

Features

Bug Fixes

  • Negotiate DVC version from server capabilities (d094cbeb75)

    The client was hardcoded to respond with CapsVersion::V1 regardless
    of what the server requested. Servers that require V2 or V3 (such
    as XRDP) would reject the channel with "Dynamic Virtual Channel
    version 1 is not supported."

    Echo the server's requested version in the capabilities response
    instead. This correctly handles V1, V2, and V3 depending on what
    the server advertises. When a Create arrives before Capabilities
    (fallback path), default to V2 as the most broadly compatible
    version.

    Also bump the server-side capabilities request from V1 to V2 to
    advertise priority charge support.

    Add CapabilitiesRequestPdu::version() accessor to expose the
    server's requested version from the parsed PDU.

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp-displaycontrol

[0.5.1] - 2026-04-10

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp-echo

[0.1.1] - 2026-04-10

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp-graphics

[0.7.1] - 2026-04-10

Features

  • Add segment wrapping utilities (#1076) (5fa4964807)

    Adds ZGFX segment wrapping utilities for encoding data in RDP8 format.

  • Add LZ77 compression support (#1097) (48715483a3)

    Adds ZGFX (RDP8) LZ77 compression to complement the existing
    decompressor, plus a high-level API for EGFX PDU preparation with
    auto/always/never mode selection.

    The compressor uses a hash table mapping 3-byte prefixes to history
    positions for O(1) match candidate lookup against the 2.5 MB sliding
    window.

  • Complete pixel format support for bitmap updates (#1134) (a6b41093ce)

    Wires missing bitmap pixel formats (8/15/24bpp) into the session rendering
    pipeline so bitmap updates at those depths are rendered instead of being
    dropped, and adds fast-path palette update parsing to support 8bpp indexed
    color sessions.

  • Add RemoteFX Progressive codec primitives (#1196) (49099f0c31)

    Add wire-format types for RemoteFX Progressive Codec (MS-RDPRFX
    Progressive Extension) and the computational primitives required for progressive refinement.

Bug Fixes

  • Fix pixel format handling in bitmap decoders (#1101) (75863245ab)

  • Replace all from_bits_truncate with from_bits_retain (#1144) (353e30ddfd)

    from_bits_truncate silently discards unknown bits, which breaks the
    encode/decode round-trip property. This matters for fuzzing because a
    PDU that decodes and re-encodes should produce identical bytes.
    from_bits_retain preserves all bits, including those not yet defined in
    our bitflags types, so the round-trip property holds.

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp-input

[0.5.1] - 2026-04-10

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp-rdpdr

[0.6.0] - 2026-04-10

Bug Fixes

  • Model CreateDisposition as enum instead of bitflags (#1145) (c4f87aa417)

    CreateDisposition values (FILE_SUPERSEDE through FILE_OVERWRITE_IF) are
    mutually exclusive integers 0 through 5, not combinable bit flags.
    Modeling them with the bitflags macro causes subtle correctness issues.

  • Replace all from_bits_truncate with from_bits_retain (#1144) (353e30ddfd)

    from_bits_truncate silently discards unknown bits, which breaks the
    encode/decode round-trip property. This matters for fuzzing because a
    PDU that decodes and re-encodes should produce identical bytes.
    from_bits_retain preserves all bits, including those not yet defined in
    our bitflags types, so the round-trip property holds.

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp-rdpsnd

[0.7.1] - 2026-04-10

Bug Fixes

  • Replace all from_bits_truncate with from_bits_retain (#1144) (353e30ddfd)

    from_bits_truncate silently discards unknown bits, which breaks the
    encode/decode round-trip property. This matters for fuzzing because a
    PDU that decodes and re-encodes should produce identical bytes.
    from_bits_retain preserves all bits, including those not yet defined in
    our bitflags types, so the round-trip property holds.

  • Handle AudioFormat renegotiation in Ready state (#1164) (2fe6fd0424)

    Sometimes Windows Server re-sends SNDC_FORMATS during Ready state
    (e.g., after mute/unmute in remote browser). Previously this hit the
    wildcard branch, entering Stop and permanently killing audio.

    Add an AudioFormat arm in Ready state to close the current stream and
    restart negotiation.

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp-ainput

[0.5.1] - 2026-04-10

Bug Fixes

  • Replace all from_bits_truncate with from_bits_retain (#1144) (353e30ddfd)

    from_bits_truncate silently discards unknown bits, which breaks the
    encode/decode round-trip property. This matters for fuzzing because a
    PDU that decodes and re-encodes should produce identical bytes.
    from_bits_retain preserves all bits, including those not yet defined in
    our bitflags types, so the round-trip property holds.

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp-tokio

[0.8.1] - 2026-04-10

Security

  • Add DVC COM plugin loader for native Windows DVC client plugins (9c987bcb40)

    Implements support for loading and using native Windows Dynamic Virtual
    Channel (DVC) client plugin DLLs through the COM-based IWTSPlugin API.
    This enables IronRDP to leverage existing Windows DVC plugins such as
    webauthn.dll for hardware security key support via RDP.

    New crate: ironrdp-dvc-com-plugin

    • Implements IWTSVirtualChannelManager and IWTSVirtualChannel COM interfaces
    • Manages plugin lifecycle on dedicated COM worker thread
    • Handles channel open/close/reopen cycles with per-instance write callbacks
    • Properly bridges between COM synchronous calls and IronRDP's async runtime

    Client integration:

    • Add --dvc-plugin CLI argument to ironrdp-client
    • Load plugins in both TCP and WebSocket connection paths
    • Windows-only conditional compilation for cross-platform builds

    Additional fixes:

    • Fix pre-existing crash in ironrdp-tokio KDC handler on 64-bit Windows
      (usize to u32 conversion in reqwest.rs)
    • Add proper error handling using try_from instead of unsafe as casts
    • All changes pass cargo fmt and cargo clippy with strict pedantic lints

    Tested with: C:\Windows\System32\webauthn.dll

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

Build

  • Upgrade sspi to 0.19, picky to rc.22, fix NTLM fallback (#1188) (c70d38a9f1)

ironrdp-server

[0.11.0] - 2026-04-10

Features

  • Add clipboard data locking methods (#1064) (58c3df84bb)

    Per [MS-RDPECLIP sections 2.2.4.6 and 2.2.4.7][lock-spec], the Local
    Clipboard
    Owner may lock the Shared Clipboard Owner's clipboard data before
    requesting
    file contents to ensure data stability during multi-request transfers.

    This enables server implementations to safely request file data from
    clients
    when handling clipboard paste operations.

ironrdp-bulk

[0.1.1] - 2026-04-10

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

Build

ironrdp-session

[0.9.0] - 2026-04-10

Security

  • Dispatch multitransport PDUs on IO channel (#1096) (7853e3cc6f)

    decode_io_channel() assumes all IO channel PDUs begin with
    aShareControlHeader. Multitransport Request PDUs use a
    BasicSecurityHeader with SEC_TRANSPORT_REQ instead ([MS-RDPBCGR]
    2.2.15.1).

    This adds a peek-based dispatch: check the first u16
    forTRANSPORT_REQ, decode as MultitransportRequestPdu if set,
    otherwise fall through to the existing decode_share_control() path
    unchanged.

    The new variant is propagated through ProcessorOutput and
    'ActiveStageOutput` so applications can handle multitransport requests.
    Client and web consumers log the request (no UDP transport yet).

Features

  • Add bulk compression and wire negotiation (ebf5da5f33)

    • add ironrdp-bulk crate with MPPC/NCRUSH/XCRUSH, bitstream, benches, and metrics
    • advertise compression in Client Info and plumb compression_type through connector
    • decode compressed FastPath/ShareData updates using BulkCompressor
    • update CLI to numeric compression flags (enabled by default, level 0-3)
    • extend screenshot example with compression options and negotiated logging
    • refresh tests, FFI/web configs, typos, and Cargo.lock
  • Complete pixel format support for bitmap updates (#1134) (a6b41093ce)

    Wires missing bitmap pixel formats (8/15/24bpp) into the session rendering
    pipeline so bitmap updates at those depths are rendered instead of being
    dropped, and adds fast-path palette update parsing to support 8bpp indexed
    color sessions.

  • Handle Auto-Detect Request PDUs from server (#1178) (4dcad09980)

    Fixes a crash when the server sends Auto-Detect Request PDUs during an
    active session. After feat(pdu)!: route auto-detect PDUs through ShareDataPdu dispatch #1176 added ShareDataPdu::AutoDetectReq routing,
    these PDUs decode correctly but hit the catch-all error path in the x224
    processor: "unhandled PDU: Auto-Detect Request PDU".

  • Handle slow-path graphics and pointer updates (#1132) (9383380292)

    Adds support for slow-path graphics and pointer updates to IronRDP, fixing connectivity issues with servers like XRDP that use slow-path output instead of fast-path. The implementation parses slow-path framing headers and routes the inner payload structures through the existing fast-path processing pipeline by extracting shared bitmap and pointer processing methods.

Bug Fixes

  • Make fields of Error private (#1074) (e51ed236ce)

  • Fix pixel format handling in bitmap decoders (#1101) (75863245ab)

  • Handle row padding in uncompressed bitmap updates (4262ae75ff)

    Uncompressed bitmap data has rows padded to 4-byte boundaries per
    [MS-RDPBCGR] 2.2.9.1.1.3.1.2.2, but the bitmap apply functions
    expect tightly packed pixel data. Strip the per-row padding before
    passing raw bitmap data to the apply functions.

    This fixes garbled bitmap rendering when connecting to servers that
    send uncompressed bitmaps with non-aligned row widths, such as XRDP
    at 16 bpp.

  • Skip bitmap updates that exceed bounds (#1146) (2b97a95e6d)

    After a desktop resize, an RDP server can send a burst of bitmap updates
    for the old resolution before its rendering pipeline has fully
    transitioned to the new one. These updates reference coordinates beyond
    the current image buffer in DecodedImage, causing index-out-of-bounds
    panics in the apply_* methods. On the server side, the same stale
    bitmaps can reach the encoder with dimensions exceeding the negotiated
    desktop size, panicking in NoneHandler::handle().

    This commit adds bounds checks at two levels:

    • DecodedImage::rect_fits() guard at the entry of each apply_*
      method, returning an empty rectangle when the update doesn't fit
    • Encoder-level guard in EncoderIter::next() that drops
      BitmapUpdates exceeding the current desktop size
  • Propagate negotiated share_id to all outgoing ShareDataPdu (#1147) (2b24e9664d)

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp

[0.14.1] - 2026-04-10

Security

  • Add alternate_shell and work_dir configuration support (#1095) (a33d27fe67)

    Add support for configuring alternate_shell and work_dir fields in
    ClientInfoPdu, which are used by:

    • CyberArk PSM (Privileged Session Manager) for session tokens
    • Remote application scenarios (RemoteApp)
    • Custom shell configurations

Features

  • Add bulk compression and wire negotiation (ebf5da5f33)

    • add ironrdp-bulk crate with MPPC/NCRUSH/XCRUSH, bitstream, benches, and metrics
    • advertise compression in Client Info and plumb compression_type through connector
    • decode compressed FastPath/ShareData updates using BulkCompressor
    • update CLI to numeric compression flags (enabled by default, level 0-3)
    • extend screenshot example with compression options and negotiated logging
    • refresh tests, FFI/web configs, typos, and Cargo.lock
  • Advertise multitransport channel in GCC blocks (#1092) (4f5fdd3628)

    Add multitransport_flags config option to populate the
    MultiTransportChannelData GCC block during connection negotiation.
    When None (the default), behavior is unchanged.

  • Implement ECHO virtual channel (#1109) (6f6496ad29)

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

Build

ironrdp-blocking

[0.8.1] - 2026-04-10

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp-cliprdr-native

[0.5.1] - 2026-04-10

Features

  • Implement clipboard file transfer support (#1166) (c98a8fb774)

    Add end-to-end clipboard file transfer (upload and download) across the
    CLIPRDR channel per MS-RDPECLIP.

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp-dvc-pipe-proxy

[0.3.1] - 2026-04-10

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp-tls

[0.2.1] - 2026-04-10

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp-rdcleanpath

[0.2.2] - 2026-04-10

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

ironrdp-rdpsnd-native

[0.5.1] - 2026-04-10

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

Build

ironrdp-dvc-com-plugin

[0.1.0] - 2026-04-10

Security

  • Add DVC COM plugin loader for native Windows DVC client plugins (9c987bcb40)

    Implements support for loading and using native Windows Dynamic Virtual
    Channel (DVC) client plugin DLLs through the COM-based IWTSPlugin API.
    This enables IronRDP to leverage existing Windows DVC plugins such as
    webauthn.dll for hardware security key support via RDP.

    New crate: ironrdp-dvc-com-plugin

    • Implements IWTSVirtualChannelManager and IWTSVirtualChannel COM interfaces
    • Manages plugin lifecycle on dedicated COM worker thread
    • Handles channel open/close/reopen cycles with per-instance write callbacks
    • Properly bridges between COM synchronous calls and IronRDP's async runtime

    Client integration:

    • Add --dvc-plugin CLI argument to ironrdp-client
    • Load plugins in both TCP and WebSocket connection paths
    • Windows-only conditional compilation for cross-platform builds

    Additional fixes:

    • Fix pre-existing crash in ironrdp-tokio KDC handler on 64-bit Windows
      (usize to u32 conversion in reqwest.rs)
    • Add proper error handling using try_from instead of unsafe as casts
    • All changes pass cargo fmt and cargo clippy with strict pedantic lints

    Tested with: C:\Windows\System32\webauthn.dll

Documentation

  • Establish the MSRV policy (current is 1.89) (#1157) (c10e6ff16c)

    The MSRV is the oldest stable Rust release that is at least 6 months
    old, bounded by the Rust version available in Debian stable-backports
    and Fedora stable.

  • Add missing README.md to unblock crates.io publish (#1213) (6baf726c1a)

ironrdp-cliprdr-format

[0.2.0] - 2026-04-10

@github-actions github-actions bot force-pushed the release-plz/2026-04-09T06-06-06Z branch from 5be8311 to c119760 Compare April 9, 2026 06:06
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-04-09T06-06-06Z branch from c119760 to e2c1012 Compare April 9, 2026 06:25
@github-actions github-actions bot force-pushed the release-plz/2026-04-09T06-06-06Z branch from e2c1012 to ce6d5c0 Compare April 9, 2026 06:25
@github-actions
Copy link
Copy Markdown

github-actions bot commented Apr 9, 2026

Coverage Report 🤖 ⚙️

Past:
Total lines: 41048
Covered lines: 28112 (68.49%)

New:
Total lines: 41048
Covered lines: 28137 (68.55%)

Diff: +0.06%

[this comment will be updated automatically]

@devolutionsbot devolutionsbot force-pushed the release-plz/2026-04-09T06-06-06Z branch from ce6d5c0 to ad7b82e Compare April 9, 2026 13:18
@github-actions github-actions bot force-pushed the release-plz/2026-04-09T06-06-06Z branch from ad7b82e to 2512218 Compare April 9, 2026 13:18
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-04-09T06-06-06Z branch from 2512218 to 577b7ca Compare April 9, 2026 13:59
@github-actions github-actions bot force-pushed the release-plz/2026-04-09T06-06-06Z branch from 577b7ca to 038ccf3 Compare April 9, 2026 13:59
@devolutionsbot devolutionsbot force-pushed the release-plz/2026-04-09T06-06-06Z branch from 038ccf3 to 8c6ce75 Compare April 10, 2026 10:43
@github-actions github-actions bot force-pushed the release-plz/2026-04-09T06-06-06Z branch from 8c6ce75 to f413352 Compare April 10, 2026 10:43
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.

1 participant