diff --git a/CHANGELOG.md b/CHANGELOG.md index bf22573..c504aa6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,44 +19,36 @@ No unreleased changes yet. ### English #### Added -- Added an SSH remote-file workspace with separate username and host fields, recent and OpenSSH-config usernames, navigation, upload/download, remote copy/paste, transfer conflicts, progress, and cancellation. -- Added a compact saved-command manager and a repository-aware `Add to .gitignore` action. -- Added a Git history view with smooth branch tracks, correctly classified refs, and a three-column conflict-resolution tab that writes and stages the result. +- 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 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 kept the saved-command manager compact when it contains only a few rows. -- Fixed tab switches reloading SFTP and starting remote browsing before authentication completed; directory contents, selection, scroll position, and confirmed locations now remain stable. +- 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 TortoiseSVN dialogs failing to open with `ERROR_INVALID_HANDLE` (`os error 6`) when Nebula has no inheritable console handles. - Fixed WSL Agent activity tracking for direct, wrapped, and broadcast commands, and cleared stale activity when control returns to the guest shell. #### Improved -- Made SFTP publication transactional and improved throughput with bounded concurrency, pipelined writes, segmented reads, atomic downloads, recoverable replacement, and cancellation-safe cleanup. -- Made GPUI the default product shell and kept the legacy shell behind an explicit feature, reducing ordinary release builds to the product path. +- Made SFTP transfers transactional and faster with bounded concurrency, pipelined writes, segmented reads, atomic downloads, and cancellation-safe cleanup. ### 简体中文 #### 新增 -- 新增 SSH 远程文件工作区:分离用户名与主机字段,提供最近使用和 OpenSSH config 用户名,并支持导航、上传下载、远端复制粘贴、冲突处理、进度与取消。 -- 新增紧凑的保存命令管理器,以及能够识别仓库根的“加入 `.gitignore`”操作。 -- 新增带丝滑分支轨道和正确引用语义的 Git 历史视图,并提供会写回结果并暂存文件的三栏冲突解决 Tab。 +- 新增 SSH 远程文件工作区,支持导航、上传下载、远端文件操作、冲突处理、进度与取消。 +- 新增保存命令、仓库感知的 `.gitignore` 操作、带丝滑语义轨道的 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,以及认证完成前启动远程浏览的问题;目录内容、选中项、滚动位置和已确认位置现在会稳定保留。 +- 修复 GPUI 文本输入框把 `Ctrl+V` 发送到背后终端的问题,并阻止切换标签时重新加载或过早打开 SFTP 视图。 - 修复 SSH 重复密码提示,并停止复用已经失效的连接;受影响的 channel 会在全新连接上重试一次,同时不终止其他 pane。此项对应 [#50](https://github.com/Kuddev/nebula/issues/50) 的失败后重连部分;间歇断连和渲染报告仍保持开放。 -- 修复 Nebula 没有可继承控制台句柄时,TortoiseSVN 对话框因 `ERROR_INVALID_HANDLE`(`os error 6`)无法打开。 - 修复 WSL Agent 对直接命令、包装器命令和广播命令的活动跟踪,并在控制权回到来宾 shell 后清除过期状态。 #### 改进 -- SFTP 发布改为事务式流程,并通过有界并发、流水线写入、分段读取、原子下载、可恢复替换和取消安全清理提升吞吐与可靠性。 -- 将 GPUI 设为默认产品壳,旧壳保留在显式 feature 后,普通 Release 构建只包含产品路径。 +- SFTP 传输改为事务式流程,并通过有界并发、流水线写入、分段读取、原子下载和取消安全清理提升速度与可靠性。 ## 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 853a706..374bcff 100644 --- a/docs/release-notes/v1.5.0.md +++ b/docs/release-notes/v1.5.0.md @@ -4,49 +4,41 @@ ### Added -- Added an SSH remote-file workspace with separate username and host fields, recent and OpenSSH-config usernames, navigation, upload/download, remote copy/paste, transfer conflicts, progress, and cancellation. -- Added a compact saved-command manager and a repository-aware `Add to .gitignore` action. -- Added a Git history view with smooth branch tracks, correctly classified refs, and a three-column conflict-resolution tab that writes and stages the result. +- 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 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 kept the saved-command manager compact when it contains only a few rows. -- Fixed tab switches reloading SFTP and starting remote browsing before authentication completed; directory contents, selection, scroll position, and confirmed locations now remain stable. +- 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 TortoiseSVN dialogs failing to open with `ERROR_INVALID_HANDLE` (`os error 6`) when Nebula has no inheritable console handles. - Fixed WSL Agent activity tracking for direct, wrapped, and broadcast commands, and cleared stale activity when control returns to the guest shell. ### Improved -- Made SFTP publication transactional and improved throughput with bounded concurrency, pipelined writes, segmented reads, atomic downloads, recoverable replacement, and cancellation-safe cleanup. -- Made GPUI the default product shell and kept the legacy shell behind an explicit feature, reducing ordinary release builds to the product path. +- Made SFTP transfers transactional and faster with bounded concurrency, pipelined writes, segmented reads, atomic downloads, and cancellation-safe cleanup. ## 中文 ### 新增 -- 新增 SSH 远程文件工作区:分离用户名与主机字段,提供最近使用和 OpenSSH config 用户名,并支持导航、上传下载、远端复制粘贴、冲突处理、进度与取消。 -- 新增紧凑的保存命令管理器,以及能够识别仓库根的“加入 `.gitignore`”操作。 -- 新增带丝滑分支轨道和正确引用语义的 Git 历史视图,并提供会写回结果并暂存文件的三栏冲突解决 Tab。 +- 新增 SSH 远程文件工作区,支持导航、上传下载、远端文件操作、冲突处理、进度与取消。 +- 新增保存命令、仓库感知的 `.gitignore` 操作、带丝滑语义轨道的 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,以及认证完成前启动远程浏览的问题;目录内容、选中项、滚动位置和已确认位置现在会稳定保留。 +- 修复 GPUI 文本输入框把 `Ctrl+V` 发送到背后终端的问题,并阻止切换标签时重新加载或过早打开 SFTP 视图。 - 修复 SSH 重复密码提示,并停止复用已经失效的连接;受影响的 channel 会在全新连接上重试一次,同时不终止其他 pane。此项对应 [#50](https://github.com/Kuddev/nebula/issues/50) 的失败后重连部分;间歇断连和渲染报告仍保持开放。 -- 修复 Nebula 没有可继承控制台句柄时,TortoiseSVN 对话框因 `ERROR_INVALID_HANDLE`(`os error 6`)无法打开。 - 修复 WSL Agent 对直接命令、包装器命令和广播命令的活动跟踪,并在控制权回到来宾 shell 后清除过期状态。 ### 改进 -- SFTP 发布改为事务式流程,并通过有界并发、流水线写入、分段读取、原子下载、可恢复替换和取消安全清理提升吞吐与可靠性。 -- 将 GPUI 设为默认产品壳,旧壳保留在显式 feature 后,普通 Release 构建只包含产品路径。 +- SFTP 传输改为事务式流程,并通过有界并发、流水线写入、分段读取、原子下载和取消安全清理提升速度与可靠性。 ## Contributors diff --git a/nebula_app/src/gpui_shell/settings_pane.rs b/nebula_app/src/gpui_shell/settings_pane.rs index 392eaea..0a566eb 100644 --- a/nebula_app/src/gpui_shell/settings_pane.rs +++ b/nebula_app/src/gpui_shell/settings_pane.rs @@ -2918,8 +2918,8 @@ impl SettingsPane { "tab_close_visible", language.pick("显示标签关闭按钮", "Show tab close buttons"), language.pick( - "关闭后侧栏与顶栏标签不再显示关闭按钮,中键关闭仍然可用。", - "Hides close buttons in the sidebar and top tab strip. Middle-click close remains available.", + "关闭后侧栏与顶栏的标签都不再显示关闭按钮;中键点击标签仍可关闭。", + "Hides close buttons in both sidebar and top tabs. Middle-click still closes a tab.", ), self.runtime.tab_close_visible, cx, @@ -3823,10 +3823,13 @@ impl SettingsPane { )) .child(self.switch_row( "multiline_paste_confirm", - language.pick("多行粘贴前询问", "Confirm multi-line paste"), language.pick( - "关闭后,可能被 shell 逐行执行的长文本会直接粘贴,不再显示确认框。", - "When disabled, long text that a shell may execute line by line is pasted without confirmation.", + "粘贴多行或高风险内容前询问", + "Ask before multiline or risky pastes", + ), + language.pick( + "在裸 shell 中粘贴换行、提权命令或控制字符时先确认。Bracketed paste 与全屏程序不受影响;关闭后直接粘贴。", + "Confirms line breaks, privileged commands, or control characters pasted into a plain shell. Bracketed paste and full-screen apps are unaffected; disabling this pastes directly.", ), self.runtime.multiline_paste_confirm, cx, diff --git a/nebula_settings/src/lib.rs b/nebula_settings/src/lib.rs index 19fa74a..ca141cb 100644 --- a/nebula_settings/src/lib.rs +++ b/nebula_settings/src/lib.rs @@ -953,9 +953,9 @@ pub struct RuntimeSettings { pub cursor_shape: Option, pub cursor_blink: Option, pub copy_on_select: bool, - /// Whether risky multi-line pastes require confirmation before reaching the shell. + /// 裸 shell 风险粘贴确认:开 = 换行、提权命令或控制字符先确认;关 = 直接粘贴。 pub multiline_paste_confirm: bool, - /// Whether tab close buttons are rendered in the sidebar and top tab strip. + /// 标签页关闭按钮(叉号)是否渲染:关 = 不渲染,仍可用中键关闭。 pub tab_close_visible: bool, pub powerline: bool, /// 默认 shell 的原始 id(`shell=` 原文:powershell/bash/cmd/pwsh/WSL @@ -1338,8 +1338,8 @@ mod tests { assert_eq!(settings.theme, ThemeName::Nord); assert_eq!(settings.font_family, None); assert!(!settings.copy_on_select); - assert!(settings.multiline_paste_confirm); - assert!(settings.tab_close_visible); + assert!(settings.multiline_paste_confirm, "多行粘贴确认默认开(上游兼容)"); + assert!(settings.tab_close_visible, "标签关闭按钮默认可见(上游兼容)"); assert!(settings.powerline); assert!(settings.ghost); assert_eq!(settings.accept, AcceptKeyName::Both);