diff --git a/CHANGELOG.md b/CHANGELOG.md index 5e8b138..3474002 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -14,6 +14,52 @@ No unreleased changes yet. 暂无未发布改动。 +## 1.3.0 - 2026-08-24 + +### English + +#### Added +- **Paged title-bar tabs and pane headers** — overflowing top tabs expose previous/next controls with edge auto-scroll, while split panes receive their own draggable headers and can be detached back into tabs. +- **Per-tab broadcast input** — one action can send text and control keys to every pane in the active tab, re-encoding the input for each pane's terminal mode. +- **A semantic completion popup** — history, commands, directories, Rust, TOML, Markdown, and other files use distinct vector icons, source tags, and colors; the popup flips above the cursor near the bottom edge and shares one pixel geometry for painting, clicking, hovering, and scrolling. + +#### Fixed +- **Finished AI commands no longer remain stuck in the running state** — process-tree evidence now disproves stale shell state after Codex or Claude has returned to an idle prompt. Addresses [#42](https://github.com/Kuddev/nebula/issues/42) and [#54](https://github.com/Kuddev/nebula/issues/54). +- **Windows task switching uses the Nebula icon** — GPUI windows now set both native icon sizes, fixing the default white placeholder in taskbar previews and Alt+Tab. Addresses [#51](https://github.com/Kuddev/nebula/issues/51). +- **The SSH host editor renders and scrolls its complete form** — the modal now has a measured responsive viewport, and its icon picker restores a bounded scrollbar without leaving empty space for short filtered lists. +- **Native backdrop transparency stays synchronized** with wallpaper, terminal opacity, update dialogs, and the Windows material state. +- **Settings selectors and font profiles refresh after changes**, including imported/private font installation and the SSH/sidebar/top-tab surfaces that consume those settings. +- **WSL launches preserve the guest account's default shell**, and WSL file-tree paths map correctly between guest and UNC forms. +- **AI completion notifications expire after 90 seconds** instead of accumulating indefinitely. + +#### Improved +- **The product shell now targets GPUI v1.16.1** while retaining Nebula's resize, split-tree, mathematical layout, and PTY ownership contracts. +- **Settings was rebuilt around a consistent two-column layout** with fixed control alignment, clearer descriptions, non-default markers, a copyable About view, and dedicated font and keymap pages. +- **Nebula theme tokens now drive current component states** for buttons, sliders, switches, window chrome, transparency, and drag-time fast paths. +- **Native Windows backdrop materials and split-pane chrome are integrated directly** instead of relying on a parallel legacy backdrop path. + +### 简体中文 + +#### 新增 +- **可分页的标题栏标签与 pane 标题栏** — 顶部标签溢出后显示前后翻页控件并支持边缘自动滚动;分屏 pane 拥有独立的可拖动标题栏,也可以重新拖出为标签。 +- **按标签广播输入** — 一次操作可把文字与控制键发送到当前标签的全部 pane,并按每个 pane 自己的终端模式重新编码。 +- **语义化补齐弹窗** — 历史、命令、目录、Rust、TOML、Markdown 与普通文件使用各自的矢量图标、来源标签和颜色;光标靠近窗口底部时弹窗向上翻转,绘制、点击、悬停与滚动共用同一份像素几何。 + +#### 修复 +- **AI 命令结束后不再错误保持“运行中”** — Codex 或 Claude 回到空闲提示符后,进程树证据会推翻过期的 shell 状态。对应 [#42](https://github.com/Kuddev/nebula/issues/42) 与 [#54](https://github.com/Kuddev/nebula/issues/54)。 +- **Windows 任务切换显示 Nebula 图标** — GPUI 窗口现在设置两种原生图标尺寸,修复任务栏悬停预览与 Alt+Tab 中的默认白框占位图。对应 [#51](https://github.com/Kuddev/nebula/issues/51)。 +- **SSH 主机编辑器完整显示并可滚动** — 弹窗使用经过测量的响应式视口;图标选择器恢复有界滚动条,过滤结果较少时也不会留下多余空白。 +- **原生背景材质透明度保持同步**,覆盖壁纸、终端不透明度、更新弹窗与 Windows material 状态。 +- **设置选择器与字体 profile 会在修改后刷新**,包括导入/私有字体安装,以及消费这些设置的 SSH、侧栏与顶部标签界面。 +- **WSL 启动保留来宾账号的默认 shell**,文件树路径也能在来宾路径与 UNC 形式之间正确映射。 +- **AI 完成通知会在 90 秒后自动消失**,不再无限堆积。 + +#### 改进 +- **产品壳升级到 GPUI v1.16.1**,同时保留 Nebula 自有的 resize、split-tree、数学布局与 PTY 所属关系。 +- **设置页重建为一致的两列布局**,统一控件对齐、说明文字和非默认值标记,并提供可复制的 About 页面及独立的字体、按键映射页面。 +- **Nebula 主题 token 驱动当前组件状态**,覆盖按钮、滑块、开关、窗口 chrome、透明度与拖动快速路径。 +- **原生 Windows 背景材质与分屏边框直接整合**,不再维护一条平行的旧 backdrop 路径。 + ## 1.2.0 - 2026-08-21 ### English diff --git a/Cargo.lock b/Cargo.lock index d797a43..ed48d7f 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4923,7 +4923,7 @@ dependencies = [ [[package]] name = "nebula" -version = "1.2.0" +version = "1.3.0" dependencies = [ "ab_glyph_rasterizer", "aes-gcm", @@ -5001,7 +5001,7 @@ dependencies = [ [[package]] name = "nebula-completions" -version = "1.2.0" +version = "1.3.0" dependencies = [ "lscolors", "nu-ansi-term", @@ -5022,15 +5022,15 @@ dependencies = [ [[package]] name = "nebula-settings" -version = "1.2.0" +version = "1.3.0" [[package]] name = "nebula-split" -version = "1.2.0" +version = "1.3.0" [[package]] name = "nebula_config" -version = "1.2.0" +version = "1.3.0" dependencies = [ "log", "nebula_config_derive", @@ -5040,7 +5040,7 @@ dependencies = [ [[package]] name = "nebula_config_derive" -version = "1.2.0" +version = "1.3.0" dependencies = [ "log", "nebula_config", @@ -5057,7 +5057,7 @@ version = "0.6.0" [[package]] name = "nebula_terminal" -version = "1.2.0" +version = "1.3.0" dependencies = [ "base64", "bitflags 2.13.0", diff --git a/docs/release-notes/v1.3.0.md b/docs/release-notes/v1.3.0.md new file mode 100644 index 0000000..ff6c423 --- /dev/null +++ b/docs/release-notes/v1.3.0.md @@ -0,0 +1,62 @@ +# Nebula Terminal 1.3.0 + +## English + +### Added + +- Added paged title-bar tabs and pane headers — Overflowing top tabs expose previous/next controls with edge auto-scroll; split panes receive draggable headers and can be detached back into tabs. +- Added per-tab broadcast input — Text and control keys can be sent to every pane in the active tab, with input re-encoded for each pane's terminal mode. +- Added a semantic completion popup — History, commands, directories, Rust, TOML, Markdown, and other files use distinct vector icons, source tags, and colors. The popup flips above the cursor near the bottom edge and shares one pixel geometry for painting, clicking, hovering, and scrolling. + +### Fixed + +- Fixed finished AI commands remaining stuck in the running state — Process-tree evidence now disproves stale shell state after Codex or Claude returns to an idle prompt. Addresses [#42](https://github.com/Kuddev/nebula/issues/42) and [#54](https://github.com/Kuddev/nebula/issues/54). +- Fixed GPUI windows showing the default white placeholder in taskbar previews and Alt+Tab by setting both native Windows icon sizes. Addresses [#51](https://github.com/Kuddev/nebula/issues/51). +- Fixed the SSH host editor collapsing its form body to zero height. The modal now has a measured responsive viewport, and the icon picker restores a bounded scrollbar without leaving empty space for short filtered lists. +- Fixed native backdrop transparency drifting out of sync with wallpaper, terminal opacity, update dialogs, and the Windows material state. +- Fixed settings selectors and font profiles failing to refresh after changes, including imported/private font installation and the SSH/sidebar/top-tab consumers. +- Fixed WSL launches overriding the guest account's default shell, and corrected file-tree mapping between guest and UNC paths. +- Fixed AI completion notifications accumulating indefinitely; they now dismiss after 90 seconds. + +### Improved + +- Improved the product shell by moving it to GPUI v1.16.1 while retaining Nebula's resize, split-tree, mathematical layout, and PTY ownership contracts. +- Improved Settings with a consistent two-column layout, fixed control alignment, clearer descriptions, non-default markers, a copyable About view, and dedicated font and keymap pages. +- Improved component consistency by synchronizing Nebula theme tokens across buttons, sliders, switches, window chrome, transparency, and drag-time fast paths. +- Improved native Windows backdrop and split-pane integration by removing the parallel legacy backdrop path. + +## 中文 + +### 新增 + +- 新增可分页的标题栏标签与 pane 标题栏 — 顶部标签溢出后显示前后翻页控件并支持边缘自动滚动;分屏 pane 拥有可拖动标题栏,也可以重新拖出为标签。 +- 新增按标签广播输入 — 可把文字与控制键发送到当前标签的全部 pane,并按每个 pane 自己的终端模式重新编码。 +- 新增语义化补齐弹窗 — 历史、命令、目录、Rust、TOML、Markdown 与普通文件使用各自的矢量图标、来源标签和颜色;光标靠近窗口底部时弹窗向上翻转,绘制、点击、悬停与滚动共用同一份像素几何。 + +### 修复 + +- 修复 AI 命令结束后仍错误保持“运行中” — Codex 或 Claude 回到空闲提示符后,进程树证据会推翻过期的 shell 状态。对应 [#42](https://github.com/Kuddev/nebula/issues/42) 与 [#54](https://github.com/Kuddev/nebula/issues/54)。 +- 修复 GPUI 窗口在任务栏悬停预览与 Alt+Tab 中显示默认白框占位图;窗口现在会设置两种原生 Windows 图标尺寸。对应 [#51](https://github.com/Kuddev/nebula/issues/51)。 +- 修复 SSH 主机编辑器正文被压成零高度;弹窗现在使用经过测量的响应式视口,图标选择器也恢复有界滚动条,过滤结果较少时不会留下多余空白。 +- 修复原生背景材质透明度与壁纸、终端不透明度、更新弹窗及 Windows material 状态不同步。 +- 修复设置选择器与字体 profile 修改后不刷新,包括导入/私有字体安装,以及消费这些设置的 SSH、侧栏与顶部标签界面。 +- 修复 WSL 启动覆盖来宾账号默认 shell,并纠正文件树在来宾路径与 UNC 形式之间的映射。 +- 修复 AI 完成通知无限堆积;通知现在会在 90 秒后自动消失。 + +### 改进 + +- 改进产品壳并升级到 GPUI v1.16.1,同时保留 Nebula 自有的 resize、split-tree、数学布局与 PTY 所属关系。 +- 改进设置页,采用一致的两列布局、固定控件对齐、清晰说明和非默认值标记,并提供可复制的 About 页面及独立的字体、按键映射页面。 +- 改进组件一致性,让 Nebula 主题 token 覆盖按钮、滑块、开关、窗口 chrome、透明度与拖动快速路径。 +- 改进原生 Windows 背景材质与分屏整合,移除平行维护的旧 backdrop 路径。 + +## Contributors + +- No external contributions were recorded for this release. + +--- + +**SHA256** + +- `NebulaTerminal-v1.3.0-windows-x64.zip`: `5DEF2E79473F8E5A772351046709E1EAA8629DBF9C4CBD5D5DBADCAD28CFB36D` +- `NebulaTerminal-1.3.0-windows-x64-setup.exe`: `5554EADD9D4440BC516739A91376F99466D081D2E245DD15589DFC539F0899A8` diff --git a/nebula-completions/Cargo.toml b/nebula-completions/Cargo.toml index 35105c1..5a50bf7 100644 --- a/nebula-completions/Cargo.toml +++ b/nebula-completions/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nebula-completions" -version = "1.2.0" +version = "1.3.0" edition.workspace = true [features] diff --git a/nebula_app/Cargo.toml b/nebula_app/Cargo.toml index 925f1b3..3d13eae 100644 --- a/nebula_app/Cargo.toml +++ b/nebula_app/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nebula" -version = "1.2.0" +version = "1.3.0" license = "GPL-3.0-or-later" description = "Nebula Terminal — a premium GPU-accelerated terminal emulator" readme = "README.md" @@ -15,15 +15,15 @@ path = "src/main.rs" [dependencies.nebula_terminal] path = "../nebula_terminal" -version = "1.2.0" +version = "1.3.0" [dependencies.nebula_config_derive] path = "../nebula_config_derive" -version = "1.2.0" +version = "1.3.0" [dependencies.nebula_config] path = "../nebula_config" -version = "1.2.0" +version = "1.3.0" # 可选:GPUI UI 层(feature = "gpui-shell",模块 src/gpui_shell/)。 # GPUI/component 的版本和 Git 来源由根 Cargo.toml 统一精确固定。 @@ -62,7 +62,7 @@ optional = true [dependencies.nebula-completions] path = "../nebula-completions" -version = "1.2.0" +version = "1.3.0" [dependencies] ahash = { version = "0.8.6", features = ["no-rng"] } diff --git a/nebula_app/windows/nebula.rc b/nebula_app/windows/nebula.rc index ed71d5b..a6cb4cf 100644 --- a/nebula_app/windows/nebula.rc +++ b/nebula_app/windows/nebula.rc @@ -8,8 +8,8 @@ IDI_ICON ICON "nebula.ico" APP_MANIFEST RT_MANIFEST nebula.manifest 1 VERSIONINFO -FILEVERSION 1,2,0,0 -PRODUCTVERSION 1,2,0,0 +FILEVERSION 1,3,0,0 +PRODUCTVERSION 1,3,0,0 FILEFLAGSMASK 0x3fL FILEFLAGS 0x0L FILEOS 0x40004L @@ -22,11 +22,11 @@ BEGIN BEGIN VALUE "CompanyName", "Kuddev" VALUE "FileDescription", "Nebula Terminal" - VALUE "FileVersion", "1.2.0" + VALUE "FileVersion", "1.3.0" VALUE "InternalName", "nebula" VALUE "OriginalFilename", "nebula.exe" VALUE "ProductName", "Nebula Terminal" - VALUE "ProductVersion", "1.2.0" + VALUE "ProductVersion", "1.3.0" END END BLOCK "VarFileInfo" @@ -34,4 +34,3 @@ BEGIN VALUE "Translation", 0x409, 1200 END END - diff --git a/nebula_config/Cargo.toml b/nebula_config/Cargo.toml index 6d5776c..6daf84e 100644 --- a/nebula_config/Cargo.toml +++ b/nebula_config/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nebula_config" -version = "1.2.0" +version = "1.3.0" license = "GPL-3.0-or-later" description = "Nebula configuration abstractions" homepage = "https://github.com/Kuddev/nebula" @@ -14,5 +14,5 @@ serde = "1.0.163" toml.workspace = true [dev-dependencies] -nebula_config_derive = { version = "1.2.0", path = "../nebula_config_derive" } +nebula_config_derive = { version = "1.3.0", path = "../nebula_config_derive" } serde = { version = "1.0.163", features = ["derive"] } diff --git a/nebula_config_derive/Cargo.toml b/nebula_config_derive/Cargo.toml index bb4dc14..c39b810 100644 --- a/nebula_config_derive/Cargo.toml +++ b/nebula_config_derive/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nebula_config_derive" -version = "1.2.0" +version = "1.3.0" license = "GPL-3.0-or-later" description = "Failure resistant deserialization derive" homepage = "https://github.com/Kuddev/nebula" @@ -18,7 +18,7 @@ syn = { version = "2.0.16", features = ["derive", "parsing", "proc-macro", "prin [dev-dependencies.nebula_config] path = "../nebula_config" -version = "1.2.0" +version = "1.3.0" [dev-dependencies] log = "0.4.11" diff --git a/nebula_settings/Cargo.toml b/nebula_settings/Cargo.toml index dda0966..3c78c37 100644 --- a/nebula_settings/Cargo.toml +++ b/nebula_settings/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nebula-settings" -version = "1.2.0" +version = "1.3.0" license = "GPL-3.0-or-later" description = "Shared reader for Nebula runtime user settings (nebula_settings.txt) and theme terminal-color tables" publish = false diff --git a/nebula_split/Cargo.toml b/nebula_split/Cargo.toml index 0c1edc0..d0f0a65 100644 --- a/nebula_split/Cargo.toml +++ b/nebula_split/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nebula-split" -version = "1.2.0" +version = "1.3.0" license = "GPL-3.0-or-later" description = "Shared split-pane rules: layout tree, geometry, divider drag and directional focus" publish = false diff --git a/nebula_terminal/Cargo.toml b/nebula_terminal/Cargo.toml index 4e7c1fb..9c6fd09 100644 --- a/nebula_terminal/Cargo.toml +++ b/nebula_terminal/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "nebula_terminal" -version = "1.2.0" +version = "1.3.0" license = "GPL-3.0-or-later" description = "Nebula terminal emulation core" readme = "../README.md" diff --git a/scripts/installer.iss b/scripts/installer.iss index 922e1af..ac4b72c 100644 --- a/scripts/installer.iss +++ b/scripts/installer.iss @@ -1,9 +1,9 @@ #ifndef AppVersion - #define AppVersion "1.2.0" + #define AppVersion "1.3.0" #endif #ifndef NumericVersion - #define NumericVersion "1.2.0.0" + #define NumericVersion "1.3.0.0" #endif #ifndef Configuration