100 Commits
Author SHA1 Message Date
rustdeskandClaude Opus 5.5 256dc9bc12 docs: scope the -p rule to macOS and Windows
Linux CI runs cargo test --workspace, so a Linux-gated test in another
crate already runs there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WS1HTjp6UQuG43KEcQPq1R
2026-10-14 16:39:57 +08:00
rustdesk 0b5a3d74de 1.5.1 2026-10-12 17:08:40 +08:00
rustdeskandClaude Fable 5.1 9f9585ce15 Remove ConfigUpdate handling
Clients no longer apply a rendezvous-server list pushed by the
rendezvous server.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PkpVy2ufxgEjKd3SjXPnJ8
2026-10-06 17:17:06 +08:00
rustdeskandClaude Opus 5.5 4812a9815b AGENTS.md: limit corner-case growth and test bloat
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-28 18:26:34 +08:00
rustdesk 6a0eb9a1fd fix(terminal): preserve trackpad scrolling in alternate screen
Prevent the inner terminal scrollable from accepting user scrolling in the alternate buffer, so xterm's existing outer handler receives trackpad gestures after main-screen history.

Keep wheel encoding and drag reporting unchanged. Cover trackpad forwarding, subsequent drag coordinates, arrow fallback, and return to local scrollback.
2026-09-22 11:45:05 +08:00
rustdeskandClaude Fable 5.1 763d4eeb05 bump hbb_common: tungstenite 0.29 forks, read buffer grown as bytes arrive
hbb_common 7dc56d6..d9895ff, one commit: tokio-tungstenite and tungstenite
up from 0.26 to rustdesk-org's rustdesk-patches-0.29 branches. The
tungstenite fork grows the read buffer a read_buffer_size chunk at a time
as bytes arrive, where upstream reserved the whole length a frame header
declared. It is pinned here at the workspace root, the one place cargo
reads [patch], so hbb_common's copy and tokio-tungstenite's resolve to
the same one. The lockfile moves only those two crates and drops utf-8,
which 0.29 no longer pulls.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EZ49AbZJYfm8NTp5yDPMab
2026-09-21 17:58:35 +08:00
rustdeskandClaude Opus 5 bedf64c8d3 bump hbb_common: cap the message an unauthenticated peer can make us hold
Carries `Stream::set_max_packet_length` to all three transports, so a connection
can hold its peer to a small message until it has authenticated: TCP had the knob,
WebRTC's reassembly ceiling becomes a per-stream bound, and WebSocket reaches
tungstenite's config through a fork of v0.26.2 that exposes `set_config`, which
upstream still does not at 0.30.0.

Nothing calls it yet, so this changes no behaviour; the hook lands separately.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EZ49AbZJYfm8NTp5yDPMab
2026-09-17 12:00:37 +08:00
rustdeskandClaude Opus 5 4f56d6957a pin the webrtc crate to the fork that exposes max_binding_requests
The hbb_common bump before this one calls SettingEngine::set_ice_max_binding_requests(),
which the 0.13.0 release on crates.io does not have: only webrtc-util and webrtc-sctp
were patched to the fork, so the webrtc crate itself still came from the registry and
the build stopped at that call.

The three patches now point at the same fork revision, one commit past the one they
were on, which adds the setter. The webrtc crate depends on its siblings by path, so
patching it moves the rest of that workspace to the fork as well; the fork is upstream
v0.13.0 with changes to sctp and to this setter only, so those crates carry the same
code they did from the registry.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EZ49AbZJYfm8NTp5yDPMab
2026-09-16 14:18:03 +08:00
rustdeskandClaude Opus 5 f312b57909 bump hbb_common: cap the answerer's ICE binding requests at 74
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EZ49AbZJYfm8NTp5yDPMab
2026-09-16 13:28:32 +08:00
rustdesk 82b6fc2f3b https://github.com/rustdesk/rustdesk/pull/16199/ 2026-09-14 14:38:55 +08:00
rustdesk 29772f6595 fix https://github.com/rustdesk/rustdesk/issues/16208 2026-09-14 14:06:03 +08:00
rustdesk 3c7c13d79d timeout of webrtc fallback to delay 2026-09-12 13:52:11 +08:00
rustdeskandClaude Fable 5.1 d5311574be fix(flutter): show the quality monitor's Transport row on the web only
The row was added for the web client, which has no session tab to name
the transport on, but nothing gated it: a desktop session over WebRTC
showed it too, duplicating the tab tooltip's "(WebRTC)". The getter now
answers only on the web, as its own comment intended.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QcJZZeJ3Nqb2MHxXuUadkb
2026-09-11 15:04:31 +08:00
rustdesk 5cfe136fb0 fix mac sign 2026-09-10 12:08:47 +08:00
rustdeskandClaude Opus 5 aa232a9dfa chore(flutter): pin our own git plugins instead of tracking their HEAD
dash_chat_2, window_manager and desktop_multi_window named only a url, so
the lock recorded `ref: HEAD` for them. That holds while the lock is used
verbatim, but any re-resolution -- an unrelated pubspec.yaml edit, a lock
conflict resolved by regenerating -- re-reads HEAD and silently moves the
plugin to whatever the fork's tip is that day. All three forks are ours and
get pushed to, which is how window_manager and desktop_multi_window drifted
across five lock bumps since July with no pubspec.yaml change to show for it.

