From f4314a8d68b653e5cac1930eae3467c4af786c36 Mon Sep 17 00:00:00 2001 From: kuddev Date: Tue, 1 Sep 2026 22:21:07 +0800 Subject: [PATCH] docs: expand 1.5.0 release notes --- CHANGELOG.md | 118 +++++++++++++++++++++++++++++++---- docs/release-notes/v1.5.0.md | 118 +++++++++++++++++++++++++++++++---- 2 files changed, 212 insertions(+), 24 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c504aa6..afb4689 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,36 +19,130 @@ No unreleased changes yet. ### English #### Added -- Added an SSH remote-file workspace with navigation, uploads, downloads, remote file operations, conflict handling, progress, and cancellation. -- Added saved commands, repository-aware `.gitignore` actions, Git history with smooth semantic branch tracks, and a three-column conflict resolver that writes and stages the result. +- Added separate username and host fields for SSH connections. +- Added recent-connection and OpenSSH configuration suggestions for SSH usernames. +- Added a Remote Files workspace that opens after SSH authentication. +- Remote Files can follow the interactive remote shell's working directory. +- Remote Files provides parent navigation, refresh, and file, directory, and symlink details. +- Added multi-file SFTP uploads. +- Added recursive directory uploads. +- Added recursive file and directory downloads to a chosen local destination. +- Added remote directory creation, rename, and recursive delete. +- Added copy and paste between remote directories and SSH destinations. +- Added overwrite, skip, and keep-both choices for transfer conflicts. +- Added type-mismatch protection and symlink warnings for transfers. +- Added an option to skip unchanged remote files. +- Added byte-level SFTP progress with preparation and error states. +- Added transfer cancellation while keeping remote navigation available. +- Added a compact saved-command manager for searching, running, editing, and removing reusable commands. +- Added a repository-aware `Add to .gitignore` action that finds the correct repository root and writes the selected path. +- Added a Git history view with smooth semantic tracks for commit topology. +- Added distinct branch, tag, merge, and conflict icons with matching meanings. +- Local and remote refs are now classified correctly in Git history. +- Added a three-column conflict-resolution tab for comparing ours, the result, and theirs. +- Saving a resolved conflict writes the file and stages it in Git. - Added indexed filename search to the Files drawer with case, whole-word, and regex controls. Addresses [#88](https://github.com/Kuddev/nebula/issues/88) for the search-box portion; the requested `Ctrl+F` shortcut remains open. - Added a persistent option to skip risky multi-line paste confirmation. Contributed by [@Sakyvo](https://github.com/Sakyvo) in [#76](https://github.com/Kuddev/nebula/pull/76). - Added an option to hide tab close buttons in both tab layouts while keeping middle-click close. Contributed by [@Sakyvo](https://github.com/Sakyvo) in [#77](https://github.com/Kuddev/nebula/pull/77). #### Fixed -- Fixed GPUI text inputs sending `Ctrl+V` to the terminal behind them, and stopped tab switches from reloading or prematurely opening SFTP views. -- Fixed duplicate SSH password prompts and stopped reusing failed pooled transports; the affected channel retries once on a fresh connection without terminating unrelated panes. Addresses [#50](https://github.com/Kuddev/nebula/issues/50) for post-failure reconnect only; the intermittent disconnect and rendering reports remain open. -- Fixed WSL Agent activity tracking for direct, wrapped, and broadcast commands, and cleared stale activity when control returns to the guest shell. +- Fixed GPUI text inputs sending `Ctrl+V` to the terminal behind them. +- Fixed the saved-command manager expanding to an oversized empty area when it contains only a few rows. +- Fixed switching between SSH tabs reloading Remote Files; each pane now retains its confirmed directory contents, selection, and scroll position. +- Fixed Remote Files starting SFTP requests before SSH authentication completes. +- Stale directory results are discarded after the user changes pane or path. +- Fixed duplicate SSH password prompts. +- Failed pooled SSH transports are no longer reused; the affected channel retries once on a fresh connection. Addresses [#50](https://github.com/Kuddev/nebula/issues/50) for post-failure reconnect only; the intermittent disconnect and rendering reports remain open. +- A failed SSH channel no longer terminates unrelated panes. +- Fixed TortoiseSVN dialogs failing to open with `ERROR_INVALID_HANDLE` (`os error 6`) when Nebula has no inheritable console handles. +- Direct WSL Agent commands are now recognized from the complete committed command. +- WSL Agent launches through `npx`, `node`, and `uvx` are recognized under the Agent name. +- Broadcast Enter now reaches command tracking in every receiving WSL pane. +- WSL Agent and runtime activity is cleared when the command completes. +- Stale WSL Agent state is cleared when the original guest-shell prompt returns. #### Improved -- Made SFTP transfers transactional and faster with bounded concurrency, pipelined writes, segmented reads, atomic downloads, and cancellation-safe cleanup. +- Improved SFTP throughput with bounded file concurrency and bounded memory use. +- Uploads now pipeline remote writes. +- Large downloads now use parallel segmented reads. +- SFTP publication now uses sibling staging files and atomic replacement. +- Interrupted replacements retain a recoverable backup. +- Transfers preserve timestamps and permissions where supported. +- Cancellation safely cleans up temporary transfer state. +- Improved remote-directory following across modern and legacy SSH servers. +- Foreground shells entered through `su` or `sudo` can report their remote directory. +- Ambiguous remote sessions fall back safely instead of guessing a path. +- WSL shell integration now reports command completion and exit status. +- WSL shell integration now reports cwd and the next prompt boundary. +- WSL integration keeps the guest's configured login shell. +- Existing `WSLENV` entries are preserved instead of overwritten. +- Added Linux GPUI platform wiring for both Wayland and X11 as groundwork for the native Linux port. +- Isolated the GPUI product shell from legacy window, input, rendering, and event adapters so Linux can use the same product architecture. +- Made GPUI the default product shell and kept the legacy shell behind an explicit feature, so ordinary release builds follow the same product path used by the packaged application. ### 简体中文 #### 新增 -- 新增 SSH 远程文件工作区,支持导航、上传下载、远端文件操作、冲突处理、进度与取消。 -- 新增保存命令、仓库感知的 `.gitignore` 操作、带丝滑语义轨道的 Git 历史,以及会写回并暂存结果的三栏冲突解决器。 +- SSH 连接新增分离的用户名与主机字段。 +- SSH 用户名新增最近连接与 OpenSSH 配置建议。 +- 新增 SSH 认证完成后打开的 Remote Files 远程文件工作区。 +- Remote Files 可跟随交互式远端 shell 的工作目录。 +- Remote Files 提供上一级、刷新以及文件、目录和符号链接详情。 +- SFTP 新增多文件上传。 +- SFTP 新增递归目录上传。 +- 新增把远端文件和目录递归下载到指定本地位置。 +- 新增远端目录创建、重命名和递归删除。 +- 新增跨远端目录和 SSH 目标的复制粘贴。 +- 传输冲突新增覆盖、跳过和保留两者三种选择。 +- 传输新增类型不匹配保护和符号链接警告。 +- 新增跳过未变化远端文件的选项。 +- 新增按字节显示的 SFTP 进度以及准备和错误状态。 +- 新增传输取消;取消期间仍可继续浏览远端目录。 +- 新增紧凑的保存命令管理器,支持搜索、运行、编辑和删除可复用命令。 +- 新增仓库感知的“加入 `.gitignore`”操作,会定位正确的仓库根并写入所选路径。 +- 新增 Git 历史视图,使用丝滑的语义轨道展示提交拓扑。 +- 分支、标签、合并和冲突使用含义匹配的独立图标。 +- Git 历史现在会正确分类本地与远端引用。 +- 新增三栏冲突解决 Tab,可并排比较 ours、结果与 theirs。 +- 保存冲突结果后会写回文件并在 Git 中暂存。 - 文件抽屉新增带索引的文件名搜索,以及区分大小写、全词和正则选项。此项对应 [#88](https://github.com/Kuddev/nebula/issues/88) 的搜索框部分;需求中的 `Ctrl+F` 快捷键仍未完成。 - 新增永久跳过高风险多行粘贴确认的选项。由 [@Sakyvo](https://github.com/Sakyvo) 在 [#76](https://github.com/Kuddev/nebula/pull/76) 中贡献。 - 新增在两种标签布局中隐藏关闭按钮的选项,同时保留中键关闭。由 [@Sakyvo](https://github.com/Sakyvo) 在 [#77](https://github.com/Kuddev/nebula/pull/77) 中贡献。 #### 修复 -- 修复 GPUI 文本输入框把 `Ctrl+V` 发送到背后终端的问题,并阻止切换标签时重新加载或过早打开 SFTP 视图。 -- 修复 SSH 重复密码提示,并停止复用已经失效的连接;受影响的 channel 会在全新连接上重试一次,同时不终止其他 pane。此项对应 [#50](https://github.com/Kuddev/nebula/issues/50) 的失败后重连部分;间歇断连和渲染报告仍保持开放。 -- 修复 WSL Agent 对直接命令、包装器命令和广播命令的活动跟踪,并在控制权回到来宾 shell 后清除过期状态。 +- 修复 GPUI 文本输入框把 `Ctrl+V` 发送到背后终端的问题。 +- 修复保存命令管理器只有少量结果时仍展开出大块空白区域的问题。 +- 修复切换 SSH 标签时重新加载 Remote Files;每个 pane 现在会保留已经确认的目录内容、选中项和滚动位置。 +- 修复 SSH 认证完成前 Remote Files 就发起 SFTP 请求的问题。 +- 用户切换 pane 或路径后返回的过期目录结果会被丢弃。 +- 修复 SSH 重复密码提示。 +- 不再复用已经失效的 SSH 连接;受影响的 channel 会在全新连接上重试一次。此项对应 [#50](https://github.com/Kuddev/nebula/issues/50) 的失败后重连部分;间歇断连和渲染报告仍保持开放。 +- 单个 SSH channel 失败不再终止无关 pane。 +- 修复 Nebula 没有可继承控制台句柄时,TortoiseSVN 对话框因 `ERROR_INVALID_HANDLE`(`os error 6`)无法打开。 +- 现在会从完整的已提交命令识别直接启动的 WSL Agent。 +- 通过 `npx`、`node` 和 `uvx` 启动的 WSL Agent 会显示正确的 Agent 名称。 +- 广播 Enter 现在会进入每个接收方 WSL pane 的命令跟踪。 +- 命令完成后会清除 WSL Agent 与 Runtime 活动态。 +- 原始 guest shell 提示符恢复后会清除过期的 WSL Agent 状态。 #### 改进 -- SFTP 传输改为事务式流程,并通过有界并发、流水线写入、分段读取、原子下载和取消安全清理提升速度与可靠性。 +- SFTP 通过有界文件并发提升吞吐,同时限制内存占用。 +- 上传现在使用流水线式远端写入。 +- 大文件下载现在使用并行分段读取。 +- SFTP 发布改用同目录暂存文件和原子替换。 +- 替换中断时会保留可恢复备份。 +- 远端支持时会保留时间戳与权限。 +- 取消操作会安全清理临时传输状态。 +- 改进现代与旧版 SSH 服务上的远端目录跟随。 +- 可定位经 `su` 或 `sudo` 进入的前台 shell 工作目录。 +- 远端会话存在歧义时会安全回退,不猜测路径。 +- WSL shell 集成现在会上报命令完成和退出状态。 +- WSL shell 集成现在会上报 cwd 和下一提示符边界。 +- WSL 集成会保留 guest 已配置的登录 shell。 +- 现有 `WSLENV` 项会被保留,不再覆盖。 +- 新增 Wayland 与 X11 的 Linux GPUI 平台接线,作为原生 Linux 移植地基。 +- GPUI 产品壳已与旧版窗口、输入、渲染和事件适配器隔离,让 Linux 可沿用同一套产品架构。 +- 将 GPUI 设为默认产品壳,旧壳保留在显式 feature 后,普通 Release 构建与打包应用使用同一条产品路径。 ## 1.4.1 - 2026-08-30 diff --git a/docs/release-notes/v1.5.0.md b/docs/release-notes/v1.5.0.md index 856e89d..6f77837 100644 --- a/docs/release-notes/v1.5.0.md +++ b/docs/release-notes/v1.5.0.md @@ -4,41 +4,135 @@ ### Added -- Added an SSH remote-file workspace with navigation, uploads, downloads, remote file operations, conflict handling, progress, and cancellation. -- Added saved commands, repository-aware `.gitignore` actions, Git history with smooth semantic branch tracks, and a three-column conflict resolver that writes and stages the result. +- Added separate username and host fields for SSH connections. +- Added recent-connection and OpenSSH configuration suggestions for SSH usernames. +- Added a Remote Files workspace that opens after SSH authentication. +- Remote Files can follow the interactive remote shell's working directory. +- Remote Files provides parent navigation, refresh, and file, directory, and symlink details. +- Added multi-file SFTP uploads. +- Added recursive directory uploads. +- Added recursive file and directory downloads to a chosen local destination. +- Added remote directory creation, rename, and recursive delete. +- Added copy and paste between remote directories and SSH destinations. +- Added overwrite, skip, and keep-both choices for transfer conflicts. +- Added type-mismatch protection and symlink warnings for transfers. +- Added an option to skip unchanged remote files. +- Added byte-level SFTP progress with preparation and error states. +- Added transfer cancellation while keeping remote navigation available. +- Added a compact saved-command manager for searching, running, editing, and removing reusable commands. +- Added a repository-aware `Add to .gitignore` action that finds the correct repository root and writes the selected path. +- Added a Git history view with smooth semantic tracks for commit topology. +- Added distinct branch, tag, merge, and conflict icons with matching meanings. +- Local and remote refs are now classified correctly in Git history. +- Added a three-column conflict-resolution tab for comparing ours, the result, and theirs. +- Saving a resolved conflict writes the file and stages it in Git. - Added indexed filename search to the Files drawer with case, whole-word, and regex controls. Addresses [#88](https://github.com/Kuddev/nebula/issues/88) for the search-box portion; the requested `Ctrl+F` shortcut remains open. - Added a persistent option to skip risky multi-line paste confirmation. Contributed by [@Sakyvo](https://github.com/Sakyvo) in [#76](https://github.com/Kuddev/nebula/pull/76). - Added an option to hide tab close buttons in both tab layouts while keeping middle-click close. Contributed by [@Sakyvo](https://github.com/Sakyvo) in [#77](https://github.com/Kuddev/nebula/pull/77). ### Fixed -- Fixed GPUI text inputs sending `Ctrl+V` to the terminal behind them, and stopped tab switches from reloading or prematurely opening SFTP views. -- Fixed duplicate SSH password prompts and stopped reusing failed pooled transports; the affected channel retries once on a fresh connection without terminating unrelated panes. Addresses [#50](https://github.com/Kuddev/nebula/issues/50) for post-failure reconnect only; the intermittent disconnect and rendering reports remain open. -- Fixed WSL Agent activity tracking for direct, wrapped, and broadcast commands, and cleared stale activity when control returns to the guest shell. +- Fixed GPUI text inputs sending `Ctrl+V` to the terminal behind them. +- Fixed the saved-command manager expanding to an oversized empty area when it contains only a few rows. +- Fixed switching between SSH tabs reloading Remote Files; each pane now retains its confirmed directory contents, selection, and scroll position. +- Fixed Remote Files starting SFTP requests before SSH authentication completes. +- Stale directory results are discarded after the user changes pane or path. +- Fixed duplicate SSH password prompts. +- Failed pooled SSH transports are no longer reused; the affected channel retries once on a fresh connection. Addresses [#50](https://github.com/Kuddev/nebula/issues/50) for post-failure reconnect only; the intermittent disconnect and rendering reports remain open. +- A failed SSH channel no longer terminates unrelated panes. +- Fixed TortoiseSVN dialogs failing to open with `ERROR_INVALID_HANDLE` (`os error 6`) when Nebula has no inheritable console handles. +- Direct WSL Agent commands are now recognized from the complete committed command. +- WSL Agent launches through `npx`, `node`, and `uvx` are recognized under the Agent name. +- Broadcast Enter now reaches command tracking in every receiving WSL pane. +- WSL Agent and runtime activity is cleared when the command completes. +- Stale WSL Agent state is cleared when the original guest-shell prompt returns. ### Improved -- Made SFTP transfers transactional and faster with bounded concurrency, pipelined writes, segmented reads, atomic downloads, and cancellation-safe cleanup. +- Improved SFTP throughput with bounded file concurrency and bounded memory use. +- Uploads now pipeline remote writes. +- Large downloads now use parallel segmented reads. +- SFTP publication now uses sibling staging files and atomic replacement. +- Interrupted replacements retain a recoverable backup. +- Transfers preserve timestamps and permissions where supported. +- Cancellation safely cleans up temporary transfer state. +- Improved remote-directory following across modern and legacy SSH servers. +- Foreground shells entered through `su` or `sudo` can report their remote directory. +- Ambiguous remote sessions fall back safely instead of guessing a path. +- WSL shell integration now reports command completion and exit status. +- WSL shell integration now reports cwd and the next prompt boundary. +- WSL integration keeps the guest's configured login shell. +- Existing `WSLENV` entries are preserved instead of overwritten. +- Added Linux GPUI platform wiring for both Wayland and X11 as groundwork for the native Linux port. +- Isolated the GPUI product shell from legacy window, input, rendering, and event adapters so Linux can use the same product architecture. +- Made GPUI the default product shell and kept the legacy shell behind an explicit feature, so ordinary release builds follow the same product path used by the packaged application. ## 中文 ### 新增 -- 新增 SSH 远程文件工作区,支持导航、上传下载、远端文件操作、冲突处理、进度与取消。 -- 新增保存命令、仓库感知的 `.gitignore` 操作、带丝滑语义轨道的 Git 历史,以及会写回并暂存结果的三栏冲突解决器。 +- SSH 连接新增分离的用户名与主机字段。 +- SSH 用户名新增最近连接与 OpenSSH 配置建议。 +- 新增 SSH 认证完成后打开的 Remote Files 远程文件工作区。 +- Remote Files 可跟随交互式远端 shell 的工作目录。 +- Remote Files 提供上一级、刷新以及文件、目录和符号链接详情。 +- SFTP 新增多文件上传。 +- SFTP 新增递归目录上传。 +- 新增把远端文件和目录递归下载到指定本地位置。 +- 新增远端目录创建、重命名和递归删除。 +- 新增跨远端目录和 SSH 目标的复制粘贴。 +- 传输冲突新增覆盖、跳过和保留两者三种选择。 +- 传输新增类型不匹配保护和符号链接警告。 +- 新增跳过未变化远端文件的选项。 +- 新增按字节显示的 SFTP 进度以及准备和错误状态。 +- 新增传输取消;取消期间仍可继续浏览远端目录。 +- 新增紧凑的保存命令管理器,支持搜索、运行、编辑和删除可复用命令。 +- 新增仓库感知的“加入 `.gitignore`”操作,会定位正确的仓库根并写入所选路径。 +- 新增 Git 历史视图,使用丝滑的语义轨道展示提交拓扑。 +- 分支、标签、合并和冲突使用含义匹配的独立图标。 +- Git 历史现在会正确分类本地与远端引用。 +- 新增三栏冲突解决 Tab,可并排比较 ours、结果与 theirs。 +- 保存冲突结果后会写回文件并在 Git 中暂存。 - 文件抽屉新增带索引的文件名搜索,以及区分大小写、全词和正则选项。此项对应 [#88](https://github.com/Kuddev/nebula/issues/88) 的搜索框部分;需求中的 `Ctrl+F` 快捷键仍未完成。 - 新增永久跳过高风险多行粘贴确认的选项。由 [@Sakyvo](https://github.com/Sakyvo) 在 [#76](https://github.com/Kuddev/nebula/pull/76) 中贡献。 - 新增在两种标签布局中隐藏关闭按钮的选项,同时保留中键关闭。由 [@Sakyvo](https://github.com/Sakyvo) 在 [#77](https://github.com/Kuddev/nebula/pull/77) 中贡献。 ### 修复 -- 修复 GPUI 文本输入框把 `Ctrl+V` 发送到背后终端的问题,并阻止切换标签时重新加载或过早打开 SFTP 视图。 -- 修复 SSH 重复密码提示,并停止复用已经失效的连接;受影响的 channel 会在全新连接上重试一次,同时不终止其他 pane。此项对应 [#50](https://github.com/Kuddev/nebula/issues/50) 的失败后重连部分;间歇断连和渲染报告仍保持开放。 -- 修复 WSL Agent 对直接命令、包装器命令和广播命令的活动跟踪,并在控制权回到来宾 shell 后清除过期状态。 +- 修复 GPUI 文本输入框把 `Ctrl+V` 发送到背后终端的问题。 +- 修复保存命令管理器只有少量结果时仍展开出大块空白区域的问题。 +- 修复切换 SSH 标签时重新加载 Remote Files;每个 pane 现在会保留已经确认的目录内容、选中项和滚动位置。 +- 修复 SSH 认证完成前 Remote Files 就发起 SFTP 请求的问题。 +- 用户切换 pane 或路径后返回的过期目录结果会被丢弃。 +- 修复 SSH 重复密码提示。 +- 不再复用已经失效的 SSH 连接;受影响的 channel 会在全新连接上重试一次。此项对应 [#50](https://github.com/Kuddev/nebula/issues/50) 的失败后重连部分;间歇断连和渲染报告仍保持开放。 +- 单个 SSH channel 失败不再终止无关 pane。 +- 修复 Nebula 没有可继承控制台句柄时,TortoiseSVN 对话框因 `ERROR_INVALID_HANDLE`(`os error 6`)无法打开。 +- 现在会从完整的已提交命令识别直接启动的 WSL Agent。 +- 通过 `npx`、`node` 和 `uvx` 启动的 WSL Agent 会显示正确的 Agent 名称。 +- 广播 Enter 现在会进入每个接收方 WSL pane 的命令跟踪。 +- 命令完成后会清除 WSL Agent 与 Runtime 活动态。 +- 原始 guest shell 提示符恢复后会清除过期的 WSL Agent 状态。 ### 改进 -- SFTP 传输改为事务式流程,并通过有界并发、流水线写入、分段读取、原子下载和取消安全清理提升速度与可靠性。 +- SFTP 通过有界文件并发提升吞吐,同时限制内存占用。 +- 上传现在使用流水线式远端写入。 +- 大文件下载现在使用并行分段读取。 +- SFTP 发布改用同目录暂存文件和原子替换。 +- 替换中断时会保留可恢复备份。 +- 远端支持时会保留时间戳与权限。 +- 取消操作会安全清理临时传输状态。 +- 改进现代与旧版 SSH 服务上的远端目录跟随。 +- 可定位经 `su` 或 `sudo` 进入的前台 shell 工作目录。 +- 远端会话存在歧义时会安全回退,不猜测路径。 +- WSL shell 集成现在会上报命令完成和退出状态。 +- WSL shell 集成现在会上报 cwd 和下一提示符边界。 +- WSL 集成会保留 guest 已配置的登录 shell。 +- 现有 `WSLENV` 项会被保留,不再覆盖。 +- 新增 Wayland 与 X11 的 Linux GPUI 平台接线,作为原生 Linux 移植地基。 +- GPUI 产品壳已与旧版窗口、输入、渲染和事件适配器隔离,让 Linux 可沿用同一套产品架构。 +- 将 GPUI 设为默认产品壳,旧壳保留在显式 feature 后,普通 Release 构建与打包应用使用同一条产品路径。 ## Contributors