RustDesk
6c20fc936d
Terminal utf8 and reconnect ( #14895 )
...
* fix: handle incomplete UTF-8 sequences in terminal output, rework on https://github.com/rustdesk/rustdesk/pull/14736
* Fix terminal auto-reconnect freeze: reconnect resumes terminal output, while multi-tab reconnect avoids restoring duplicate tabs for terminals that are already open.
* fix(terminal): subtract with overflow
```
thread '<unnamed>' panicked at src\server\terminal_service.rs:476:17:
attempt to subtract with overflow
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
thread 'tokio-runtime-worker' panicked at src\server\terminal_service.rs:1576:50:
called `Result::unwrap()` on an `Err` value: PoisonError { .. }
[2026-04-25T07:17:34Z ERROR librustdesk::server::service] Failed to join thread for service ts_9badd3fe-2411-4996-9f40-93c979009edd, Any { .. }
```
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix ios enter: https://github.com/rustdesk/rustdesk/issues/14907
* fix(terminal): reconnect, error handling
1. Terminal shows "^[[1;1R^[[2;2R^[[>0;0;0c"
2. NaN
```
[ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: Converting object to an encodable object failed: NaN
...
```
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(terminal): dialog, close window
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(terminal): close terminal window on disconnect dialog
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(terminal): merge reconnect backlog into replay output
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(terminal): avoid reconnect stalls and delayed layout writes
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(terminal): remove invalid test
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(terminal): schedule frame before flushing buffered output
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(terminal): windows&macos, charset utf-8
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(terminal): reconnect suppress next output
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix: cap terminal reconnect replay output
- split reconnect replay backlog into capped chunks
- mark terminal data replay chunks for client-side suppression
- avoid using open-message text to suppress xterm replies
- reuse default terminal padding value
- remove misleading Enter-key normalization PR link
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(terminal): env en_US.UTF-8
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(terminal): reconnect, refactor
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(terminal): flag, retry output
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(terminal): update hbb_common
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(terminal): comments
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(terminal): comments utf-8 chunk accumulator
Signed-off-by: fufesou <linlong1266@gmail.com >
* fix(terminal): update hbb_common
Signed-off-by: fufesou <linlong1266@gmail.com >
---------
Signed-off-by: fufesou <linlong1266@gmail.com >
Co-authored-by: fufesou <linlong1266@gmail.com >
2026-05-07 13:27:13 +08:00