Each ref is the resolved-ref already in the lock, and all three still match
their fork's HEAD, so nothing resolves differently today.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EZ49AbZJYfm8NTp5yDPMab
2026-09-10 09:14:49 +08:00
rustdesk e5d473407e fix https://github.com/rustdesk/rustdesk/issues/16086 2026-09-08 12:33:10 +08:00
rustdeskandClaude Opus 5 59fdda3835 file transfer: a send_confirm past the last file no longer panics
`set_stream_offset` indexed `self.files` directly. Its only guard is the
`self.file_num() == r.file_num` check in `confirm()`, and `file_num` counts up
past every file, so it equals `files.len()` once the job is done -- read_frame
at :849 treats exactly that value as "job done". A peer that then sends
`send_confirm` with the matching file_num and a non-zero OffsetBlk gets through
the equality check and off the end of the slice.

Every other site indexing `files` in this file already bounds-checks; this was
the one that did not.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EZ49AbZJYfm8NTp5yDPMab
2026-09-08 11:52:06 +08:00
rustdeskandClaude Fable 5.1 692113c87e bump webrtc: probe on T3-rtx, settle the rest by the SACK, RTO from the latest send
Sending without a congestion window, a T3-rtx resent everything in flight, and
on a 5 Mbps link with 300-500ms stalls that spiralled: seconds of latency and
several times the bytes. The fork now resends everything outstanding on a
timeout only when it packs into four packets; otherwise it resends one packet
and withholds the rest until the SACKs settle them (RFC 4960 6.3.3 E3, F-RTO):
an original acked takes the marks off, a first transmission made after the
timeout acked with the rest still missing sends them, and with nothing else to
tell, a probe acked no sooner than the least RTT after it went out draws the
next probe, two of them settling the rest as lost. A restarted RTO is counted
from the latest send as QUIC does, backs off from the full RTO, and floors at
KCP's 30ms with srtt + 25ms at the least. Lost tails of up to four packets and
sparse small messages under loss now recover at KCP's pace where they trailed
it by a frame; a stall no longer resends the backlog behind itself.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019aokqJuhjvB3kijXtAg5Ns
2026-09-06 14:46:52 +08:00
rustdeskandClaude Opus 5 254d98129d ci: use thin LTO for the armv7 sciter build
The nightly armv7 sciter build aborts while compiling the final `rustdesk`
binary:

    fatal runtime error: Rust cannot catch foreign exceptions
    error: could not compile `rustdesk` (bin "rustdesk")  (signal: 6, SIGABRT)

armv7 is the only 32-bit target in this job that links the whole binary, and
`[profile.release]` uses fat LTO with codegen-units = 1, so LLVM merges every
module into a single unit and runs past the ~3GB address space a 32-bit
process gets. The allocation failure surfaces as a C++ bad_alloc unwinding
into rustc's Rust frames, which is what that "foreign exceptions" abort is.
The x86_64 sciter build uses the same settings and passes, as do aarch64 and
every other 64-bit job in the same run, so this is specific to the 32-bit
address space rather than to the source change itself.

It started failing once the crate graph grew (hbb_common is pulled with the
`webrtc` feature unconditionally), which pushed an already marginal target
over the limit.

