Merge remote-tracking branch 'upstream/main' into feat/agent-forward-config

# Conflicts:
#	src-tauri/src/cmd/connection.rs
#	src-tauri/src/config/connection.rs
#	src-tauri/src/config/mod.rs
This commit is contained in:
litcc committed 2026-08-13 17:44:08 +08:00
commit 6ecc011b57
143 files changed
+14234 -1940

No files matched your search

+31 -1
View File
@@ -4,13 +4,14 @@ sidebar_position: 0
# 会话类型
NyaTerm 不只是 SSH 客户端,而是一个把多类终端与远程桌面工作流放到同一工作区中的桌面应用。当前支持五类会话:
NyaTerm 不只是 SSH 客户端,而是一个把多类终端与远程桌面工作流放到同一工作区中的桌面应用。当前支持六类会话:
- **SSH**
- **本地终端**
- **Telnet**
- **串口**
- **RDP**
- **VNC**
理解它们之间的差异,有助于你判断某个功能为什么“只在某些标签页里出现”。
@@ -23,6 +24,7 @@ NyaTerm 不只是 SSH 客户端,而是一个把多类终端与远程桌面工
| Telnet | 旧设备、实验环境、兼容性排障 | 终端工作区能力,支持 `Backspace Mode`,但不包含 SSH 专属特性 |
| 串口 | 路由器、交换机、板卡、嵌入式调试口 | 串口参数配置、`Backspace Mode` 与终端工作区能力 |
| RDP | Windows 远程桌面、图形化运维入口 | 远程桌面画面、NLA/CredSSP、证书验证、文本剪贴板、窗口适配与重连 |
| VNC | 裸 TCP VNC 服务、虚拟机控制台、轻量图形远程桌面 | Raw / ZRLE / Tight / Tight JPEG 显示、None / VNC Auth、窗口适配、文本剪贴板与重连 |
## SSH
@@ -120,6 +122,32 @@ RDP 会话适合连接 Windows 主机或提供 RDP 服务的远程桌面环境
RDP 目前不提供终端命令历史、SFTP 文件浏览器、SSH 代理 / 跳板机或远程资源监控。如果你需要命令行增强能力,应优先使用 SSH、本地终端、Telnet 或串口会话。
## VNC
VNC 会话适合连接提供传统 RFB / VNC 服务的虚拟机控制台、实验环境或轻量图形桌面。它和 RDP 一样使用远程桌面 pane,并共享保存连接、最近使用、标签页和分屏工作区。
创建 VNC 会话时可以配置:
- 主机和端口
- 安全模式:自动、None 或 classic VNC Authentication
- 显示模式:适应窗口、实际尺寸或拉伸
- 文本剪贴板开关
- 自动重连次数
- shared / view-only 行为
当前 VNC 传输仅支持 direct TCP,没有 TLS / VeNCrypt。classic VNC Authentication 的密码限制为 8 字节以内,NyaTerm 会拒绝超长密码而不会截断。画面编码默认按 `DesktopSizePseudo`、ZRLE、Tight、Raw 顺序声明;Tight JPEG 会在后端解码成统一 RGBA framebuffer,Raw 仍保留为稳定 fallback。暂不支持 CopyRect、cursor pseudo-encoding、远程 resize、代理和 SSH transport。文本剪贴板限定为 Latin-1 文本,避免把二进制或超大内容塞进 VNC 协议路径。
### VNC 互通矩阵
| 场景 | 安全模式 | 编码 | 状态 |
| --- | --- | --- | --- |
| Scripted RFB 3.8 fixture | None | ZRLE / Tight / Tight JPEG -> RGBA RawImage | 已通过自动测试 |
| Scripted RFB 3.8 fixture | classic VNC Auth | ZRLE / Tight / Tight JPEG -> RGBA RawImage | 已通过自动测试 |
| TigerVNC | None / VNC Auth | Raw / ZRLE / Tight / JPEG | 真实服务器待测 |
| TightVNC | None / VNC Auth | Raw / Tight / JPEG | 真实服务器待测 |
| x11vnc / LibVNCServer | None / VNC Auth | Raw / ZRLE / Tight / JPEG | 真实服务器待测 |
| QEMU / KVM VNC | None / VNC Auth | Raw / ZRLE / Tight / JPEG | 真实服务器待测 |
## 如何选择?
可以按下面这个简单规则判断:
@@ -129,6 +157,7 @@ RDP 目前不提供终端命令历史、SFTP 文件浏览器、SSH 代理 / 跳
- 要兼容传统远程终端:用 **Telnet**
- 要接调试口 / 设备串口:用 **串口**
- 要 Windows 图形远程桌面:用 **RDP**
- 要 VNC / 虚拟机控制台图形桌面:用 **VNC**
## 在一个工作区里混用
@@ -138,5 +167,6 @@ NyaTerm 的优势之一,是允许你把这些类型混合放进同一工作区
- 右边本地终端执行打包脚本
- 再开一个串口标签观察设备启动信息
- 另一个分屏中打开 RDP 查看 Windows 远程桌面状态
- 再开一个 VNC pane 操作虚拟机控制台
这也是为什么文档里很多功能会写成“某会话类型专属”或“某会话类型才显示”的原因——工作区统一,但能力边界仍然取决于底层会话类型。
@@ -4,13 +4,14 @@ sidebar_position: 0
# Session Types
NyaTerm is not just an SSH client. It is a desktop app that puts multiple terminal and remote-desktop workflows into one workspace. It currently supports five session types:
NyaTerm is not just an SSH client. It is a desktop app that puts multiple terminal and remote-desktop workflows into one workspace. It currently supports six session types:
- **SSH**
- **Local Terminal**
- **Telnet**
- **Serial**
- **RDP**
- **VNC**
Understanding the differences helps explain why some panels or enhancements only appear for certain tabs.
@@ -23,6 +24,7 @@ Understanding the differences helps explain why some panels or enhancements only
| Telnet | Legacy devices, lab environments, compatibility troubleshooting | Terminal workspace features with `Backspace Mode`, but not SSH-only features |
| Serial | Routers, switches, boards, embedded debug ports | Serial port settings, `Backspace Mode`, and terminal workspace features |
| RDP | Windows Remote Desktop or graphical administration entry points | Remote desktop display, NLA/CredSSP, certificate verification, text clipboard, window fitting, and reconnects |
| VNC | Raw TCP VNC services, VM consoles, lightweight graphical remote desktops | Raw / ZRLE / Tight / Tight JPEG display, None / VNC Auth, window scaling, text clipboard, and reconnects |
## SSH
@@ -118,6 +120,32 @@ When connecting to an RDP host with an unknown certificate, NyaTerm opens a cert
RDP does not provide terminal command history, the SFTP file explorer, SSH proxy/jump-host behavior, or remote resource monitoring. If you need command-line enhancements, use SSH, Local Terminal, Telnet, or Serial instead.
## VNC
VNC sessions are for traditional RFB / VNC services such as VM consoles, lab environments, and lightweight graphical desktops. Like RDP, they use a remote-desktop pane and share NyaTerm's saved-connection, recent-use, tab, and split-pane workspace model.
When creating a VNC session, you can configure:
- Host and port
- Security mode: automatic, None, or classic VNC Authentication
- Display mode: fit to window, actual size, or stretch
- Text clipboard toggle
- Automatic reconnect attempts
- Shared / view-only behavior
The current VNC transport is direct TCP only, with no TLS / VeNCrypt. Classic VNC Authentication passwords are limited to 8 bytes; NyaTerm rejects longer passwords instead of truncating them. Framebuffer encodings are advertised by default as `DesktopSizePseudo`, ZRLE, Tight, then Raw; Tight JPEG is decoded in the backend into the same RGBA framebuffer path, and Raw remains the stable fallback. CopyRect, cursor pseudo-encoding, remote resize, proxies, and SSH transport are not supported. Text clipboard exchange is limited to Latin-1 text so binary or oversized payloads do not enter the VNC protocol path.
### VNC Interop Matrix
| Scenario | Security | Encoding | Status |
| --- | --- | --- | --- |
| Scripted RFB 3.8 fixture | None | ZRLE / Tight / Tight JPEG -> RGBA RawImage | Automated test passed |
| Scripted RFB 3.8 fixture | classic VNC Auth | ZRLE / Tight / Tight JPEG -> RGBA RawImage | Automated test passed |
| TigerVNC | None / VNC Auth | Raw / ZRLE / Tight / JPEG | Real server untested |
| TightVNC | None / VNC Auth | Raw / Tight / JPEG | Real server untested |
| x11vnc / LibVNCServer | None / VNC Auth | Raw / ZRLE / Tight / JPEG | Real server untested |
| QEMU / KVM VNC | None / VNC Auth | Raw / ZRLE / Tight / JPEG | Real server untested |
## How to choose
A simple rule of thumb:
@@ -127,6 +155,7 @@ A simple rule of thumb:
- Need a traditional remote terminal? Use **Telnet**
- Need a device console or debug port? Use **Serial**
- Need a graphical Windows remote desktop? Use **RDP**
- Need a VNC / VM console graphical desktop? Use **VNC**
## Mix them in one workspace
@@ -136,6 +165,7 @@ One of NyaTerm's strengths is that you can mix these session types in the same w
- Local Terminal on the right to run packaging or Git commands
- A Serial tab open to watch device boot output
- An RDP pane open to inspect a Windows remote desktop
- A VNC pane open to operate a VM console
That is why some features are documented as session-specific. The workspace is shared, but the capability boundary still depends on the underlying session type.
+66
View File
@@ -9,6 +9,39 @@ export type ChangelogRelease = {
};
const changelogReleasesEn: ChangelogRelease[] = [
{
version: '[1.2.2] - 2026-08-12',
sections: [
{
title: 'Added',
items: [
'**build:** Add Windows MSI packaging support to the release workflow.',
'**quick-commands:** Add drag-and-drop sorting for quick command categories.',
'**rdp:** Enhance RDP resizing and dynamic display behavior.',
'**header:** Add predefined macOS edit menu items.',
],
},
{
title: 'Changed',
items: [
'**terminal-gutter:** Improve gutter layout constants for better readability.',
'**i18n:** Add quick command labels for category creation and custom sorting.',
],
},
{
title: 'Fixed',
items: [
'**rdp:** Improve physical key capture, lock-key routing, right Shift handling, and UPN username preservation during authentication.',
'**terminal:** Reset timestamps to terminal startup time when Clear All is used.',
'**release:** Prevent release crashes when remote metadata is corrupt.',
],
},
{
title: 'Documentation',
items: ['**readme:** Update Discord and WeChat group links.'],
},
],
},
{
version: '[1.2.1] - 2026-08-11',
sections: [
@@ -1833,6 +1866,39 @@ const changelogReleasesEn: ChangelogRelease[] = [
];
const changelogReleasesZhCN: ChangelogRelease[] = [
{
version: '[1.2.2] - 2026-08-12',
sections: [
{
title: '新增',
items: [
'**build:** 在发布流程中新增 Windows MSI 打包支持。',
'**quick-commands:** 新增快捷命令分类拖拽排序。',
'**rdp:** 增强 RDP 缩放和动态显示行为。',
'**header:** 新增 macOS 预设编辑菜单项。',
],
},
{
title: '变更',
items: [
'**terminal-gutter:** 优化 gutter 布局常量,提升可读性。',
'**i18n:** 新增快捷命令分类创建和自定义排序相关文案。',
],
},
{
title: '修复',
items: [
'**rdp:** 改进物理按键捕获、锁定键路由、右 Shift 处理,以及认证时 UPN 用户名保留。',
'**terminal:** 使用 Clear All 时将时间戳重置为终端启动时间。',
'**release:** 防止远端元数据损坏时发布流程崩溃。',
],
},
{
title: '文档',
items: ['**readme:** 更新 Discord 和微信群链接。'],
},
],
},
{
version: '[1.2.1] - 2026-08-11',
sections: [