Rust implementation of the Microsoft Remote Desktop Protocol (RDP)
This report summarizes scanner evidence for Devolutions/IronRDP, a Rust project with 3,267 GitHub stars. SynthScan examined 544,623 lines of code across 1859 source files, recording 1382 pattern matches distributed across 10 syntactic categories. The legacy adjusted pattern signal is 3.2 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 1222 finding(s).
Are imports declared and package/API names verified? 0 finding(s).
Are wrappers, guards, and repeated structures necessary? 186 finding(s).
Which changes need focused human review? 1382 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 1382 distinct pattern matches across 10 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | typos.toml | 1 | # Typos CLI configuration file | COMMENT |
| LOW | crates/ironrdp-svc/src/lib.rs | 321 | /// Identifies the current recipient of a message, or returns `None` to discard incoming data. | COMMENT |
| LOW | crates/ironrdp-svc/src/lib.rs | 361 | pub trait SvcServerProcessor: SvcProcessor {} | COMMENT |
| LOW | crates/ironrdp-svc/src/lib.rs | 641 | /// Typed channels retain their historical [`TypeId`]-based identity. Runtime-defined channel | COMMENT |
| LOW | crates/ironrdp-svc/src/lib.rs | 961 | /// | COMMENT |
| LOW | crates/ironrdp-svc/src/lib.rs | 1001 | COMMENT | |
| LOW | crates/ironrdp-server/src/gfx.rs | 21 | /// Shared handle to a `GraphicsPipelineServer`. | COMMENT |
| LOW | crates/ironrdp-server/src/gfx.rs | 41 | /// Implements `ServerEventSender` so the factory can signal the server event loop | COMMENT |
| LOW | crates/ironrdp-server/src/display.rs | 21 | /// | COMMENT |
| LOW | crates/ironrdp-server/src/display.rs | 201 | } | COMMENT |
| LOW | crates/ironrdp-server/src/display.rs | 221 | /// # use core::num::NonZeroU16; | COMMENT |
| LOW | crates/ironrdp-server/src/display.rs | 281 | /// # Cancel safety | COMMENT |
| LOW | crates/ironrdp-server/src/display.rs | 301 | /// `true` while the client has sent `SuppressOutput { desktop_rect: None }` | COMMENT |
| LOW | crates/ironrdp-server/src/display.rs | 321 | /// The connection's auto-detect measurements, for flow control. | COMMENT |
| LOW | crates/ironrdp-server/src/display.rs | 361 | /// # Example | COMMENT |
| LOW | crates/ironrdp-server/src/display.rs | 381 | /// height: u16, | COMMENT |
| LOW | crates/ironrdp-server/src/display.rs | 401 | /// | COMMENT |
| LOW | crates/ironrdp-server/src/display.rs | 421 | COMMENT | |
| LOW | crates/ironrdp-server/src/display.rs | 441 | COMMENT | |
| LOW | crates/ironrdp-server/src/multitransport.rs | 21 | use tokio::sync::Mutex; | COMMENT |
| LOW | crates/ironrdp-server/src/multitransport.rs | 101 | /// live attempt at a time; under | COMMENT |
| LOW | crates/ironrdp-server/src/urbdrc.rs | 281 | } | COMMENT |
| LOW | crates/ironrdp-server/src/urbdrc.rs | 1321 | /// produced whenever the peer returned a well-formed completion. | COMMENT |
| LOW | crates/ironrdp-server/src/error.rs | 1 | //! Typed error types for the public API of the `ironrdp-server` crate. | COMMENT |
| LOW | crates/ironrdp-server/src/error.rs | 21 | COMMENT | |
| LOW | crates/ironrdp-server/src/error.rs | 41 | /// The specific feature is named in the [`ServerError`] context. | COMMENT |
| LOW | crates/ironrdp-server/src/error.rs | 101 | COMMENT | |
| LOW | crates/ironrdp-server/src/handler.rs | 81 | COMMENT | |
| LOW | crates/ironrdp-server/src/server.rs | 101 | COMMENT | |
| LOW | crates/ironrdp-server/src/server.rs | 141 | /// How often the server drives [`CliprdrServer::drive_timeouts`]. | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 161 | /// How long a single [`ironrdp_acceptor::accept_finalize`] pass may take before | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 201 | /// Per-connection metadata captured during connection setup, made available to | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 221 | /// See [`ironrdp_acceptor::AcceptorResult::device_scale_factor`]. | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 241 | pub client_info_flags: rdp::client_info::ClientInfoFlags, | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 281 | /// connection is established. | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 341 | /// | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 381 | } | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 401 | /// | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 421 | /// Ok(CredentialDecision::Reject) | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 461 | /// user's session before the RDP client loop starts. | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 661 | } else { | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 681 | #[derive(Debug, Clone, Copy, PartialEq, Eq)] | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 701 | /// desktop), where a newly connecting client should replace a stale or | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 721 | /// So under `Tls` and `None` an unauthenticated peer CAN evict an | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 741 | /// | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 781 | /// The embedder supplies the RAIL channel processor and window orders. | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 801 | /// to [`Quant::default`], the same values Windows RDP servers send. Set | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 1041 | COMMENT | |
| LOW | crates/ironrdp-server/src/server.rs | 1061 | } | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 1081 | pub peer: Option<SocketAddr>, | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 1181 | } | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 1201 | /// [`RdpServer::serve`], so that [`ConnectionPolicy`] applies to its | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 1261 | incoming = incoming.with_local_addr(local_addr); | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 1281 | ///# struct NoopInputHandler; | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 1301 | /// | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 1321 | /// .build(); | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 1361 | /// The local address the current client reached. See | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 1381 | /// [`ServerEvent::EvictedByOtherConnection`]) is the real fix for the | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 1401 | /// The cookie replaced by the current one, accepted until the next rotation. | COMMENT |
| LOW | crates/ironrdp-server/src/server.rs | 1501 | #[derive(Debug, Clone, Copy, PartialEq, Eq)] | COMMENT |
| 1032 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | typos.toml | 2 | # ============================ | COMMENT |
| MEDIUM | …tes/ironrdp-testsuite-core/tests/str_types/multi_sz.rs | 15 | // ── new rejects embedded nulls ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tes/ironrdp-testsuite-core/tests/str_types/multi_sz.rs | 103 | // ── from_utf16le_byte_strings ───────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tes/ironrdp-testsuite-core/tests/str_types/multi_sz.rs | 138 | // ── from_utf16le_flat ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tes/ironrdp-testsuite-core/tests/str_types/multi_sz.rs | 202 | // ── from_wire_units_flat ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tes/ironrdp-testsuite-core/tests/str_types/multi_sz.rs | 248 | // ── from_unit_strings ───────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ironrdp-testsuite-core/tests/str_types/fixed.rs | 92 | // ── from_utf16le_bytes ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ironrdp-testsuite-core/tests/str_types/fixed.rs | 129 | // ── from_wire_units / to_wire_units / into_wire_units ──────────────────────── | COMMENT |
| MEDIUM | …tes/ironrdp-testsuite-core/tests/str_types/unframed.rs | 89 | // ── from_utf16le_bytes ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tes/ironrdp-testsuite-core/tests/str_types/unframed.rs | 99 | // ── from_wire_units / to_wire_units / into_wire_units ──────────────────────── | COMMENT |
| MEDIUM | …tes/ironrdp-testsuite-core/tests/str_types/prefixed.rs | 18 | // ── Non-BMP correctness ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tes/ironrdp-testsuite-core/tests/str_types/prefixed.rs | 48 | // ── Round-trips for all null policy variants ────────────────────────────── | COMMENT |
| MEDIUM | …tes/ironrdp-testsuite-core/tests/str_types/prefixed.rs | 80 | // ── Empty string edge cases ─────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tes/ironrdp-testsuite-core/tests/str_types/prefixed.rs | 101 | // ── Empty string NullCounted round-trip ────────────────────────────────── | COMMENT |
| MEDIUM | …tes/ironrdp-testsuite-core/tests/str_types/prefixed.rs | 115 | // ── NullCounted cch=0 is invalid ───────────────────────────────────────── | COMMENT |
| MEDIUM | …tes/ironrdp-testsuite-core/tests/str_types/prefixed.rs | 139 | // ── Non-zero null terminator is rejected ───────────────────────────────── | COMMENT |
| MEDIUM | …tes/ironrdp-testsuite-core/tests/str_types/prefixed.rs | 191 | // ── Rejection of odd byte counts ───────────────────────────────────────── | COMMENT |
| MEDIUM | …tes/ironrdp-testsuite-core/tests/str_types/prefixed.rs | 214 | // ── Lone surrogates: decode succeeds, to_native() fails ────────────────── | COMMENT |
| MEDIUM | …tes/ironrdp-testsuite-core/tests/str_types/prefixed.rs | 229 | // ── from_wire_units / to_wire_units / into_wire_units ──────────────────────── | COMMENT |
| MEDIUM | …tes/ironrdp-testsuite-core/tests/str_types/prefixed.rs | 273 | // ── size() matches encode() output length ──────────────────────────────── | COMMENT |
| MEDIUM | …/ironrdp-testsuite-core/tests/rdpeudp/pdu_v2_packet.rs | 3 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | …/ironrdp-testsuite-core/tests/rdpeudp/pdu_v2_packet.rs | 5 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | …ronrdp-testsuite-core/tests/rdpeudp/pdu_v1_datagram.rs | 3 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | …ronrdp-testsuite-core/tests/rdpeudp/pdu_v1_datagram.rs | 5 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | crates/ironrdp-testsuite-core/tests/rdpdr/mod.rs | 1160 | // ─── Server-side decode / encode round-trips ────────────────────────────── | COMMENT |
| MEDIUM | …onrdp-testsuite-core/tests/clipboard/lock_lifecycle.rs | 739 | // ── Receiver-side locked file list snapshots ──────────────────────── | COMMENT |
| MEDIUM | …te-core/tests/clipboard/file_contents_state_machine.rs | 53 | // ── Request tracking ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …te-core/tests/clipboard/file_contents_state_machine.rs | 152 | // ── Response validation ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …te-core/tests/clipboard/file_contents_state_machine.rs | 333 | // ── Incoming request validation ───────────────────────────────────── | COMMENT |
| MEDIUM | …te-core/tests/clipboard/file_contents_state_machine.rs | 368 | // ── Unknown and duplicate streamId handling ───────────────────────── | COMMENT |
| MEDIUM | …te-core/tests/clipboard/file_contents_state_machine.rs | 439 | // ── Rejection reporting ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …dp-testsuite-core/tests/clipboard/path_sanitization.rs | 10 | // ── is_absolute_path ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …dp-testsuite-core/tests/clipboard/path_sanitization.rs | 94 | // ── sanitize_file_path ────────────────────────────────────────────── | COMMENT |
| MEDIUM | …dp-testsuite-core/tests/clipboard/path_sanitization.rs | 265 | // ── is_windows_device_name ────────────────────────────────────────── | COMMENT |
| MEDIUM | …p-testsuite-core/tests/clipboard/upload_and_cleanup.rs | 78 | // ── initiate_copy behavior ────────────────────────────────────────── | COMMENT |
| MEDIUM | …p-testsuite-core/tests/clipboard/upload_and_cleanup.rs | 133 | // ── FormatList interaction with in-flight requests ────────────────── | COMMENT |
| MEDIUM | …p-testsuite-core/tests/clipboard/upload_and_cleanup.rs | 248 | // ── Stale request cleanup ─────────────────────────────────────────── | COMMENT |
| MEDIUM | …p-testsuite-core/tests/clipboard/upload_and_cleanup.rs | 347 | // ── Locked file list cleanup ──────────────────────────────────────── | COMMENT |
| MEDIUM | …p-testsuite-core/tests/clipboard/upload_and_cleanup.rs | 509 | // ── Repaste after lock expiry ────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ironrdp-testsuite-core/src/clipboard.rs | 21 | // ── Clock helper ──────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ironrdp-testsuite-core/src/clipboard.rs | 32 | // ── TestBackend ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ironrdp-testsuite-core/src/clipboard.rs | 76 | // ── LockingBackend ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ironrdp-testsuite-core/src/clipboard.rs | 133 | // ── ReceivedResponse + RecordingBackend ───────────────────────────── | COMMENT |
| MEDIUM | crates/ironrdp-testsuite-core/src/clipboard.rs | 192 | // ── FormatDataRecordingBackend ────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ironrdp-testsuite-core/src/clipboard.rs | 261 | // ── TimedRecordingBackend ─────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ironrdp-testsuite-core/src/clipboard.rs | 337 | // ── CallbackTrackingBackend ───────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ironrdp-testsuite-core/src/clipboard.rs | 420 | // ── Initialization helpers ────────────────────────────────────────── | COMMENT |
| MEDIUM | crates/ironrdp-rdpeudp/src/connection.rs | 53 | // ════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | crates/ironrdp-rdpeudp/src/connection.rs | 55 | // ════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | crates/ironrdp-rdpeudp/src/connection.rs | 162 | // ════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | crates/ironrdp-rdpeudp/src/connection.rs | 164 | // ════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | crates/ironrdp-rdpeudp/src/connection.rs | 281 | // ════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | crates/ironrdp-rdpeudp/src/connection.rs | 283 | // ════════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | crates/ironrdp-rdpeudp/src/connection.rs | 461 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | crates/ironrdp-rdpeudp/src/connection.rs | 463 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | crates/ironrdp-rdpeudp/src/connection.rs | 652 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | crates/ironrdp-rdpeudp/src/connection.rs | 654 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | crates/ironrdp-rdpeudp/src/connection.rs | 1077 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | crates/ironrdp-rdpeudp/src/connection.rs | 1079 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| MEDIUM | crates/ironrdp-rdpeudp/src/connection.rs | 1219 | // ════════════════════════════════════════════════════════════════ | COMMENT |
| 100 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | crates/ironrdp-testsuite-core/tests/server/acceptor.rs | 80 | // Step 1: feed the connection request (HYBRID | HYBRID_EX, no SSL) | COMMENT |
| LOW⚡ | crates/ironrdp-testsuite-core/tests/server/acceptor.rs | 86 | // Step 2: acceptor tries to send confirm, finds no common protocol | COMMENT |
| LOW⚡ | …tes/ironrdp-testsuite-core/tests/rdpeudp/connection.rs | 117 | // Step 1: Client sends SYN | COMMENT |
| LOW⚡ | …tes/ironrdp-testsuite-core/tests/rdpeudp/connection.rs | 121 | // Step 2: Server receives SYN and creates connection with SYN+ACK | COMMENT |
| LOW⚡ | …tes/ironrdp-testsuite-core/tests/rdpeudp/connection.rs | 126 | // Step 3: Client receives SYN+ACK → transitions to Established | COMMENT |
| LOW | …tes/ironrdp-testsuite-core/tests/rdpeudp/connection.rs | 141 | // Step 4: Server receives final ACK → transitions to Established | COMMENT |
| LOW⚡ | …-core/tests/clipboard/delayed_rendering_integration.rs | 116 | // Step 1: Simulate remote sending FormatList with FileGroupDescriptorW | COMMENT |
| LOW⚡ | …-core/tests/clipboard/delayed_rendering_integration.rs | 126 | // Step 2: Process the FormatList - should store format but NOT request file list yet | COMMENT |
| LOW⚡ | …-core/tests/clipboard/delayed_rendering_integration.rs | 170 | // Step 5: Process the FormatDataResponse | COMMENT |
| LOW⚡ | …-core/tests/clipboard/delayed_rendering_integration.rs | 176 | // Step 6: Verify that backend.on_remote_file_list() was called with correct files | COMMENT |
| LOW⚡ | …-core/tests/clipboard/delayed_rendering_integration.rs | 250 | // Step 2: Verify FormatList was sent | COMMENT |
| LOW⚡ | …-core/tests/clipboard/delayed_rendering_integration.rs | 253 | // Step 3: Simulate remote sending FormatDataRequest for our file list | COMMENT |
| LOW⚡ | …-core/tests/clipboard/delayed_rendering_integration.rs | 261 | // Step 4: Verify FormatDataResponse with file list was sent | COMMENT |
| LOW | …-core/tests/clipboard/delayed_rendering_integration.rs | 141 | // Step 3: User initiates paste for FileGroupDescriptorW format | COMMENT |
| LOW | …-core/tests/clipboard/delayed_rendering_integration.rs | 152 | // Step 4: Simulate remote sending FormatDataResponse with file list | COMMENT |
| LOW | …-core/tests/clipboard/delayed_rendering_integration.rs | 236 | // Step 1: Client initiates file copy | COMMENT |
| LOW⚡ | crates/ironrdp-rdpeudp/src/pdu/prefix.rs | 179 | // Step 1: Swap byte[0] with byte[7] | COMMENT |
| LOW⚡ | crates/ironrdp-rdpeudp/src/pdu/prefix.rs | 182 | // Step 2: Extract the prefix byte (now at position 0) | COMMENT |
| LOW⚡ | crates/ironrdp-rdpeudp/src/pdu/prefix.rs | 192 | // Step 3: The packet data starts at wire[1..] | COMMENT |
| LOW⚡ | crates/ironrdp-rdpeudp/src/pdu/prefix.rs | 195 | // Step 4: If Short_Packet_Length is non-zero and less than 7, | COMMENT |
| LOW⚡ | crates/ironrdp-rdpeudp/src/pdu/prefix.rs | 286 | // Step 1: Swap byte[0] with byte[7] | COMMENT |
| LOW⚡ | crates/ironrdp-rdpeudp/src/pdu/prefix.rs | 295 | // Step 2: The original packet is everything after the prefix byte | COMMENT |
| LOW | crates/ironrdp-rdpeudp/src/pdu/prefix.rs | 140 | // Step 3: Build [prefix_byte, packet_bytes..., padding...] | COMMENT |
| LOW | crates/ironrdp-rdpeudp/src/pdu/prefix.rs | 151 | // Step 4: Swap byte[0] with byte[7] | COMMENT |
| LOW⚡ | crates/ironrdp-str/src/prefixed.rs | 402 | // Step 1: Read the raw prefix value. | COMMENT |
| LOW⚡ | crates/ironrdp-str/src/prefixed.rs | 406 | // Step 2: Convert the raw prefix to a code-unit count on the wire. | COMMENT |
| LOW⚡ | crates/ironrdp-str/src/prefixed.rs | 432 | // Step 4: Read content code units (bulk copy, convert LE bytes to u16 values). | COMMENT |
| LOW⚡ | crates/ironrdp-str/src/prefixed.rs | 440 | // Step 5: Read and validate the null terminator if the format requires one on the wire. | COMMENT |
| LOW | crates/ironrdp-str/src/prefixed.rs | 417 | // Step 3: Determine content length (code units of actual string content, excluding null). | COMMENT |
| LOW⚡ | crates/ironrdp-graphics/src/progressive.rs | 132 | // Step 1: RLGR1 decode into coefficient buffer. | COMMENT |
| LOW⚡ | crates/ironrdp-graphics/src/progressive.rs | 135 | // Step 2: LL3 differential decoding (reverse delta encoding on last subband). | COMMENT |
| LOW⚡ | crates/ironrdp-graphics/src/progressive.rs | 138 | // Step 3: Reconstruct DecDwtQ by multiplying by the progressive quantization factor. | COMMENT |
| LOW⚡ | crates/ironrdp-graphics/src/progressive.rs | 141 | // Step 4: Capture sign state for subsequent upgrade passes. | COMMENT |
| LOW⚡ | crates/ironrdp-graphics/src/progressive.rs | 378 | // Step 1: Forward DWT | COMMENT |
| LOW⚡ | crates/ironrdp-graphics/src/progressive.rs | 385 | // Step 2: Base quantization (scale by 2^(quant - 6)) | COMMENT |
| LOW⚡ | crates/ironrdp-graphics/src/progressive.rs | 388 | // Step 3: Progressive quantization (right-shift by BitPos) | COMMENT |
| LOW⚡ | crates/ironrdp-graphics/src/progressive.rs | 391 | // Step 4: LL3 delta encoding | COMMENT |
| LOW⚡ | crates/ironrdp-graphics/src/progressive.rs | 394 | // Step 5: RLGR1 entropy encode | COMMENT |
| LOW⚡ | crates/ironrdp-web/src/clipboard.rs | 1732 | // Step 1: Remote clipboard changed with text + file | COMMENT |
| LOW⚡ | crates/ironrdp-web/src/clipboard.rs | 1741 | // Step 2: Should get SendInitiatePaste for text first | COMMENT |
| LOW⚡ | crates/ironrdp-web/src/clipboard.rs | 1749 | // Step 3: Simulate FormatDataResponse for text (null-terminated UTF-16LE "hi") | COMMENT |
| LOW⚡ | crates/ironrdp-web/src/clipboard.rs | 1756 | // Step 4: After text is done, should get SendInitiatePaste for file format | COMMENT |
| LOW⚡ | …otnet/Devolutions.IronRdp/src/RDCleanPathConnection.cs | 75 | // Step 1: Connect WebSocket to gateway | COMMENT |
| LOW⚡ | …otnet/Devolutions.IronRdp/src/RDCleanPathConnection.cs | 80 | // Step 2: Get client local address from the WebSocket connection | COMMENT |
| LOW⚡ | …otnet/Devolutions.IronRdp/src/RDCleanPathConnection.cs | 85 | // Step 3: Setup ClientConnector | COMMENT |
| LOW⚡ | …otnet/Devolutions.IronRdp/src/RDCleanPathConnection.cs | 89 | // Step 4: Perform RDCleanPath handshake | COMMENT |
| LOW | …otnet/Devolutions.IronRdp/src/RDCleanPathConnection.cs | 136 | // Step 6: Finalize connection | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | crates/ironrdp-testsuite-core/tests/server/acceptor.rs | 80 | // Step 1: feed the connection request (HYBRID | HYBRID_EX, no SSL) | COMMENT |
| LOW⚡ | crates/ironrdp-testsuite-core/tests/server/acceptor.rs | 86 | // Step 2: acceptor tries to send confirm, finds no common protocol | COMMENT |
| LOW⚡ | …tes/ironrdp-testsuite-core/tests/rdpeudp/connection.rs | 117 | // Step 1: Client sends SYN | COMMENT |
| LOW⚡ | …tes/ironrdp-testsuite-core/tests/rdpeudp/connection.rs | 121 | // Step 2: Server receives SYN and creates connection with SYN+ACK | COMMENT |
| LOW⚡ | …tes/ironrdp-testsuite-core/tests/rdpeudp/connection.rs | 126 | // Step 3: Client receives SYN+ACK → transitions to Established | COMMENT |
| LOW | …tes/ironrdp-testsuite-core/tests/rdpeudp/connection.rs | 141 | // Step 4: Server receives final ACK → transitions to Established | COMMENT |
| LOW⚡ | …-core/tests/clipboard/delayed_rendering_integration.rs | 116 | // Step 1: Simulate remote sending FormatList with FileGroupDescriptorW | COMMENT |
| LOW⚡ | …-core/tests/clipboard/delayed_rendering_integration.rs | 126 | // Step 2: Process the FormatList - should store format but NOT request file list yet | COMMENT |
| LOW⚡ | …-core/tests/clipboard/delayed_rendering_integration.rs | 170 | // Step 5: Process the FormatDataResponse | COMMENT |
| LOW⚡ | …-core/tests/clipboard/delayed_rendering_integration.rs | 176 | // Step 6: Verify that backend.on_remote_file_list() was called with correct files | COMMENT |
| LOW⚡ | …-core/tests/clipboard/delayed_rendering_integration.rs | 250 | // Step 2: Verify FormatList was sent | COMMENT |
| LOW⚡ | …-core/tests/clipboard/delayed_rendering_integration.rs | 253 | // Step 3: Simulate remote sending FormatDataRequest for our file list | COMMENT |
| LOW⚡ | …-core/tests/clipboard/delayed_rendering_integration.rs | 261 | // Step 4: Verify FormatDataResponse with file list was sent | COMMENT |
| LOW | …-core/tests/clipboard/delayed_rendering_integration.rs | 141 | // Step 3: User initiates paste for FileGroupDescriptorW format | COMMENT |
| LOW | …-core/tests/clipboard/delayed_rendering_integration.rs | 152 | // Step 4: Simulate remote sending FormatDataResponse with file list | COMMENT |
| LOW | …-core/tests/clipboard/delayed_rendering_integration.rs | 236 | // Step 1: Client initiates file copy | COMMENT |
| LOW⚡ | crates/ironrdp-rdpeudp/src/pdu/prefix.rs | 179 | // Step 1: Swap byte[0] with byte[7] | COMMENT |
| LOW⚡ | crates/ironrdp-rdpeudp/src/pdu/prefix.rs | 182 | // Step 2: Extract the prefix byte (now at position 0) | COMMENT |
| LOW⚡ | crates/ironrdp-rdpeudp/src/pdu/prefix.rs | 192 | // Step 3: The packet data starts at wire[1..] | COMMENT |
| LOW⚡ | crates/ironrdp-rdpeudp/src/pdu/prefix.rs | 195 | // Step 4: If Short_Packet_Length is non-zero and less than 7, | COMMENT |
| LOW⚡ | crates/ironrdp-rdpeudp/src/pdu/prefix.rs | 286 | // Step 1: Swap byte[0] with byte[7] | COMMENT |
| LOW⚡ | crates/ironrdp-rdpeudp/src/pdu/prefix.rs | 295 | // Step 2: The original packet is everything after the prefix byte | COMMENT |
| LOW | crates/ironrdp-rdpeudp/src/pdu/prefix.rs | 140 | // Step 3: Build [prefix_byte, packet_bytes..., padding...] | COMMENT |
| LOW | crates/ironrdp-rdpeudp/src/pdu/prefix.rs | 151 | // Step 4: Swap byte[0] with byte[7] | COMMENT |
| LOW⚡ | crates/ironrdp-str/src/prefixed.rs | 402 | // Step 1: Read the raw prefix value. | COMMENT |
| LOW⚡ | crates/ironrdp-str/src/prefixed.rs | 406 | // Step 2: Convert the raw prefix to a code-unit count on the wire. | COMMENT |
| LOW⚡ | crates/ironrdp-str/src/prefixed.rs | 432 | // Step 4: Read content code units (bulk copy, convert LE bytes to u16 values). | COMMENT |
| LOW⚡ | crates/ironrdp-str/src/prefixed.rs | 440 | // Step 5: Read and validate the null terminator if the format requires one on the wire. | COMMENT |
| LOW | crates/ironrdp-str/src/prefixed.rs | 417 | // Step 3: Determine content length (code units of actual string content, excluding null). | COMMENT |
| LOW⚡ | crates/ironrdp-graphics/src/progressive.rs | 132 | // Step 1: RLGR1 decode into coefficient buffer. | COMMENT |
| LOW⚡ | crates/ironrdp-graphics/src/progressive.rs | 135 | // Step 2: LL3 differential decoding (reverse delta encoding on last subband). | COMMENT |
| LOW⚡ | crates/ironrdp-graphics/src/progressive.rs | 138 | // Step 3: Reconstruct DecDwtQ by multiplying by the progressive quantization factor. | COMMENT |
| LOW⚡ | crates/ironrdp-graphics/src/progressive.rs | 141 | // Step 4: Capture sign state for subsequent upgrade passes. | COMMENT |
| LOW⚡ | crates/ironrdp-graphics/src/progressive.rs | 378 | // Step 1: Forward DWT | COMMENT |
| LOW⚡ | crates/ironrdp-graphics/src/progressive.rs | 385 | // Step 2: Base quantization (scale by 2^(quant - 6)) | COMMENT |
| LOW⚡ | crates/ironrdp-graphics/src/progressive.rs | 388 | // Step 3: Progressive quantization (right-shift by BitPos) | COMMENT |
| LOW⚡ | crates/ironrdp-graphics/src/progressive.rs | 391 | // Step 4: LL3 delta encoding | COMMENT |
| LOW⚡ | crates/ironrdp-graphics/src/progressive.rs | 394 | // Step 5: RLGR1 entropy encode | COMMENT |
| LOW⚡ | crates/ironrdp-web/src/clipboard.rs | 1732 | // Step 1: Remote clipboard changed with text + file | COMMENT |
| LOW⚡ | crates/ironrdp-web/src/clipboard.rs | 1741 | // Step 2: Should get SendInitiatePaste for text first | COMMENT |
| LOW⚡ | crates/ironrdp-web/src/clipboard.rs | 1749 | // Step 3: Simulate FormatDataResponse for text (null-terminated UTF-16LE "hi") | COMMENT |
| LOW⚡ | crates/ironrdp-web/src/clipboard.rs | 1756 | // Step 4: After text is done, should get SendInitiatePaste for file format | COMMENT |
| LOW⚡ | …otnet/Devolutions.IronRdp/src/RDCleanPathConnection.cs | 75 | // Step 1: Connect WebSocket to gateway | COMMENT |
| LOW⚡ | …otnet/Devolutions.IronRdp/src/RDCleanPathConnection.cs | 80 | // Step 2: Get client local address from the WebSocket connection | COMMENT |
| LOW⚡ | …otnet/Devolutions.IronRdp/src/RDCleanPathConnection.cs | 85 | // Step 3: Setup ClientConnector | COMMENT |
| LOW⚡ | …otnet/Devolutions.IronRdp/src/RDCleanPathConnection.cs | 89 | // Step 4: Perform RDCleanPath handshake | COMMENT |
| LOW | …otnet/Devolutions.IronRdp/src/RDCleanPathConnection.cs | 136 | // Step 6: Finalize connection | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/pr-automation/automation.test.js | 91 | function withCurrentValidClassification(github, classificationId = FORCED_CLASSIFICATION_ID) { | CODE |
| LOW | .github/pr-automation/automation.test.js | 704 | function maximumSpecialistAggregate() { | CODE |
| LOW | .github/pr-automation/automation.test.js | 5819 | function assertReasonSurvivesRuntime(reason) { | CODE |
| LOW | .github/pr-automation/automation.test.js | 5879 | async function assertRuntimeAcceptsRejection(result) { | CODE |
| LOW | .github/pr-automation/validate-final-review.js | 474 | function validateNormalizedFinalReview(value, expectedShaOrContext) { | CODE |
| LOW | .github/pr-automation/agent-validator.js | 145 | function diagnoseProtocolReferences(candidate, corpus, corpusSha) { | CODE |
| LOW | .github/pr-automation/agent-validator.js | 225 | function preservedCandidateFindings(candidate, history, reviewer) { | CODE |
| LOW | .github/pr-automation/classification-gate.js | 6 | async function resolveClassificationGate({ | CODE |
| LOW | .github/pr-automation/write-state.js | 252 | async function ensureClassificationCheck( | CODE |
| LOW | .github/pr-automation/write-state.js | 281 | async function dispatchClassificationComplete(github, owner, repo, prNumber, expectedSha, canMutate) { | CODE |
| LOW | .github/pr-automation/current-head.js | 10 | function isTruncatedGithubResponse(error) { | CODE |
| LOW | .github/pr-automation/validate-protocol-review.js | 78 | function validateProtocolReferences(entries, { corpus, expectedCorpusSha } = {}) { | CODE |
| LOW | .github/pr-automation/resolve-state.js | 32 | function preservedFailureLabelSets(labels) { | CODE |
| LOW | .github/pr-automation/resolve-state.js | 53 | function deterministicDiffReviewers(deterministic) { | CODE |
| LOW | .github/pr-automation/resolve-state.js | 66 | function classificationMachineState({ | CODE |
| LOW | .github/pr-automation/resolve-state.js | 114 | function resolveClassificationState({ | CODE |
| LOW | .github/actions/openai-agent/src/provider.js | 359 | function createResponseBodyMonitor(options) { | CODE |
| LOW | .github/actions/openai-agent/src/provider.js | 363 | function responseBodyMonitorFetchOptions(monitor) { | CODE |
| LOW | .github/actions/openai-agent/src/agent.js | 144 | function isKnownResponseBodyTransportFailure(error) { | CODE |
| LOW | .github/actions/openai-agent/src/agent.js | 152 | function providerFailureDiagnostic(error) { | CODE |
| LOW | .github/actions/resilient-review-output/validate.js | 72 | function changedPathsFromRepository(repository) { | CODE |
| LOW | web-client/iron-remote-desktop-rdp/src/main.ts | 67 | export function enableStandardRdpSecurity(enable: boolean): Extension { | CODE |
| LOW | web-client/iron-remote-desktop-rdp/src/extensions.ts | 17 | export function fileContentsRequestCallback( | CODE |
| LOW | web-client/iron-remote-desktop-rdp/src/extensions.ts | 30 | export function fileContentsResponseCallback( | CODE |
| LOW | web-client/iron-remote-desktop-rdp/src/extensions.ts | 48 | export function formatListResponseCallback(cb: (ok: boolean) => void): Extension { | CODE |
| LOW | …nt/iron-remote-desktop-rdp/src/storage/storage.test.ts | 83 | function createMockDirectoryHandle(name: string, children?: Map<string, MockEntry>): FileSystemDirectoryHandle { | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/ironrdp-testsuite-extra/tests/client/cloud.rs | 856 | // oracle: scaffold (untrusted multi-line XML, .rdp, and CMS signedAttrs inputs return structured errors without pan | COMMENT |
| MEDIUM | crates/ironrdp-agent/src/lib.rs | 5 | //! A CLI-driven agentic RDP client. | COMMENT |
| MEDIUM | crates/ironrdp-connector/Cargo.toml | 35 | rand = { version = "0.9", features = ["std"] } # TODO: dependency injection? | CODE |
| MEDIUM | crates/ironrdp-capture-replay/src/routing.rs | 1431 | // oracle: scaffold (replay renders the graphics output only, so it must not keep window | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | crates/ironrdp-rdpsnd/Cargo.toml | 25 | # integration testsuite (the lib has no inline test harness — `test = false`). | COMMENT |
| MEDIUM | …-client/iron-svelte-client/static/beercss/beer.min.css | 1 | @import"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:FILL@0..1&family=Roboto:wght@300;400;500&disp | CODE |
| MEDIUM | …iron-remote-desktop-rdp/src/RdpFileTransferProvider.ts | 1518 | // Track cumulative bytes served per file for robust completion | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/release-crates.yml | 20 | # Create a PR with the new versions and changelog, preparing the next release. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | crates/ironrdp/examples/screenshot.rs | 11 | //! # Usage example | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/workflows/npm-publish.yml | 154 | # Check if this version exists on npm; exit code 0 means it does. | COMMENT |