Use thin LTO with more codegen units for armv7 only. Peak memory stays
bounded while cross-crate inlining is kept, and 64-bit targets are untouched.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Lq6xFoeEmjcuKwRx1GfdQ2
2026-09-06 10:52:37 +08:00
rustdeskandClaude Fable 5.1 942810d432 bump hbb_common: main after the webrtc merge
rustdesk/hbb_common 3d6fb2c, the merge of PR #579; the tree is the one
470612b already pointed at, now reachable from main.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019aokqJuhjvB3kijXtAg5Ns
2026-09-06 00:24:04 +08:00
rustdesk 28cf1836e6 bump to 1.5.0 2026-09-01 08:57:33 +08:00
rustdesk 2c84c8fb13 change to 3.44.9 flutter for arm 2026-08-31 19:06:32 +08:00
rustdeskandClaude Opus 5 169f74f8d9 fix(ci): check out submodules in update-webpki-roots
The root workspace lists libs/hbb_common as a member, so without the
submodule cargo cannot load the workspace and `cargo update` exits 101.
The job has failed on every scheduled run since it was added.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Gecc6fgEeSxs6VRiQmAeof
2026-08-31 17:31:57 +08:00
rustdesk e9b81e3475 typo 2026-08-27 11:47:36 +08:00
rustdesk d5a7f67999 fix appimage pixbuf crash 2026-08-22 12:25:35 +08:00
rustdesk 6eaac17ac5 typo 2026-08-22 00:02:34 +08:00
rustdesk c45f7d2dd2 refactor is_public 2026-08-21 01:25:51 +08:00
rustdesk f1a06f6765 review rules 2026-08-20 19:22:36 +08:00
rustdesk 0c00d576dd improve comment rules 2026-08-18 12:31:59 +08:00
rustdesk 14a4b197ad translations 2026-08-17 17:22:57 +08:00
rustdesk dfca2c1b8f update agents.md 2026-08-12 17:28:59 +08:00
rustdesk 947cb3f17b propagates the hash-handler continuation result through both connection loops, allowing incoming-only rejection to terminate the connection while preserving existing login flows. 2026-08-10 16:45:27 +08:00
rustdesk 594e63805c harden login request retry 2026-08-10 16:05:13 +08:00
rustdesk e0254d997e fix ci 2026-07-30 16:40:56 +08:00
rustdesk 5aeb4cf945 add zstd to reqwest 2026-07-30 15:28:39 +08:00
rustdeskandClaude Fable 5 c6c53f094a chore(flutter): bump desktop_multi_window to fix the Windows /WX build
The give-up log added in the white-window follow-ups declared a local
named message inside MessageHandler, shadowing its UINT message
parameter. MSVC C4457 plus /WX failed both Windows nightly jobs.
Point the lock at rustdesk_desktop_multi_window#35 which renames it.

