# Nebula Terminal 1.5.0 ## English ### Added - 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. - 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 - 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 连接新增分离的用户名与主机字段。 - 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` 发送到背后终端的问题。 - 修复保存命令管理器只有少量结果时仍展开出大块空白区域的问题。 - 修复切换 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 发布改用同目录暂存文件和原子替换。 - 替换中断时会保留可恢复备份。 - 远端支持时会保留时间戳与权限。 - 取消操作会安全清理临时传输状态。 - 改进现代与旧版 SSH 服务上的远端目录跟随。 - 可定位经 `su` 或 `sudo` 进入的前台 shell 工作目录。 - 远端会话存在歧义时会安全回退,不猜测路径。 - WSL shell 集成现在会上报命令完成和退出状态。 - WSL shell 集成现在会上报 cwd 和下一提示符边界。 - WSL 集成会保留 guest 已配置的登录 shell。 - 现有 `WSLENV` 项会被保留,不再覆盖。 - 新增 Wayland 与 X11 的 Linux GPUI 平台接线,作为原生 Linux 移植地基。 - GPUI 产品壳已与旧版窗口、输入、渲染和事件适配器隔离,让 Linux 可沿用同一套产品架构。 - 将 GPUI 设为默认产品壳,旧壳保留在显式 feature 后,普通 Release 构建与打包应用使用同一条产品路径。 ## Contributors @Sakyvo avatar **[@Sakyvo](https://github.com/Sakyvo)** — Added persistent controls for multi-line paste confirmation and tab close-button visibility ([#76](https://github.com/Kuddev/nebula/pull/76), [#77](https://github.com/Kuddev/nebula/pull/77)). --- **SHA256** - `NebulaTerminal-v1.5.0-windows-x64.zip`: `9B2413144C0434E29749CCBD5C2B0F93E930DAFD22634DD70D34B763037E0DA4` - `NebulaTerminal-1.5.0-windows-x64-setup.exe`: `416A1E127045CE81C78CC2D0990D469D8ADDE935931963148FB81A9D5CEF2BD2`