From 1d8fb8500935672f8b8e2c69294d8d34050720fa Mon Sep 17 00:00:00 2001 From: Kang Date: Sat, 13 Jun 2026 01:36:06 +0800 Subject: [PATCH] docs: update documentation - Introduced a searchable session quick switcher for easier navigation between saved connections and local sessions. - Added an auto-start recording feature that begins recording automatically when a session opens. - Enhanced terminal functionality to serialize text for reconnecting sessions and allow closing of disconnected panes. - Improved file explorer and clipboard management with new features and optimizations. - Updated documentation to reflect these new features and enhancements. --- AGENTS.md | 1 + CHANGELOG.md | 217 +++++++ CLAUDE.md | 8 +- docs-site/docs/guide/layout-and-workspace.md | 8 + docs-site/docs/guide/ssh-connection.md | 27 +- docs-site/docs/guide/sync-and-backup.md | 19 +- docs-site/docs/guide/terminal.md | 5 + docs-site/docs/guide/themes.md | 2 + .../current/guide/layout-and-workspace.md | 8 + .../current/guide/ssh-connection.md | 27 +- .../current/guide/sync-and-backup.md | 19 +- .../current/guide/terminal.md | 5 + .../current/guide/themes.md | 2 + docs-site/src/data/changelogData.ts | 560 ++++++++++++++++++ 14 files changed, 901 insertions(+), 7 deletions(-) create mode 120000 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 120000 index 00000000..681311eb --- /dev/null +++ b/AGENTS.md @@ -0,0 +1 @@ +CLAUDE.md \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 3df04ffc..e1f582e9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,223 @@ All notable changes to this project will be documented in this file. This changelog is inferred from release bump commits in git history (for example `chore: bump version to vX.Y.Z`) and grouped by Conventional Commit type. +## [1.1.6] - 2026-06-12 + +### Added + +- **session:** Add a searchable session quick switcher to jump between saved connections and local sessions from the keyboard or mouse, including a shortcut entry for creating a new SSH session. +- **recording:** Add an auto-start recording option that begins recording automatically when a session opens. +- **terminal:** Serialize terminal text so reconnecting sessions restore their previous on-screen output. +- **terminal:** Allow disconnected panes to be closed. +- **terminal:** Add a command to delete individual command history entries. +- **file-explorer:** Enhance file attribute management in the Properties dialog. +- **clipboard:** Implement asynchronous clipboard reading with a timeout. +- **action-links:** Support RAR archives in the archive action-link matcher. +- **ai:** Enhance model management with manual model addition and credential grouping. +- **transfer:** Implement background transfer concurrency adjustment. +- **session:** Implement session creation request ID handling. +- **stats:** Enhance `SYSINFO_SCRIPT` for improved system information gathering. + +### Changed + +- **quick-commands:** Introduce a sorting mode and update view mode defaults. +- **sftp:** Enhance directory and symlink handling in the SFTP backend. +- **password-management:** Enhance unlock logic and footer visibility in the password panel. + +### Fixed + +- **connection:** Improve the password management editing flow. +- **macos:** Support drag reordering of connections on macOS. +- **file-explorer:** Reset horizontal scroll position and improve file item interaction. +- **terminal:** Streamline right-click paste in the terminal context menu. +- **ssh:** Reorganize imports and adjust preferred algorithms. + +### Performance + +- Compress portable snapshots before encryption. + +### Documentation + +- **README:** Add Arch Linux installation instructions. + +## [1.1.5] - 2026-06-09 + +### Added + +- **terminal:** Add multiplexed SSH session support so a single connection can power multiple terminals. +- **ai:** Introduce a dedicated AI Assistant panel and related components. +- **ai:** Add command risk levels for execution control. +- **ai:** Add request User-Agent configuration with sensible default handling. +- **cloud-sync:** Add a Gitee snippet cloud sync provider. +- **terminal:** Enhance multi-line paste handling with a dedicated dialog and input state management. +- **terminal:** Implement local backspace handling in terminal input. +- **terminal:** Add new icons to the tab context menu. +- **terminal:** Add support for timestamp milliseconds in the terminal display. +- **quick-commands:** Add a compact view mode and a view mode toggle, plus a confirmation dialog for command deletion. +- **file-explorer:** Implement a favorites feature for directories. +- **key-management:** Add certificate file handling in the key editor. +- **search:** Improve search engine management with dynamic key generation. +- **local-terminal:** Add shell arguments support and file selection for the shell path. +- **pty:** Add a local startup script for shell integration, with output suppression during startup. +- **themes:** Add the Nya High Contrast theme and refresh the color palette. + +### Changed + +- **app:** Update the window title to reflect the active tab name. +- **window:** Implement owner window label handling for child windows and expand window capability patterns. +- **ssh:** Enhance prompt-injection handling and OSC processing. +- **ssh:** Enhance password prompt handling in keyboard-interactive authentication. +- **ai:** Make AI output follow the app language via locale-based prompt selection. +- **api:** Enhance URL handling and normalization utilities. +- **credential-management:** Improve regex validation and prompt handling. + +### Fixed + +- **deps:** Update xterm dependencies to beta versions. +- **macos:** Normalize the packaged macOS PTY environment. +- **terminal:** Initialize disconnect and reconnect states in XTerminal. + +## [1.1.4] - 2026-06-03 + +### Added + +- **ssh:** Implement post-login command support in the SSH form and new session page. +- **ssh:** Add a required-field indicator for the password field in the SSH form. +- **saved-connections:** Enhance search with expanded group management. +- **serial:** Enhance serial session handling with improved error logging and Zmodem detection. +- **panel:** Enhance the send-command panel with hex data handling and refactored state management. +- **recording:** Add a timestamp inclusion option for recordings. +- **terminal:** Enhance the terminal gutter with dynamic cell dimensions and layout adjustments, and improve the overall input experience. + +### Changed + +- **zmodem:** Improve Zmodem event handling and detection logic. +- **terminal:** Unify cursor position handling for command and credential suggestions. +- **terminal:** Improve multi-line paste dialog focus handling. + +### Fixed + +- **header:** Respect the minimize-to-tray setting when closing the window. + +## [1.1.3] - 2026-06-02 + +### Added + +- **terminal:** Implement a multi-line paste dialog and enhance paste handling. +- **terminal:** Enhance input handling with logical line snapshots and selection range tracking. +- **terminal:** Implement credential prompt detection and input handling. +- **panel:** Enhance the send-command panel with shell command functionality. +- **recording:** Implement session recording, including start/stop, transcript saving, and memory limit settings. +- **file-explorer:** Add session-scoped directory history in the path bar. +- **import:** Support importing sessions from NyaTerm JSON format in the import dialog. +- **security:** Enhance master password management with improved validation and UI updates. +- **quick-commands:** Add dialogs for deleting and renaming quick command categories. +- **storage:** Add password hydration for connections within a transaction. +- **docs-site:** Add offline local search. + +### Changed + +- **cloud-sync:** Implement operation timeouts and enhance error handling for storage operations. +- **cloud-sync:** Add WebDAV Digest authentication support. +- **cloud-sync:** Implement an automatic retry mechanism for cloud sync operations. +- **backup:** Update the backup file extension from `.dgfy` to `.nya`. +- **header:** Rename the menu label from `New SSH Connection` to `New Session`. + +### Fixed + +- **settings:** Ensure the settings window closes after saving by managing saving state. +- **app:** Improve `safeRecordingName` normalization to allow a wider range of valid characters. +- **docs-site:** Improve navbar responsiveness and the floating search box. + +## [1.1.2] - 2026-05-30 + +### Added + +- **window-state:** Implement main window state management to persist window size and position. +- **quick-commands:** Add support for importing Xshell quick buttons. + +### Changed + +- **app:** Centralize child window size and position handling. + +### Documentation + +- Add a contributors section and star history chart to the README. + +## [1.1.1] - 2026-05-29 + +### Fixed + +- Remove unused child window preload logic and background color handling. + +## [1.1.0] - 2026-05-29 + +### Added + +- **serial:** Implement a baud rate picker for selecting and validating serial baud rates. +- **file-transfer:** Add download functionality and enhance transfer management with enqueued downloads. +- **file-transfer:** Add a `queued` status and improve transfer UI interactions. +- **file-explorer:** Auto-sync the current working directory based on the active connection. +- **transfer:** Implement concurrency clamping and rename download/upload thread settings to concurrent tasks. +- **errors:** Add new authentication failure messages and enhance validation in the new session page. + +### Changed + +- **file-explorer:** Add a refreshed FileExplorer component and dialogs for file operations, including path bar and toolbar. +- **ui:** Standardize dialog footers with `ActionButton` and `ActionFooter`, and move the Toaster into the main layout. + +### Fixed + +- **modal:** Prevent the modal overlay from remaining after a child window closes. +- **child-windows:** Reduce startup flicker with window preloading. +- **build-release:** Correct the package name for Ubuntu ARM installation. + +### Performance + +- **sftp:** Enhance the SFTP backend with configurable client settings and performance logging. + +## [1.0.9] - 2026-05-27 + +### Added + +- **ssh:** Introduce a `none` authentication mode in the SSH form for enhanced connection options. +- **runtime:** Implement portable mode support and add a Windows portable zip release. +- **quick-commands:** Add an import dialog for quick commands supporting WindTerm and NyaTerm formats. +- **terminal:** Add disconnect session functionality. +- **file-explorer:** Implement inline renaming for file entries. +- **file-transfer:** Enhance progress tracking and add a clear-all action. + +### Changed + +- **file-transfer:** Update transfer row status icons and simplify status handling. +- **dialogs:** Improve responsive width handling and Markdown rendering in the update dialog. + +### Fixed + +- **session-input:** Fix a quick command issue caused by newline conversion. +- **telnet:** Integrate the recording manager for session input/output handling. +- **shortcuts:** Validate and support custom tab switching keybindings. +- **saved-connections:** Update the empty state to check both saved connections and groups. +- **workflows:** Update the Ubuntu version from 24.04 to 22.04 in the release workflow. + +## [1.0.8] - 2026-05-24 + +### Added + +- **quick-commands:** Implement sorting and usage tracking for quick commands. +- **readme:** Add a GitHub downloads badge. + +### Changed + +- **settings:** Update app settings management and introduce UI settings saving. +- **storage:** Restructure the storage module and migrate to typed settings documents. +- **security:** Update master password handling in the security tab. +- **scrollbar:** Hide scrollbar buttons and improve scrollbar appearance. + +### Fixed + +- **errors:** Improve error handling in the new session and quick command pages. + ## [1.0.7] - 2026-05-21 ### Changed diff --git a/CLAUDE.md b/CLAUDE.md index da8fc009..e1bca0d3 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -39,7 +39,7 @@ Example single-test command: - This is a Tauri 2 desktop app: React/TypeScript frontend in `src/`, Rust backend in `src-tauri/src/`, and IPC between them via Tauri commands/events. - The frontend should call Rust through the typed wrapper in `src/lib/invoke.ts`, not raw scattered `invoke()` calls where a shared wrapper already exists. -- Tauri commands are registered centrally in `src-tauri/src/lib.rs` and grouped by concern under `src-tauri/src/cmd/` (`session`, `sftp`, `connection`, `settings`, `watcher`, `translate`, `stats`, `tunnel`, `proxy`, `otp`, `importer`). +- Tauri commands are registered centrally in `src-tauri/src/lib.rs` and grouped by concern under `src-tauri/src/cmd/` (`session`, `sftp`, `connection`, `credential`, `settings`, `watcher`, `translate`, `stats`, `tunnel`, `proxy`, `otp`, `importer`, plus `app`, `backup`, `clipboard`, `cloud_sync`, `log`, and `ai`). ### Window model - `src/main.tsx` decides between two boot paths: @@ -70,8 +70,10 @@ Example single-test command: - `TunnelManager` - `RecordingManager` - `PendingAuthManager` + - `HostKeyVerifyManager` - `QuickCommandsStore` - `CloudSyncManager` + - `AgentApprovalManager` (gates AI agent command execution) - Tauri commands are registered centrally in `src-tauri/src/lib.rs`; newer backend capability areas now include app, backup, clipboard, cloud sync, logging, and AI in addition to sessions/SFTP/settings/importers. - `src-tauri/src/core/session.rs` contains `SessionManager`, which is the central registry for active sessions, command routing, command history, fuzzy history search, and session lifecycle events. - Session implementations live under `src-tauri/src/core/`: @@ -84,12 +86,12 @@ Example single-test command: - `importer.rs` for Xshell / MobaXterm / WindTerm import - `cloud_sync.rs` for sync/backup runtime and conflict events - `portable_snapshot.rs` for defining what sync/backup payloads include - - `ai.rs` for provider calls, streaming responses, structured command cards, and audit/history storage + - `ai/` for provider calls, streaming responses, structured command cards, agent execution/approval, prompt redaction, and audit/history storage - Backend session I/O is event-driven. The Rust side emits session-specific and app-wide events such as `terminal-output-{id}`, `cwd-changed-{id}`, `session-closed-{id}`, `sessions-changed`, `connections-changed`, `command-history-changed`, `transfer-event`, `otp-request`, `cloud-sync-status-changed`, `cloud-sync-history-changed`, and `cloud-sync-conflict`. ### SSH / auth / transfer details - SSH logic is split across `src-tauri/src/core/ssh/`: - - `client.rs` handles russh client setup, keepalive config, proxy-aware connection setup, and TOFU-style `known_hosts` verification + - `client.rs` handles russh client setup, keepalive config, proxy-aware connection setup, and TOFU-style `known_hosts` verification (host-key prompts are coordinated through `HostKeyVerifyManager`) - `auth.rs` handles saved auth loading plus keyboard-interactive / OTP flows through `PendingAuthManager` and the `otp-request` event - `io.rs` streams terminal output and emits CWD updates - `sftp.rs` implements remote file operations and emits transfer progress events consumed by `TransferContext` diff --git a/docs-site/docs/guide/layout-and-workspace.md b/docs-site/docs/guide/layout-and-workspace.md index c116a1c5..3cb17058 100644 --- a/docs-site/docs/guide/layout-and-workspace.md +++ b/docs-site/docs/guide/layout-and-workspace.md @@ -38,6 +38,14 @@ NyaTerm 的核心体验不是“单个终端标签页”,而是一个可组合 - 不同项目 - 不同任务阶段 +## 会话快速切换器 + +当打开的标签和连接很多时,会话快速切换器是最快的导航方式。它是一个类命令面板的可搜索对话框,可通过快捷键或活动栏入口打开。 + +- 按名称搜索已保存连接和本地会话 +- 用键盘或鼠标打开或切换到目标会话 +- 直接在对话框内提供新建 SSH 会话的快捷入口 + ## 分屏能力 在标签页上右键,可以把当前会话拆成: diff --git a/docs-site/docs/guide/ssh-connection.md b/docs-site/docs/guide/ssh-connection.md index 0f5fc82d..55e1839b 100644 --- a/docs-site/docs/guide/ssh-connection.md +++ b/docs-site/docs/guide/ssh-connection.md @@ -33,13 +33,16 @@ SSH 仍然是 NyaTerm 最完整的一类会话。除了基础登录外,SSH 连 ### 认证方式 -NyaTerm 支持两种常见 SSH 认证方式: +NyaTerm 支持三种 SSH 认证方式: - **密码** - **私钥** +- **无认证(none)** 你可以直接选择已经保存的密码或私钥,而不必每次重复填写。 +**无认证(none)** 适用于通过其他方式完成认证的主机(例如部分跳板机或网关流程,或接受空认证的服务器)。仅在目标主机确实不需要任何 SSH 层凭证时才使用。 + #### 密码认证 适合: @@ -89,6 +92,28 @@ SSH 表单的高级区域可以把连接从“能连上”扩展成“适合日 - 分环境隔离的生产网络 - 多层 SSH 登录链路 +### 登录后命令 + +可以为当前 SSH 连接配置一条在登录后自动执行的命令。会话建立、shell 就绪后,NyaTerm 会自动运行它。 + +常见用途: + +- 切换到固定的工作目录(`cd`) +- 激活某个环境(例如 tmux/screen、conda) +- 在连接时执行一条固定的初始化命令 + +该命令会在登录后作为终端输入发送,因此其行为等同于你自己手动输入这条命令。 + +### 多路复用 SSH 会话 + +NyaTerm 可以在同一条 SSH 连接上多路复用多个终端会话。向同一主机打开新的终端时,会复用已有的已认证连接,而不必每次重新认证。 + +带来的好处: + +- 新终端打开更快 +- 更少的认证提示 / OTP 输入 +- 对服务器的负载更低 + ### OTP 绑定 如果目标环境要求二次验证码,可以把一个 OTP 条目绑定到当前 SSH 连接。 diff --git a/docs-site/docs/guide/sync-and-backup.md b/docs-site/docs/guide/sync-and-backup.md index 523742aa..fed20e93 100644 --- a/docs-site/docs/guide/sync-and-backup.md +++ b/docs-site/docs/guide/sync-and-backup.md @@ -11,10 +11,11 @@ NyaTerm 的 **同步与备份** 能力,解决的不是“远程文件传输” - **同步(Sync)**:把当前设备的可移植配置快照推送到云端,或从云端拉回最新快照 - **备份(Backup)**:按手动或定时方式,把当前状态保存成可回溯的加密备份快照 -当前支持两类远程存储提供方: +当前支持三类远程存储提供方: - **WebDAV** - **S3 兼容**存储 +- **Gitee 代码片段(Gitee Snippet)** ## 先决条件:先设置主密码 @@ -86,6 +87,8 @@ NyaTerm 的 **同步与备份** 能力,解决的不是“远程文件传输” - 已经有 NAS / 私有云 / WebDAV 网关 - 想复用现成的文档或对象存储入口 +WebDAV 认证同时支持 **Basic** 和 **Digest** 两种方式,当服务端要求 Digest 时 NyaTerm 会自动改用 Digest,以提升对强制 Digest 的 NAS / 网关的兼容性。 + ### S3 兼容存储 如果 provider 选的是 **S3 兼容**,通常需要填写: @@ -104,6 +107,20 @@ NyaTerm 的 **同步与备份** 能力,解决的不是“远程文件传输” - 你已经在用对象存储保存运维资产 - 想把 NyaTerm 的配置与备份纳入统一存储体系 +### Gitee 代码片段(Snippet) + +如果 provider 选的是 **Gitee 代码片段**,NyaTerm 会把加密后的可移植快照保存为一个 Gitee 代码片段(Gitee 代码片段 / 类 Gist)。对于身处 Gitee 访问较快、又不想自建 WebDAV / S3 的用户,这是一种比较省心的选择。 + +通常需要填写: + +- **Gitee 个人访问令牌(Personal Access Token)**(需要代码片段 / gist 权限) +- **代码片段标识 / 描述**(可选,便于在 Gitee 上识别这条快照) + +适合场景: + +- 没有 NAS、私有云或对象存储,又希望快照存放在国内访问较快的位置 +- 想用一个 Gitee 账号就完成跨设备同步,而不额外维护存储服务 + ### 配置校验 当前实现会先做最基本的 provider 校验: diff --git a/docs-site/docs/guide/terminal.md b/docs-site/docs/guide/terminal.md index 7d9f6cb2..b4f44e18 100644 --- a/docs-site/docs/guide/terminal.md +++ b/docs-site/docs/guide/terminal.md @@ -227,6 +227,11 @@ NyaTerm 支持会话录制,适合: 录制文件默认可保存到系统下载目录,也可以在 **设置 → 传输** 中为录制单独指定保存路径,便于把演示素材、排障日志和普通下载文件分开管理。 +在 **设置 → 传输** 中,还可以进一步配置录制行为: + +- **自动开始录制**:会话一打开就自动开始录制,避免对那些总是需要留档的会话忘记手动开启 +- **包含时间戳**:在保存的录制文稿中写入时间戳,便于审计或把输出与实际时间对应起来 + 如果你准备录制文档素材,通常可以把这些能力组合起来: - 行号 / 时间戳 gutter diff --git a/docs-site/docs/guide/themes.md b/docs-site/docs/guide/themes.md index 49c32c7e..341764dd 100644 --- a/docs-site/docs/guide/themes.md +++ b/docs-site/docs/guide/themes.md @@ -15,6 +15,8 @@ NyaTerm 支持对工作区外观做细粒度调整,包括 UI 主题、终端 如果你只是想快速切换主题,也可以使用顶部菜单中的 **View → Theme**。 +NyaTerm 内置了一个名为 **Nya High Contrast** 的高对比度主题,适合需要无障碍辅助、明亮环境或投屏场景下增强可读性时使用。它和其他 UI 主题一样,可以在 **设置 → 外观** 或顶部菜单 **View → Theme** 中选择。 + ## 背景图 在 **Settings → Appearance** 中,主窗口现在可以使用本地背景图。相关设置建议直接按界面里的真实名称理解: diff --git a/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/layout-and-workspace.md b/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/layout-and-workspace.md index d7ae55fb..f9d4c241 100644 --- a/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/layout-and-workspace.md +++ b/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/layout-and-workspace.md @@ -38,6 +38,14 @@ This makes NyaTerm a good fit for separating: - Different projects - Different task phases +## Session quick switcher + +When you have many tabs and connections open, the session quick switcher is the fastest way to navigate. It is a command-palette-style searchable dialog that you open via its keyboard shortcut or activity-bar entry. + +- Search across saved connections and local sessions by name +- Open or switch to a session with the keyboard or mouse +- Use the built-in shortcut to create a new SSH session right from the dialog + ## Split panes Right-click a tab to split the current session into: diff --git a/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/ssh-connection.md b/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/ssh-connection.md index 6339e4db..f75bfe81 100644 --- a/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/ssh-connection.md +++ b/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/ssh-connection.md @@ -33,13 +33,16 @@ In the **New Session** window, switch to the **SSH** tab and fill in these field ### Authentication methods -NyaTerm supports two common SSH authentication methods: +NyaTerm supports three SSH authentication methods: - **Password** - **Private key** +- **No authentication (none)** You can select saved passwords or saved keys instead of re-entering them every time. +**No authentication (none)** is for hosts that complete authentication by other means (for example some jump-host or gateway flows, or servers that accept an empty auth). Only use it when the target host genuinely requires no SSH-level credential. + #### Password authentication Useful for: @@ -89,6 +92,28 @@ Typical cases include: - Reaching internal production hosts - Multi-hop SSH login chains +### Post-login command + +You can configure a command that NyaTerm runs automatically once the SSH session is established and the shell is ready. + +Common uses: + +- Switching to a fixed working directory (`cd`) +- Activating an environment (for example tmux/screen, conda) +- Running a fixed setup command on connect + +The command is sent as terminal input after login, so it behaves exactly like typing the command yourself. + +### Multiplexed SSH sessions + +NyaTerm can multiplex multiple terminal sessions over a single SSH connection. Opening additional terminals to the same host reuses the existing authenticated connection instead of re-authenticating each time. + +Benefits: + +- New terminals open faster +- Fewer auth prompts / OTP entries +- Lighter load on the server + ### OTP binding If the environment requires a second-factor code, you can bind an OTP entry to the SSH connection. diff --git a/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/sync-and-backup.md b/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/sync-and-backup.md index f891ce65..ad70ccad 100644 --- a/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/sync-and-backup.md +++ b/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/sync-and-backup.md @@ -11,10 +11,11 @@ It helps to think of it as two related but different workflows: - **Sync** — push the current device's portable configuration snapshot to the cloud, or pull the latest snapshot back from the cloud - **Backup** — save the current state as a recoverable encrypted backup snapshot, either manually or on a schedule -NyaTerm currently supports two remote storage provider types: +NyaTerm currently supports three remote storage provider types: - **WebDAV** - **S3-compatible** storage +- **Gitee Snippet** ## Prerequisite: set a master password first @@ -85,6 +86,8 @@ This is a good fit when: - you already have a NAS, private cloud, or WebDAV gateway - you want to reuse existing document or object-storage infrastructure +WebDAV authentication supports both **Basic** and **Digest** auth, and NyaTerm switches to Digest when the server requires it, improving compatibility with NAS / gateways that mandate Digest. + ### S3-compatible storage When the provider is **S3-compatible**, you will typically configure: @@ -103,6 +106,20 @@ This is a good fit when: - you already use object storage for operational assets - you want NyaTerm config and backups to live in the same storage ecosystem +### Gitee Snippet + +When the provider is **Gitee Snippet**, NyaTerm stores the encrypted portable snapshot as a Gitee code snippet (a Gitee snippet, similar to a Gist). This is a convenient option for users in regions where Gitee is fast and who would rather not run their own WebDAV or S3. + +You will typically configure: + +- **Gitee Personal Access Token** (with snippet / gist permission) +- **Snippet Identifier / Description** (optional, to help you recognize the snapshot on Gitee) + +This is a good fit when: + +- you have no NAS, private cloud, or object storage, but want the snapshot stored somewhere with fast regional access +- you want one Gitee account to cover cross-device sync without maintaining a separate storage service + ### Validation rules The current implementation performs basic provider validation before actions are allowed: diff --git a/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/terminal.md b/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/terminal.md index 67f10cc4..b1c3d81d 100644 --- a/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/terminal.md +++ b/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/terminal.md @@ -166,6 +166,11 @@ NyaTerm supports session recording, which is useful for: - Sharing a reproducible path with teammates - Capturing terminal examples with visible timing +In **Settings → Transfer**, you can also tune recording behavior: + +- **Auto-start recording**: begin recording as soon as a session opens, so you never forget to start it for sessions you always want captured +- **Include timestamps**: write timestamps into the saved transcript, which helps with auditing or correlating output with wall-clock time + If you are preparing screenshots or demos, a good combination is: - Line numbers / timestamp gutter diff --git a/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/themes.md b/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/themes.md index 27df41de..17285866 100644 --- a/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/themes.md +++ b/docs-site/i18n/en/docusaurus-plugin-content-docs/current/guide/themes.md @@ -15,6 +15,8 @@ In **Settings → Appearance**, you can configure these separately: If you just want a quick theme switch, you can also use **View → Theme** from the top menu. +NyaTerm ships a built-in high-contrast theme named **Nya High Contrast**, which is well suited for accessibility, bright environments, or screen sharing where stronger contrast helps readability. You can select it like any other UI theme from **Settings → Appearance** or the **View → Theme** top menu. + ## Background image In **Settings → Appearance**, the main window can now use a local wallpaper. The controls are easiest to follow by their exact UI names: diff --git a/docs-site/src/data/changelogData.ts b/docs-site/src/data/changelogData.ts index f9f16c58..a543e096 100644 --- a/docs-site/src/data/changelogData.ts +++ b/docs-site/src/data/changelogData.ts @@ -9,6 +9,286 @@ export type ChangelogRelease = { }; const changelogReleasesEn: ChangelogRelease[] = [ + { + version: '[1.1.6] - 2026-06-12', + sections: [ + { + title: 'Added', + items: [ + '**session:** Add a searchable session quick switcher to jump between saved connections and local sessions from the keyboard or mouse, including a shortcut entry for creating a new SSH session.', + '**recording:** Add an auto-start recording option that begins recording automatically when a session opens.', + '**terminal:** Serialize terminal text so reconnecting sessions restore their previous on-screen output.', + '**terminal:** Allow disconnected panes to be closed.', + '**terminal:** Add a command to delete individual command history entries.', + '**file-explorer:** Enhance file attribute management in the Properties dialog.', + '**clipboard:** Implement asynchronous clipboard reading with a timeout.', + '**action-links:** Support RAR archives in the archive action-link matcher.', + '**ai:** Enhance model management with manual model addition and credential grouping.', + '**transfer:** Implement background transfer concurrency adjustment.', + '**stats:** Enhance `SYSINFO_SCRIPT` for improved system information gathering.', + ], + }, + { + title: 'Changed', + items: [ + '**quick-commands:** Introduce a sorting mode and update view mode defaults.', + '**sftp:** Enhance directory and symlink handling in the SFTP backend.', + '**password-management:** Enhance unlock logic and footer visibility in the password panel.', + ], + }, + { + title: 'Fixed', + items: [ + '**connection:** Improve the password management editing flow.', + '**macos:** Support drag reordering of connections on macOS.', + '**file-explorer:** Reset horizontal scroll position and improve file item interaction.', + '**terminal:** Streamline right-click paste in the terminal context menu.', + '**ssh:** Reorganize imports and adjust preferred algorithms.', + ], + }, + { + title: 'Performance', + items: ['Compress portable snapshots before encryption.'], + }, + { + title: 'Documentation', + items: ['**README:** Add Arch Linux installation instructions.'], + }, + ], + }, + { + version: '[1.1.5] - 2026-06-09', + sections: [ + { + title: 'Added', + items: [ + '**terminal:** Add multiplexed SSH session support so a single connection can power multiple terminals.', + '**ai:** Introduce a dedicated AI Assistant panel and related components.', + '**ai:** Add command risk levels for execution control.', + '**ai:** Add request User-Agent configuration with sensible default handling.', + '**cloud-sync:** Add a Gitee snippet cloud sync provider.', + '**terminal:** Enhance multi-line paste handling with a dedicated dialog and input state management.', + '**terminal:** Implement local backspace handling in terminal input.', + '**terminal:** Add support for timestamp milliseconds in the terminal display.', + '**quick-commands:** Add a compact view mode and a view mode toggle, plus a confirmation dialog for command deletion.', + '**file-explorer:** Implement a favorites feature for directories.', + '**key-management:** Add certificate file handling in the key editor.', + '**search:** Improve search engine management with dynamic key generation.', + '**local-terminal:** Add shell arguments support and file selection for the shell path.', + '**pty:** Add a local startup script for shell integration, with output suppression during startup.', + '**themes:** Add the Nya High Contrast theme and refresh the color palette.', + ], + }, + { + title: 'Changed', + items: [ + '**app:** Update the window title to reflect the active tab name.', + '**window:** Implement owner window label handling for child windows and expand window capability patterns.', + '**ssh:** Enhance prompt-injection handling and OSC processing.', + '**ssh:** Enhance password prompt handling in keyboard-interactive authentication.', + '**ai:** Make AI output follow the app language via locale-based prompt selection.', + '**credential-management:** Improve regex validation and prompt handling.', + ], + }, + { + title: 'Fixed', + items: [ + '**deps:** Update xterm dependencies to beta versions.', + '**macos:** Normalize the packaged macOS PTY environment.', + '**terminal:** Initialize disconnect and reconnect states in XTerminal.', + ], + }, + ], + }, + { + version: '[1.1.4] - 2026-06-03', + sections: [ + { + title: 'Added', + items: [ + '**ssh:** Implement post-login command support in the SSH form and new session page.', + '**ssh:** Add a required-field indicator for the password field in the SSH form.', + '**saved-connections:** Enhance search with expanded group management.', + '**serial:** Enhance serial session handling with improved error logging and Zmodem detection.', + '**panel:** Enhance the send-command panel with hex data handling and refactored state management.', + '**recording:** Add a timestamp inclusion option for recordings.', + '**terminal:** Enhance the terminal gutter with dynamic cell dimensions and layout adjustments, and improve the overall input experience.', + ], + }, + { + title: 'Changed', + items: [ + '**zmodem:** Improve Zmodem event handling and detection logic.', + '**terminal:** Unify cursor position handling for command and credential suggestions.', + '**terminal:** Improve multi-line paste dialog focus handling.', + ], + }, + { + title: 'Fixed', + items: ['**header:** Respect the minimize-to-tray setting when closing the window.'], + }, + ], + }, + { + version: '[1.1.3] - 2026-06-02', + sections: [ + { + title: 'Added', + items: [ + '**terminal:** Implement a multi-line paste dialog and enhance paste handling.', + '**terminal:** Enhance input handling with logical line snapshots and selection range tracking.', + '**terminal:** Implement credential prompt detection and input handling.', + '**panel:** Enhance the send-command panel with shell command functionality.', + '**recording:** Implement session recording, including start/stop, transcript saving, and memory limit settings.', + '**file-explorer:** Add session-scoped directory history in the path bar.', + '**import:** Support importing sessions from NyaTerm JSON format in the import dialog.', + '**security:** Enhance master password management with improved validation and UI updates.', + '**quick-commands:** Add dialogs for deleting and renaming quick command categories.', + '**docs-site:** Add offline local search.', + ], + }, + { + title: 'Changed', + items: [ + '**cloud-sync:** Implement operation timeouts and enhance error handling for storage operations.', + '**cloud-sync:** Add WebDAV Digest authentication support.', + '**cloud-sync:** Implement an automatic retry mechanism for cloud sync operations.', + '**backup:** Update the backup file extension from `.dgfy` to `.nya`.', + '**header:** Rename the menu label from `New SSH Connection` to `New Session`.', + ], + }, + { + title: 'Fixed', + items: [ + '**settings:** Ensure the settings window closes after saving by managing saving state.', + '**app:** Improve `safeRecordingName` normalization to allow a wider range of valid characters.', + '**docs-site:** Improve navbar responsiveness and the floating search box.', + ], + }, + ], + }, + { + version: '[1.1.2] - 2026-05-30', + sections: [ + { + title: 'Added', + items: [ + '**window-state:** Implement main window state management to persist window size and position.', + '**quick-commands:** Add support for importing Xshell quick buttons.', + ], + }, + { + title: 'Changed', + items: ['**app:** Centralize child window size and position handling.'], + }, + { + title: 'Documentation', + items: ['Add a contributors section and star history chart to the README.'], + }, + ], + }, + { + version: '[1.1.1] - 2026-05-29', + sections: [ + { + title: 'Fixed', + items: ['Remove unused child window preload logic and background color handling.'], + }, + ], + }, + { + version: '[1.1.0] - 2026-05-29', + sections: [ + { + title: 'Added', + items: [ + '**serial:** Implement a baud rate picker for selecting and validating serial baud rates.', + '**file-transfer:** Add download functionality and enhance transfer management with enqueued downloads.', + '**file-transfer:** Add a `queued` status and improve transfer UI interactions.', + '**file-explorer:** Auto-sync the current working directory based on the active connection.', + '**transfer:** Implement concurrency clamping and rename download/upload thread settings to concurrent tasks.', + '**errors:** Add new authentication failure messages and enhance validation in the new session page.', + ], + }, + { + title: 'Changed', + items: [ + '**file-explorer:** Add a refreshed FileExplorer component and dialogs for file operations, including path bar and toolbar.', + '**ui:** Standardize dialog footers with `ActionButton` and `ActionFooter`, and move the Toaster into the main layout.', + ], + }, + { + title: 'Fixed', + items: [ + '**modal:** Prevent the modal overlay from remaining after a child window closes.', + '**child-windows:** Reduce startup flicker with window preloading.', + '**build-release:** Correct the package name for Ubuntu ARM installation.', + ], + }, + { + title: 'Performance', + items: ['**sftp:** Enhance the SFTP backend with configurable client settings and performance logging.'], + }, + ], + }, + { + version: '[1.0.9] - 2026-05-27', + sections: [ + { + title: 'Added', + items: [ + '**ssh:** Introduce a `none` authentication mode in the SSH form for enhanced connection options.', + '**runtime:** Implement portable mode support and add a Windows portable zip release.', + '**quick-commands:** Add an import dialog for quick commands supporting WindTerm and NyaTerm formats.', + '**terminal:** Add disconnect session functionality.', + '**file-explorer:** Implement inline renaming for file entries.', + '**file-transfer:** Enhance progress tracking and add a clear-all action.', + ], + }, + { + title: 'Changed', + items: [ + '**file-transfer:** Update transfer row status icons and simplify status handling.', + '**dialogs:** Improve responsive width handling and Markdown rendering in the update dialog.', + ], + }, + { + title: 'Fixed', + items: [ + '**session-input:** Fix a quick command issue caused by newline conversion.', + '**telnet:** Integrate the recording manager for session input/output handling.', + '**shortcuts:** Validate and support custom tab switching keybindings.', + '**saved-connections:** Update the empty state to check both saved connections and groups.', + '**workflows:** Update the Ubuntu version from 24.04 to 22.04 in the release workflow.', + ], + }, + ], + }, + { + version: '[1.0.8] - 2026-05-24', + sections: [ + { + title: 'Added', + items: [ + '**quick-commands:** Implement sorting and usage tracking for quick commands.', + '**readme:** Add a GitHub downloads badge.', + ], + }, + { + title: 'Changed', + items: [ + '**settings:** Update app settings management and introduce UI settings saving.', + '**storage:** Restructure the storage module and migrate to typed settings documents.', + '**security:** Update master password handling in the security tab.', + '**scrollbar:** Hide scrollbar buttons and improve scrollbar appearance.', + ], + }, + { + title: 'Fixed', + items: ['**errors:** Improve error handling in the new session and quick command pages.'], + }, + ], + }, { version: '[1.0.7] - 2026-05-21', sections: [ @@ -1005,6 +1285,286 @@ const changelogReleasesEn: ChangelogRelease[] = [ ]; const changelogReleasesZhCN: ChangelogRelease[] = [ + { + version: '[1.1.6] - 2026-06-12', + sections: [ + { + title: '新增', + items: [ + '**session:** 新增可搜索的会话快速切换器,可通过键盘或鼠标在已保存连接和本地会话之间跳转,并提供新建 SSH 会话的快捷入口。', + '**recording:** 新增自动开始录制选项,会话打开时自动开始录制。', + '**terminal:** 序列化终端文本,使重连的会话能够恢复之前的屏幕输出。', + '**terminal:** 支持关闭已断开连接的窗格。', + '**terminal:** 新增删除单条命令历史记录的功能。', + '**file-explorer:** 增强属性对话框中的文件属性管理。', + '**clipboard:** 实现带超时的异步剪贴板读取。', + '**action-links:** 在压缩包动作链接匹配器中支持 RAR 文件。', + '**ai:** 增强模型管理,支持手动添加模型和凭据分组。', + '**transfer:** 实现后台传输并发数的动态调整。', + '**stats:** 增强 `SYSINFO_SCRIPT`,改进系统信息采集。', + ], + }, + { + title: '变更', + items: [ + '**quick-commands:** 引入排序模式并更新视图模式默认值。', + '**sftp:** 增强 SFTP 后端的目录和符号链接处理。', + '**password-management:** 增强密码面板的解锁逻辑和底栏可见性。', + ], + }, + { + title: '修复', + items: [ + '**connection:** 改进密码管理的编辑流程。', + '**macos:** 支持在 macOS 上拖拽重新排序连接。', + '**file-explorer:** 重置水平滚动位置并改进文件项交互。', + '**terminal:** 优化终端上下文菜单中的右键粘贴功能。', + '**ssh:** 重组导入并调整首选算法。', + ], + }, + { + title: '性能', + items: ['在加密前压缩便携快照。'], + }, + { + title: '文档', + items: ['**README:** 新增 NyaTerm 的 Arch Linux 安装说明。'], + }, + ], + }, + { + version: '[1.1.5] - 2026-06-09', + sections: [ + { + title: '新增', + items: [ + '**terminal:** 新增多路复用 SSH 会话支持,单个连接即可承载多个终端。', + '**ai:** 引入独立的 AI Assistant 面板及相关组件。', + '**ai:** 新增命令风险等级,用于控制命令执行。', + '**ai:** 新增请求 User-Agent 配置及默认值处理。', + '**cloud-sync:** 新增 Gitee 代码片段云同步提供商。', + '**terminal:** 增强多行粘贴处理,加入专用对话框和输入状态管理。', + '**terminal:** 实现终端输入中的本地退格处理。', + '**terminal:** 在终端显示中支持时间戳毫秒。', + '**quick-commands:** 新增紧凑视图模式和视图模式切换,并加入命令删除确认对话框。', + '**file-explorer:** 为目录实现收藏夹功能。', + '**key-management:** 在密钥编辑器中支持证书文件处理。', + '**search:** 改进搜索引擎管理,支持动态生成键值。', + '**local-terminal:** 新增 shell 参数支持和 shell 路径的文件选择。', + '**pty:** 新增用于 shell 集成的本地启动脚本,并在启动期间抑制输出。', + '**themes:** 新增 Nya High Contrast 主题并刷新调色板。', + ], + }, + { + title: '变更', + items: [ + '**app:** 根据当前活动标签页更新窗口标题。', + '**window:** 为子窗口实现 owner window label 处理,并扩展窗口能力匹配模式。', + '**ssh:** 增强提示注入处理和 OSC 处理。', + '**ssh:** 增强键盘交互认证中的密码提示处理。', + '**ai:** 通过基于语言环境的提示词选择,使 AI 输出跟随应用语言。', + '**credential-management:** 改进正则校验和提示处理。', + ], + }, + { + title: '修复', + items: [ + '**deps:** 将 xterm 依赖更新到 beta 版本。', + '**macos:** 规范化打包后的 macOS PTY 环境。', + '**terminal:** 初始化 XTerminal 中的断开和重连状态。', + ], + }, + ], + }, + { + version: '[1.1.4] - 2026-06-03', + sections: [ + { + title: '新增', + items: [ + '**ssh:** 在 SSH 表单和新建会话页中实现登录后命令支持。', + '**ssh:** 为 SSH 表单中的密码字段新增必填标识。', + '**saved-connections:** 增强搜索功能,扩展分组管理能力。', + '**serial:** 增强串口会话处理,改进错误日志并支持 Zmodem 检测。', + '**panel:** 增强发送命令面板,加入十六进制数据处理并重构状态管理。', + '**recording:** 为录制新增包含时间戳的选项。', + '**terminal:** 增强终端行号槽,支持动态单元格尺寸和布局调整,并改进整体输入体验。', + ], + }, + { + title: '变更', + items: [ + '**zmodem:** 改进 Zmodem 事件处理和检测逻辑。', + '**terminal:** 统一命令建议和凭据建议的光标位置处理。', + '**terminal:** 改进多行粘贴对话框的焦点处理。', + ], + }, + { + title: '修复', + items: ['**header:** 关闭窗口时遵循最小化到托盘的设置。'], + }, + ], + }, + { + version: '[1.1.3] - 2026-06-02', + sections: [ + { + title: '新增', + items: [ + '**terminal:** 实现多行粘贴对话框并增强粘贴处理。', + '**terminal:** 增强输入处理,加入逻辑行快照和选区范围跟踪。', + '**terminal:** 实现凭据提示检测和输入处理。', + '**panel:** 增强发送命令面板的 shell 命令功能。', + '**recording:** 实现会话录制,包括开始/停止、保存转录文本和内存限制设置。', + '**file-explorer:** 在路径栏中新增按会话维度的目录历史。', + '**import:** 在导入对话框中支持从 NyaTerm JSON 格式导入会话。', + '**security:** 增强主密码管理,改进校验和界面。', + '**quick-commands:** 新增用于删除和重命名快捷命令分类的对话框。', + '**docs-site:** 新增离线本地搜索。', + ], + }, + { + title: '变更', + items: [ + '**cloud-sync:** 实现云同步操作超时,并增强存储操作的错误处理。', + '**cloud-sync:** 新增 WebDAV Digest 认证支持。', + '**cloud-sync:** 为云同步操作实现自动重试机制。', + '**backup:** 将备份文件扩展名从 `.dgfy` 更新为 `.nya`。', + '**header:** 将菜单标签从 `New SSH Connection` 重命名为 `New Session`。', + ], + }, + { + title: '修复', + items: [ + '**settings:** 通过管理保存状态,确保保存后正确关闭设置窗口。', + '**app:** 改进 `safeRecordingName` 的规范化逻辑,允许更广泛的合法字符。', + '**docs-site:** 改进导航栏响应式表现和浮动搜索框。', + ], + }, + ], + }, + { + version: '[1.1.2] - 2026-05-30', + sections: [ + { + title: '新增', + items: [ + '**window-state:** 实现主窗口状态管理,持久化窗口尺寸和位置。', + '**quick-commands:** 支持导入 Xshell 快捷按钮。', + ], + }, + { + title: '变更', + items: ['**app:** 集中处理子窗口的尺寸和位置。'], + }, + { + title: '文档', + items: ['在 README 中新增贡献者章节和 star 历史图表。'], + }, + ], + }, + { + version: '[1.1.1] - 2026-05-29', + sections: [ + { + title: '修复', + items: ['移除未使用的子窗口预加载逻辑和背景色处理。'], + }, + ], + }, + { + version: '[1.1.0] - 2026-05-29', + sections: [ + { + title: '新增', + items: [ + '**serial:** 实现波特率选择器,用于选择和校验串口波特率。', + '**file-transfer:** 新增下载功能,并通过入队下载增强传输管理。', + '**file-transfer:** 新增 `queued` 状态并改进传输界面交互。', + '**file-explorer:** 根据当前活动连接自动同步当前工作目录。', + '**transfer:** 实现并发数限制,并将下载/上传线程设置重命名为并发任务数。', + '**errors:** 在新建会话页中新增认证失败提示并增强校验。', + ], + }, + { + title: '变更', + items: [ + '**file-explorer:** 新增刷新后的 FileExplorer 组件及文件操作对话框,包括路径栏和工具栏。', + '**ui:** 使用 `ActionButton` 和 `ActionFooter` 统一对话框底栏,并将 Toaster 移入主布局。', + ], + }, + { + title: '修复', + items: [ + '**modal:** 防止子窗口关闭后模态遮罩层残留。', + '**child-windows:** 通过窗口预加载减少启动闪烁。', + '**build-release:** 修正 Ubuntu ARM 安装的包名。', + ], + }, + { + title: '性能', + items: ['**sftp:** 增强 SFTP 后端,支持可配置的客户端设置和性能日志。'], + }, + ], + }, + { + version: '[1.0.9] - 2026-05-27', + sections: [ + { + title: '新增', + items: [ + '**ssh:** 在 SSH 表单中引入 `none` 认证模式,丰富连接选项。', + '**runtime:** 实现便携模式支持,并新增 Windows 便携版 zip 发布。', + '**quick-commands:** 新增快捷命令导入对话框,支持 WindTerm 和 NyaTerm 格式。', + '**terminal:** 新增断开会话功能。', + '**file-explorer:** 为文件项实现内联重命名。', + '**file-transfer:** 增强进度跟踪并新增清空全部操作。', + ], + }, + { + title: '变更', + items: [ + '**file-transfer:** 更新传输行状态图标并简化状态处理。', + '**dialogs:** 改进对话框的响应式宽度处理和更新对话框的 Markdown 渲染。', + ], + }, + { + title: '修复', + items: [ + '**session-input:** 修复由换行转换导致的快捷命令问题。', + '**telnet:** 集成录制管理器以处理会话输入/输出。', + '**shortcuts:** 校验并支持自定义标签切换快捷键。', + '**saved-connections:** 更新空状态判断,同时检查已保存连接和分组。', + '**workflows:** 将发布工作流中的 Ubuntu 版本从 24.04 更新为 22.04。', + ], + }, + ], + }, + { + version: '[1.0.8] - 2026-05-24', + sections: [ + { + title: '新增', + items: [ + '**quick-commands:** 为快捷命令实现排序和使用次数跟踪。', + '**readme:** 新增 GitHub 下载量徽章。', + ], + }, + { + title: '变更', + items: [ + '**settings:** 更新应用设置管理并引入 UI 设置保存。', + '**storage:** 重构存储模块并迁移到类型化设置文档。', + '**security:** 更新安全标签页中的主密码处理。', + '**scrollbar:** 隐藏滚动条按钮并改进滚动条外观。', + ], + }, + { + title: '修复', + items: ['**errors:** 改进新建会话页和快捷命令页的错误处理。'], + }, + ], + }, { version: '[1.0.7] - 2026-05-21', sections: [