https://github.com/rustdesk/rustdesk/actions/runs/30512756157

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-30 14:19:05 +08:00
rustdesk a6708f40e7 fix https://github.com/rustdesk/rustdesk/issues/15703 2026-07-29 12:31:40 +08:00
rustdesk d412d19872 aligned_u8_vec 2026-07-28 13:38:36 +08:00
rustdesk 4dd8e20392 improve id whitelist login failures 2026-07-28 13:36:35 +08:00
rustdesk dabdbf73bb improve id wildcast 2026-07-28 00:09:45 +08:00
rustdesk 94a2a2bb4a fix https://github.com/rustdesk/rustdesk/issues/15566 2026-07-11 21:43:04 +08:00
rustdesk 137298e05a revert back 2026-07-10 15:21:48 +08:00
rustdesk 685a89a171 target Android 15 2026-07-10 15:12:06 +08:00
rustdesk 6c578292e8 bump to 1.4.9 2026-07-06 18:00:39 +08:00
rustdesk 9d1ab3fba3 fix the AOM tile-control argument type 2026-07-01 11:47:08 +08:00
rustdesk b3bd18845d update hbb_common 2026-06-30 11:29:56 +08:00
rustdesk 435f6ec61d update copyright 2026-06-30 11:02:28 +08:00
rustdesk 16570ee34f fix https://github.com/rustdesk/rustdesk/discussions/15355 2026-06-22 22:57:08 +08:00
rustdesk cd2fff0655 fix hbb_common 2026-06-20 18:31:42 +08:00
rustdesk 10f61ffdc2 translate 2026-06-20 18:27:42 +08:00
rustdesk 8baa995c7a bump version 2026-06-17 22:18:45 +08:00
rustdesk bf206dc309 fixing https://github.com/rustdesk/rustdesk/issues/15293 2026-06-16 11:36:53 +08:00
rustdesk 0c86d46162 translate all 2026-06-02 23:33:40 +08:00
rustdesk 50d5823ef5 1.4.7 2026-06-02 17:06:23 +08:00
rustdesk 81e7d27ec8 pin more action 2026-05-26 19:03:03 +08:00
rustdesk f3fc0b5ac2 pin unpinned action 2026-05-26 18:08:28 +08:00
rustdesk fb7bca436b fix ci 2026-05-26 17:08:32 +08:00
rustdesk c19a0ceba2 more "cargo build --locked" 2026-05-26 11:45:15 +08:00
rustdesk 9f8f726f12 fix compile 2026-05-15 17:30:59 +08:00
rustdesk dd265dadd7 update hbb_common 2026-05-13 18:08:08 +08:00
rustdesk 8b8a64f870 revert hbb_common to old one 2026-05-06 19:40:52 +08:00
rustdesk 92509f8e8a update hbb_common 2026-05-06 19:35:47 +08:00
rustdesk f29dec7b13 harden switch side 2026-05-06 19:27:56 +08:00
rustdesk d5d0b01266 fix web break introduced in 38f130071 fix(linux): enable mouse side buttons in remote sessions (#14848) 2026-05-06 18:27:34 +08:00
rustdesk b239535009 refactor per code review 2026-04-22 01:41:13 +08:00
rustdesk 803ac8cc4e save cargo build size 2026-04-21 17:34:05 +08:00
rustdesk 91de51290d add microsoft oidc logo 2026-04-15 14:39:46 +08:00
rustdesk 68fa0466c8 improved oidc login error 2026-04-15 14:36:03 +08:00
rustdesk 0cf3e8ed40 improve agent md 2026-04-09 15:12:57 +08:00
rustdesk aab34b2338 remove winget 2026-03-25 16:36:35 +08:00
rustdesk ad1e5330e9 update hbb_common 2026-03-24 20:39:44 +08:00
rustdesk e3b6e4eaf0 update tray icon crate to fix icon conflict 2026-03-14 15:54:54 +08:00
rustdesk 96797742f2 fix https://github.com/rustdesk/rustdesk/issues/14520 2026-03-13 10:42:13 +08:00
rustdesk 157dbdc543 fix avatar in hbb_common 2026-03-02 12:14:26 +08:00
rustdesk 6ba23683d5 avatar in libs/hbb_comon 2026-03-02 12:06:20 +08:00
rustdesk d49ae493b2 bump to 1.4.6 2026-02-27 20:53:40 +08:00
rustdesk 82a9fd1540 change port forward listen to localhost 2026-02-24 21:57:55 +08:00
rustdesk dc760d6ca8 remove .claude 2026-02-24 21:52:26 +08:00
rustdesk 980bc11e68 update common 2026-02-14 17:48:53 +08:00
rustdesk a0537759b1 fix vi 2025-12-10 00:31:13 +08:00
rustdesk 4f4da20fc0 revert: flatpak command line is_root 2025-12-05 17:26:06 +08:00
rustdesk eb0174ea53 flatpak command line is_root 2025-12-05 17:15:29 +08:00
rustdesk 5b21441898 webrtc 2025-11-28 10:45:48 +08:00
rustdesk 7d06de00fb 24.04 ubuntu24.04 ubuntu24.04 ubuntu24.04 ubuntu24.04 ubuntu24.04
ubuntu24.04 ubuntu24.04 ubuntu24.04 ubuntu24.04 ubuntu24.04 ubuntu24.04
ubuntu24.04 ubuntu24.04 ubuntu24.04 ubuntu24.04 ubuntu24.04 ubuntu24.04
ubuntu24.04 ubuntu24.04 ubuntu
2025-11-19 11:39:37 +08:00
rustdesk 81f711eb00 update lock 2025-11-17 23:09:29 +08:00
rustdesk c8a8e06558 update common 2025-11-17 19:09:50 +08:00
rustdesk 2c079f53a9 web client custom 2025-11-17 00:30:38 +08:00
rustdesk 4e953291ed fix ci android failure 2025-11-15 15:00:29 +08:00
rustdesk 2d7c6ef21f log crash traceback, copilot 2025-11-10 10:01:15 +08:00
rustdesk 017a10e8c8 1.4.4 2025-11-07 15:16:59 +08:00
rustdesk f2dc8e21a8 build 61 2025-10-18 08:50:07 +08:00
rustdesk d55974c352 --terminal command line 2025-10-17 19:22:46 +08:00
rustdesk 182e35adc7 1.4.3 2025-10-17 13:58:08 +08:00
rustdesk 4ae301710d upload x86 windows 2025-10-10 00:23:48 +08:00
rustdesk 0cef5f79ee remove can't save option 2025-09-20 14:03:48 +08:00
rustdesk c979cbcac7 disable-discovery-pane 2025-09-01 17:07:29 +08:00
rustdesk d187121645 simply remove it in case password log 2025-08-19 00:23:17 +08:00
rustdesk bf24869c6a fix bundle id 2025-08-17 15:37:12 +08:00
rustdesk 1aed6f3c2e compile warn 2025-08-17 10:08:12 +08:00
rustdesk 6367d50d76 fix myself 2025-08-17 10:04:40 +08:00