RustDesk/flutter/lib/models
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
..
ab_model.dart flutter: improve address book pull error handling (#14813) 2026-04-18 11:19:32 +08:00
chat_model.dart fix: web chat (#9588) 2024-10-08 15:23:00 +08:00
cm_file_model.dart feat(fs): delegate win --server file reading to CM (#13736) 2025-12-28 15:39:35 +08:00
desktop_render_texture.dart view camera (#11040) 2025-03-10 21:06:53 +08:00
file_model.dart feat(fs): delegate win --server file reading to CM (#13736) 2025-12-28 15:39:35 +08:00
group_model.dart flutter: improve address book pull error handling (#14813) 2026-04-18 11:19:32 +08:00
input_model.dart Revert "fix web break introduced in 38f130071 fix(linux): enable mouse side buttons in remote sessions (#14848)" (#14973) 2026-05-06 20:20:17 +08:00
input_modifier_utils.dart flutter: shift after one shot IME capitalization (#14695) 2026-04-26 22:44:26 +08:00
model.dart Revert "fix web break introduced in 38f130071 fix(linux): enable mouse side buttons in remote sessions (#14848)" (#14973) 2026-05-06 20:20:17 +08:00
native_model.dart fix: ios, file transfer, home dir (#12657) 2025-08-15 00:00:05 +08:00
peer_model.dart show peer note (#13140) 2025-10-12 14:59:42 +08:00
peer_tab_model.dart disable-discovery-pane 2025-09-01 17:07:29 +08:00
platform_model.dart fix: web send audit note (#9582) 2024-10-07 21:37:43 +08:00
printer_model.dart feat: take screenshot (#11591) 2025-04-30 17:23:35 +08:00
relative_mouse_model.dart feat: Add relative mouse mode (#13928) 2026-01-09 10:03:14 +08:00
server_model.dart feat: option, enable-privacy-mode & enable-perm-change-in-accept-window (#14875) 2026-05-02 00:44:22 +08:00
state_model.dart feat: Add relative mouse mode (#13928) 2026-01-09 10:03:14 +08:00
terminal_model.dart Terminal utf8 and reconnect (#14895) 2026-05-07 13:27:13 +08:00
user_model.dart avatar (#14440) 2026-03-04 21:43:19 +08:00
web_model.dart Revert "try fix firefox v2 paste problem" (#12126) 2025-06-19 22:31:40 +08:00