chore(release): prepare v1.2.0

This commit is contained in:
kuddev committed 2026-08-21 22:31:11 +08:00
1 parent 5483ec3b25
commit fecb99d94a
12 files changed
+214 -147

No files matched your search

+62 -6
View File
@@ -8,25 +8,81 @@ Every release entry is provided in English and Simplified Chinese.
### English
No unreleased changes yet.
### 简体中文
暂无未发布改动。
## 1.2.0 - 2026-08-21
### English
#### Added
- **`nebula ctl orchestrate`** — a strongly typed single-request workflow: a model submits its intent once and the Runtime performs the deterministic control steps locally, bounded by a step count, a byte ceiling and a readiness timeout, with per-workflow `stop`/`continue` error handling.
- **Deterministic Runtime orchestration** — `nebula ctl orchestrate` accepts one typed request and executes bounded local control steps with workflow-specific `stop`/`continue` failure handling.
- **Expanded Runtime control APIs** — named-agent operations, process and control-key commands, real command exit status, pane lifecycle events, and a stabilized transport/discovery path are available to automation clients.
- **Transactional managed-agent worktrees** — agent forks create isolated branches and worktrees, retain stable agent identity, and roll back resources only when failure is confirmed.
- **Packaged Runtime contract** — the versioned schema, control API documentation, and `nebula-runtime` Skill ship in both the ZIP and installer.
- **Horizontal title-bar tabs** — top-mode tabs support selection, drag reordering, docking and splitting, plus horizontal auto-scroll while selecting or dragging. Settings now lives in the three-dot menu, and the first tab aligns with the terminal/powerline edge.
- **SVN integration** — the GPUI repository workflow and status panel now support SVN working copies alongside Git.
- **SSH failure retry** — both shells show Retry immediately to the left of Close only after a connection failure and replace that failed pane in place.
#### Fixed
- **The checked-in shell completions match the CLI again** — `ctl orchestrate`, `--gpui` and `--legacy-shell` were missing from the generated bash/fish/zsh scripts.
- **Second launches reach the resident window** — opening Nebula again hands the request to the running instance and creates the requested tab/window instead of exiting silently. Addresses [#39](https://github.com/Kuddev/nebula/issues/39).
- **Sogou and other IMEs keep ownership of unmodified text input** — ordinary letters and Space remain on the text-input path so IME composition can be confirmed. Addresses [#43](https://github.com/Kuddev/nebula/issues/43).
- **WSL keeps the guest's configured default shell** — Nebula no longer forces Bash when launching `wsl.exe`. Addresses [#44](https://github.com/Kuddev/nebula/issues/44).
- **Ctrl+C is conditional copy again** — with no selection it reaches the PTY; after an explicit copy, the selection is cleared before the next key event. Addresses [#48](https://github.com/Kuddev/nebula/issues/48).
- **Legacy `user@host:port` SSH targets no longer fail the Windows configuration probe with `11001`** — only the `ssh -G` probe target is normalized to `ssh://user@host:port`; the actual connection destination is preserved.
- **Codex Shift+Enter is encoded as a Win32 input record** — ConPTY Win32 input mode and DECSET 9001 tracking preserve the modified Enter key.
- **Background blur can be toggled at runtime** and hidden windows recover correctly when tray support is disabled.
- **Opacity sliders no longer rebuild fonts, themes, wallpaper textures, or DWM state on every drag event.**
- **WSL file trees no longer report cold or timed-out reads as empty folders** and the Files panel follows the active local/WSL/SSH pane after switches and manual navigation.
- **PowerShell startup injection is present before the first prompt** for three-dot launches, powerline-disabled sessions, and alternate profile paths.
- **Checked-in bash, fish, and zsh completions match the CLI** for `ctl orchestrate`, `--gpui`, and `--legacy-shell`.
- **Installer fallback and numeric version metadata now follow the application release version.**
#### Improved
- **The WSL file tree builds from one `find` call** — multiple starting points are batched into a single guest round trip instead of one subprocess per root.
- **Completion is routed through each pane's filesystem** — local, WSL, and SSH panes fetch candidates from their own environment instead of the host filesystem.
- **WSL tree enumeration batches starting points into one `find` call** and uses a realistic cold-start timeout; refreshes are event-driven instead of running every four seconds.
- **Shell injection is selected by shell family** so PowerShell, cmd, Nushell, and fallback shells keep their compatible startup/completion behavior.
- **Mixed-DPI window dragging coalesces intermediate work** and separates the native move transaction from the final DPI/size commit.
- **GPUI split-pane chrome and title-bar integration were aligned**, while the sidebar mode and its settings control remain unchanged.
- **The shell-injected `fmt` command was removed** and the expanded sidebar toggle now uses the legacy shell's softer selected surface.
- **README Star History rendering was restored** by [@FaintFlower](https://github.com/FaintFlower) in [#49](https://github.com/Kuddev/nebula/pull/49).
### 简体中文
#### 新增
- **`nebula ctl orchestrate`** — 强类型单请求编排:模型只提交一次意图,Runtime 在本地完成确定性控制步骤,受步数、字节上限与就绪超时三重约束,并支持按工作流选择 `stop`/`continue` 的错误处理。
- **确定性的 Runtime 编排** — `nebula ctl orchestrate` 接收一次强类型请求,在本地执行受步数、字节上限和就绪超时约束的控制步骤,并支持按工作流选择 `stop`/`continue` 错误处理。
- **扩展 Runtime 控制 API** — 新增命名 agent 操作、进程与控制键命令、真实命令退出码、pane 生命周期事件,并稳定了传输与发现路径。
- **事务式托管 agent worktree** — agent fork 会创建隔离分支与 worktree,保存稳定 agent 身份,并且只在确认失败时回滚本次创建的资源。
- **随包提供 Runtime 契约** — ZIP 与安装器都包含带版本的 schema、控制 API 文档和 `nebula-runtime` Skill。
- **水平标题栏标签页** — 顶部模式支持选择、拖拽排序、停靠与分屏,选择或拖拽时可水平自动滚动;设置入口已收进三个点菜单,首个标签与终端/powerline 左边缘严格对齐。
- **SVN 集成** — GPUI 仓库工作流与状态面板现在除 Git 外也支持 SVN 工作副本。
- **SSH 失败重试** — 两套界面都只在连接失败后显示“重试”,位置紧邻“关闭”左侧,并在原位替换失败的 pane。
#### 修复
- **签入的 shell 补全脚本与 CLI 重新同步** — 生成的 bash/fish/zsh 脚本里缺了 `ctl orchestrate`、`--gpui` 与 `--legacy-shell`。
- **第二次启动会交给驻留窗口处理** — 再次打开 Nebula 会由现有实例创建所需标签/窗口,不再静默退出。对应 [#39](https://github.com/Kuddev/nebula/issues/39)。
- **搜狗等输入法继续接管未修饰文本输入** — 普通字母与空格保留在 text-input 路径,输入法组合文本可以正常确认。对应 [#43](https://github.com/Kuddev/nebula/issues/43)。
- **WSL 保留来宾系统配置的默认 shell** — 启动 `wsl.exe` 时不再强制使用 Bash。对应 [#44](https://github.com/Kuddev/nebula/issues/44)。
- **Ctrl+C 恢复条件复制语义** — 没有选区时按键传给 PTY;明确复制后,在下一个按键事件前清除选区。对应 [#48](https://github.com/Kuddev/nebula/issues/48)。
- **旧格式 `user@host:port` 不再让 Windows SSH 配置探测报 `11001`** — 只把 `ssh -G` 探测目标规范化为 `ssh://user@host:port`,实际连接目标保持不变。
- **Codex 的 Shift+Enter 会编码为 Win32 输入记录** — ConPTY Win32 输入模式与 DECSET 9001 跟踪会保留带修饰键的 Enter。
- **背景模糊开关可在运行时生效**,关闭托盘时也能正确找回之前隐藏的窗口。
- **拖动不透明度滑块不再逐事件重建字体、主题、壁纸纹理或 DWM 状态。**
- **WSL 文件树不再把冷启动或超时误报为空目录**;切换 pane 或手动导航后,Files 面板会继续跟随当前本地/WSL/SSH pane。
- **PowerShell 在第一条提示符前完成启动注入**,覆盖三个点启动、关闭 powerline 和备用 profile 路径。
- **签入的 bash、fish、zsh 补全脚本与 CLI 重新同步**,补齐 `ctl orchestrate`、`--gpui` 与 `--legacy-shell`。
- **安装器兜底版本与数字文件版本会跟随应用发布版本。**
#### 改进
- **WSL 文件树只发一次 `find`** — 多个起点合并成一次来宾往返,不再每个根目录起一个子进程。
- **补全按 pane 使用各自的文件系统** — 本地、WSL 与 SSH pane 都从自己的环境获取候选,不再错误读取宿主文件系统。
- **WSL 文件树把多个起点合并成一次 `find`**,采用符合冷启动实际的超时,并改为事件驱动刷新,不再每四秒全量扫描。
- **按 shell 家族选择注入逻辑**,让 PowerShell、cmd、Nushell 和通用 fallback 保持各自兼容的启动/补全行为。
- **混合 DPI 窗口拖动会合并中间更新**,原生移动事务与最终 DPI/尺寸提交彼此分离。
- **GPUI 分屏边框与标题栏整合已对齐**,侧边栏模式及其设置按钮保持不变。
- **移除 shell 注入的 `fmt` 命令**,展开的侧栏切换按钮改用旧界面更柔和的选中色。
- **README Star History 图表已恢复**,由 [@FaintFlower](https://github.com/FaintFlower) 在 [#49](https://github.com/Kuddev/nebula/pull/49) 中贡献。
## 1.1.0 - 2026-08-18
Generated
+7 -7
View File
@@ -4629,7 +4629,7 @@ dependencies = [
[[package]]
name = "nebula"
version = "1.1.0"
version = "1.2.0"
dependencies = [
"ab_glyph_rasterizer",
"aes-gcm",
@@ -4706,7 +4706,7 @@ dependencies = [
[[package]]
name = "nebula-completions"
version = "1.1.0"
version = "1.2.0"
dependencies = [
"lscolors",
"nu-ansi-term",
@@ -4726,15 +4726,15 @@ dependencies = [
[[package]]
name = "nebula-settings"
version = "1.1.0"
version = "1.2.0"
[[package]]
name = "nebula-split"
version = "1.1.0"
version = "1.2.0"
[[package]]
name = "nebula_config"
version = "1.1.0"
version = "1.2.0"
dependencies = [
"log",
"nebula_config_derive",
@@ -4744,7 +4744,7 @@ dependencies = [
[[package]]
name = "nebula_config_derive"
version = "1.1.0"
version = "1.2.0"
dependencies = [
"log",
"nebula_config",
@@ -4761,7 +4761,7 @@ version = "0.6.0"
[[package]]
name = "nebula_terminal"
version = "1.1.0"
version = "1.2.0"
dependencies = [
"base64",
"bitflags 2.13.0",
+2 -119
View File
@@ -4,125 +4,8 @@ This file contains changes that are not part of a numbered release yet.
## English
### Fixed
- Fixed Codex treating Shift+Enter as ordinary Enter in Nebula on Windows. The
terminal now enables ConPTY Win32 input mode, tracks DECSET 9001, and encodes
the corresponding Win32 key records.
- Fixed the installer's fallback and numeric version metadata still identifying
old 0.6.0 builds instead of the current 0.9.0 application version.
- Fixed PowerShell sessions created from the three-dot shell menu, and sessions
with Powerline disabled, losing Nebula's OSC prompt/command state until the
first interactive conversation. The OSC bridge is now installed before the
first prompt so Codex/CLI detection and the right-side activity state are
available immediately.
- Fixed PowerShell profiles created through the alternate profile path missing
the Nebula command-completion integration.
- Disabled the `fmt` command from Nebula's shell-injected command surface.
- Fixed the GPUI Windows background-blur switch doing nothing at runtime. The
window effects were applied inside `handle.update` while that same window was
already borrowed by the enclosing update, so the call always failed with
`window not found` and the error was discarded — blur only ever took effect at
startup, and once on it could not be turned off. Effects are now applied on a
deferred pass and update failures are logged.
- Fixed dragging the opacity sliders stuttering badly. Dragging no longer
reloads settings from disk, rebuilds every terminal's fonts and palette,
rebuilds the whole theme, re-bakes the wallpaper texture, or round-trips to
DWM on every event; it updates the shell alpha directly and persists once
after the drag settles. The blocking `DwmFlush` was removed and window-level
blur is only touched when the blur state actually changes.
- Fixed the WSL file tree showing "此目录为空" for guest directories. A fresh
`wsl.exe -d <distro> -- find` call takes about 7.5s on its cold path even when
the same distribution already has an interactive terminal running, so the 6s
budget always expired on the first snapshot, the worker was killed, and the
empty result was rendered as an empty directory. The budget is now 20s.
- The Files panel no longer re-scans the tree on a timer. It previously rebuilt
the whole snapshot (a WSL subprocess plus three git subprocesses) every 4
seconds, which on WSL left the panel flipping between "正在读取目录…" and an
empty list. Refreshes are now driven by directory changes, the refresh button,
and finished git operations only.
- Fixed windows staying hidden when the tray was disabled while they were
minimized to it. The reveal path applied its effect inside `handle.update` on
an already-borrowed window, so it always failed silently while
`window_hidden` had already been cleared — leaving an app with no window and
no tray icon that could not restore itself.
- Fixed the shared Files panel losing the active pane after tab/pane switches
or manual tree navigation. WSL `/mnt/<drive>` paths map to the host drive,
while `/`, `/home`, `/etc`, and other guest paths are enumerated inside the
selected distribution. Directory rows are published before the slower WSL
VCS probe, refresh resumes following the active pane, and timed-out workers
can no longer disable later refreshes.
### Improved
- Added a default-selected installer task that adds Nebula to the current
user's PATH. The installer also registers `nebula.exe` with Windows App Paths
for Win+R, preserves the Explorer directory context menus, and removes only
its own PATH entry during uninstall.
- Shell injection is now selected by shell family. PowerShell uses its own
startup/status path; `cmd.exe` uses only the compatible minimal status path;
Nushell keeps its native completion behavior and is not replaced by Nebula's
completion script; other shells use the fallback OSC path where supported.
- Improved Windows mixed-DPI dragging between monitors by separating the
native move transaction from the final DPI/size commit. The Windows 11
backend must use the native `WM_DPICHANGED` target rectangle, while the
Windows 10 compatibility reposition path remains gated to older builds.
- Improved cross-monitor drag performance by coalescing intermediate DPI,
physical-size, font, and UI updates until the native drag settles. Ordinary
native messages remain on the fast path.
- Matched the expanded sidebar toggle's selected background to the softer
surface color used by the legacy shell without changing other selected
buttons globally.
No unreleased changes yet.
## 中文
### 修复
- 修复 Windows 下 Codex 把 Shift+Enter 当作普通 Enter 的问题。终端现在启用
ConPTY Win32 输入模式、跟踪 DECSET 9001,并编码对应的 Win32 按键记录。
- 修复安装器兜底版本与数字文件版本仍显示旧 0.6.0、没有跟随当前 0.9.0
应用版本的问题。
- 修复通过三个点创建的 PowerShell,或关闭 Powerline 后的 PowerShell,在
第一次实际对话前丢失 Nebula OSC 提示符/命令状态的问题。现在启动阶段就
安装 OSC 桥接,因此 Codex/CLI 识别和右侧活动状态会在第一条提示符出现
时可用,不需要先发送一轮对话。
- 修复通过备用 profile 路径创建的 PowerShell 没有命令补齐的问题。
- 禁用 shell 注入命令面板中的 `fmt` 命令。
- 修复 GPUI Windows 壳的背景模糊开关在运行中点了没反应的问题。窗口视效原先在
`handle.update` 里应用,而那一刻这个窗口已经被外层 update 借出,调用必然返回
`window not found`,错误又被丢弃——于是模糊只在启动时生效,一旦开着就再也
关不掉。现在改为延迟一帧统一应用,且 update 失败会留日志。
- 修复拖动不透明度滑块严重卡顿的问题。拖拽过程不再每个事件都重新读设置文件、
重建每个终端的字体与调色板、重建整套主题、重烘焙壁纸纹理、以及和 DWM 往返;
改为直接更新壳色 alpha,停手之后落盘一次。阻塞式 `DwmFlush` 已移除,窗口级
模糊只在模糊态真的改变时才动。
- 修复共享 Files 面板在切换 tab/pane 或手动浏览目录后不再跟随当前 pane 的
问题。WSL `/mnt/<盘>` 映射到宿主盘,`/`、`/home`、`/etc` 等来宾路径则在
对应发行版内枚举;目录行会先于较慢的 WSL VCS 探测发布,刷新按钮会恢复
跟随当前 pane,WSL 工人超时也不会再让后续刷新永久失效。
### 改进
- 安装器新增默认勾选的当前用户 PATH 任务,并通过 Windows App Paths 注册
`nebula.exe` 供 Win+R 直接启动;资源管理器目录右键菜单继续随包提供,卸载
时只移除安装器自己加入的 PATH 条目。
- 按 shell 家族选择注入逻辑:PowerShell 使用专用启动/状态路径;`cmd.exe`
只使用兼容的最小状态路径;Nushell 保留自身原生命令补齐,不被 Nebula
的补齐脚本替换;其他 shell 在支持时使用通用 OSC 回退路径。
- 改进 Windows 混合 DPI 多显示器拖动:把原生拖动阶段与最终 DPI/尺寸提交
分离;Windows 11 使用原生 `WM_DPICHANGED` 目标矩形,Windows 10 的兼容
重定位逻辑只对旧版本生效。
- 改进跨显示器拖动性能:中间产生的 DPI、物理尺寸、字体和 UI 更新合并到
原生拖动结束后执行,普通系统消息仍走快速路径。
- 左上角侧栏折叠按钮展开时改用与旧壳一致的柔和 surface 选中色,不全局
改动其他 selected 按钮的主题状态。
## Verification
The PowerShell/OSC changes need first-prompt checks for all profile creation
routes. The mixed-DPI change still requires a real Windows two-monitor matrix,
including Windows 11 150% -> 125% and the reverse direction. A compile check
alone is not sufficient to claim that the physical monitor seam is fixed. The
WSL changes still require guest-path checks for both `/mnt/<drive>` and native
Linux repositories, and the blur change requires a live Windows DWM toggle
check in both directions.
暂无未发布改动。
+128
View File
@@ -0,0 +1,128 @@
# Nebula Terminal 1.2.0
Nebula Terminal 1.2.0 expands the Runtime control surface, adds horizontal title-bar tabs and SVN support, and concentrates this cycle's Windows, WSL, SSH, IME, and GPUI reliability work into one release.
Nebula Terminal 1.2.0 扩展了 Runtime 控制能力,加入水平标题栏标签页与 SVN 支持,并集中交付本周期的 Windows、WSL、SSH、输入法与 GPUI 稳定性改进。
## English
### Highlights
- Horizontal title-bar tabs support selection, drag reordering, docking, split creation, and horizontal auto-scroll. In top mode, Settings now lives in the three-dot menu and the first tab starts exactly at the terminal/powerline left edge; sidebar mode is unchanged.
- The Runtime can orchestrate typed workflows, control named agents and processes, report real exit status and pane lifecycle events, and create transactional managed-agent worktrees.
- Completion and file-tree work now follow each pane's real local, WSL, or SSH filesystem context.
- This release addresses the resident second-launch, Sogou IME, WSL default-shell, and conditional Ctrl+C Copy reports tracked in Issues #39, #43, #44, and #48. The mapping below keeps those fixes traceable while the Issues remain open for user verification.
### Added
- Added `nebula ctl orchestrate`, a typed single-request workflow whose deterministic local steps are bounded by step count, byte ceiling, and readiness timeout, with per-workflow `stop`/`continue` failure behavior.
- Added named-agent control, process and control-key APIs, real command exit status, and pane lifecycle events to the Runtime contract.
- Added isolated, transactional worktree creation for managed agents, including stable branch/path identity and failure-aware rollback.
- Added the versioned Runtime schema, control API documentation, and `nebula-runtime` Skill to the ZIP and installer payloads.
- Added the horizontal title-bar tab layout with drag reorder, dock/split targets, and drag/selection auto-scroll.
- Added SVN working-copy detection and repository status/workflow support to the GPUI shell.
- Added a failure-only SSH Retry action immediately to the left of Close in both the legacy and GPUI shells. Retry atomically replaces only the failed pane with the same destination.
### Fixed
- Fixed a second Nebula launch silently disappearing while a resident instance was running. The launch request is now handed to that instance, which creates and focuses the requested tab/window. Addresses [#39](https://github.com/Kuddev/nebula/issues/39).
- Fixed unmodified letters and Space bypassing the Windows text-input path, allowing Sogou and other IMEs to confirm composition normally. Addresses [#43](https://github.com/Kuddev/nebula/issues/43).
- Fixed WSL launches forcing Bash instead of honoring the guest account's `/etc/passwd` default shell. Addresses [#44](https://github.com/Kuddev/nebula/issues/44).
- Fixed Ctrl+C Copy consuming the key when there is no selection and repeatedly copying a stale selection. No selection now propagates Ctrl+C to the PTY; an explicit copy clears selection before the next key event. Addresses [#48](https://github.com/Kuddev/nebula/issues/48).
- Fixed legacy `user@host:port` SSH destinations failing the Windows `ssh -G` configuration probe with resolver error `11001`. Only the probe target is normalized to `ssh://user@host:port`; the real connection destination is unchanged.
- Fixed Codex treating Shift+Enter as ordinary Enter by enabling ConPTY Win32 input, tracking DECSET 9001, and encoding the corresponding Win32 key record.
- Fixed runtime background-blur toggling and the related path that could leave a window hidden after tray support was disabled.
- Fixed opacity sliders rebuilding fonts, terminal palettes, themes, wallpaper textures, and DWM state on every drag event.
- Fixed WSL cold-start/timeout failures being rendered as empty directories. The Files panel now keeps following the active local/WSL/SSH pane after tab changes, pane changes, and manual navigation.
- Fixed PowerShell sessions opened from the three-dot menu or with Powerline disabled missing OSC command state before their first interaction.
- Fixed alternate PowerShell profile launches missing Nebula command completion.
- Fixed checked-in bash, fish, and zsh completion scripts omitting `ctl orchestrate`, `--gpui`, and `--legacy-shell`.
- Fixed the installer's fallback and numeric file-version metadata lagging behind the application version.
### Improved
- Routed completion requests through each pane's own local, WSL, or SSH filesystem provider.
- Batched WSL file-tree starting points into one guest `find` call, increased the cold-start budget, and replaced the four-second polling scan with event-driven refreshes.
- Selected shell injection by shell family: PowerShell keeps its full integration, cmd uses its compatible minimal status path, Nushell keeps native completion, and other shells use the supported OSC fallback.
- Stabilized Runtime transport/discovery and kept pane/window ownership explicit across the agent-control path.
- Improved mixed-DPI dragging by separating native move handling from the final DPI/size commit and coalescing intermediate work.
- Matched split-pane chrome and title-bar integration in GPUI, moved only top-mode Settings into the three-dot menu, and preserved the sidebar-mode Settings button.
- Removed the shell-injected `fmt` action and aligned the expanded sidebar toggle with the legacy shell's softer selected surface.
- Restored the README Star History chart through [#49](https://github.com/Kuddev/nebula/pull/49).
## 中文
### 重点更新
- 水平标题栏标签页支持选择、拖拽排序、停靠、创建分屏与水平自动滚动。顶部模式的设置入口已收进三个点菜单,首个标签与终端/powerline 左边缘严格对齐;侧边栏模式不变。
- Runtime 新增强类型工作流编排、命名 agent/进程控制、真实退出码、pane 生命周期事件与事务式托管 agent worktree。
- 补全与文件树会跟随每个 pane 的真实本地、WSL 或 SSH 文件系统上下文。
- 本版处理了 Issue #39、#43、#44、#48 对应的驻留进程二次启动、搜狗输入法、WSL 默认 shell 与条件式 Ctrl+C 复制问题。下方保留明确定位,Issue 暂不自动关闭,等待用户实机验证。
### 新增
- 新增 `nebula ctl orchestrate` 强类型单请求工作流:本地确定性步骤受步数、字节上限与就绪超时约束,并支持按工作流配置 `stop`/`continue` 失败行为。
- Runtime 契约新增命名 agent 控制、进程/控制键 API、真实命令退出码与 pane 生命周期事件。
- 新增隔离、事务式的托管 agent worktree 创建,保留稳定的分支/路径身份,并按可确认的失败边界回滚。
- ZIP 与安装器新增带版本的 Runtime schema、控制 API 文档和 `nebula-runtime` Skill。
- 新增水平标题栏标签布局,以及拖拽排序、停靠/分屏目标和拖拽/选择自动滚动。
- GPUI 界面新增 SVN 工作副本识别、仓库状态与操作工作流。
- 旧界面和 GPUI 界面都新增仅在 SSH 连接失败后出现的“重试”按钮,位置紧邻“关闭”左侧;重试只会在原位原子替换失败的 pane。
### 修复
- 修复已有驻留实例时第二次启动 Nebula 会静默消失的问题。启动请求现在会交给驻留实例,由它创建并聚焦所需标签/窗口。对应 [#39](https://github.com/Kuddev/nebula/issues/39)。
- 修复普通字母与空格绕过 Windows text-input 路径的问题,搜狗等输入法现在可以正常确认组合文本。对应 [#43](https://github.com/Kuddev/nebula/issues/43)。
- 修复 WSL 启动时强制使用 Bash、忽略来宾账号 `/etc/passwd` 默认 shell 的问题。对应 [#44](https://github.com/Kuddev/nebula/issues/44)。
- 修复没有选区时 Ctrl+C 被复制动作吞掉,以及旧选区导致反复复制的问题。无选区时 Ctrl+C 会传给 PTY;明确复制后会在下一个按键事件前清除选区。对应 [#48](https://github.com/Kuddev/nebula/issues/48)。
- 修复旧格式 `user@host:port` 让 Windows `ssh -G` 配置探测报解析错误 `11001`。只有探测目标会规范化为 `ssh://user@host:port`,实际连接目标保持不变。
- 修复 Codex 把 Shift+Enter 当作普通 Enter:启用 ConPTY Win32 输入、跟踪 DECSET 9001,并编码相应的 Win32 按键记录。
- 修复运行时背景模糊开关无效,以及关闭托盘后窗口可能继续隐藏的同源问题。
- 修复不透明度滑块每次拖动事件都重建字体、终端色表、主题、壁纸纹理与 DWM 状态的问题。
- 修复 WSL 冷启动/超时被渲染成空目录的问题;切换标签、pane 或手动导航后,Files 面板会继续跟随当前本地/WSL/SSH pane。
- 修复从三个点菜单启动或关闭 Powerline 的 PowerShell 在第一次交互前缺少 OSC 命令状态的问题。
- 修复备用 PowerShell profile 启动路径缺少 Nebula 命令补全的问题。
- 修复签入的 bash、fish、zsh 补全脚本缺少 `ctl orchestrate`、`--gpui` 与 `--legacy-shell` 的问题。
- 修复安装器兜底版本与数字文件版本没有跟随应用版本的问题。
### 改进
- 补全请求现在通过每个 pane 自己的本地、WSL 或 SSH 文件系统提供器执行。
- WSL 文件树会把多个起点合并成一次来宾 `find`,延长冷启动预算,并以事件驱动刷新代替每四秒轮询扫描。
- 按 shell 家族选择注入:PowerShell 保留完整集成,cmd 使用兼容的最小状态路径,Nushell 保留原生补全,其他 shell 使用受支持的 OSC fallback。
- 稳定 Runtime 传输与发现逻辑,并在 agent 控制路径中明确维护 pane/window 所属关系。
- 改进混合 DPI 拖动:原生移动处理与最终 DPI/尺寸提交分离,中间更新合并执行。
- 对齐 GPUI 分屏边框与标题栏整合;只移动顶部模式的设置入口,侧边栏模式设置按钮保持不变。
- 移除 shell 注入的 `fmt` 动作,展开的侧栏切换按钮改用旧界面更柔和的选中色。
- 通过 [#49](https://github.com/Kuddev/nebula/pull/49) 恢复 README Star History 图表。
## Issue status / Issue 状态
| Issue | Status in 1.2.0 / 1.2.0 状态 | Code location / 代码定位 |
| --- | --- | --- |
| [#39](https://github.com/Kuddev/nebula/issues/39) | Addressed; awaiting user verification / 已处理,等待用户验证 | Resident second-launch handoff / 驻留实例二次启动交接: `nebula_app/src/main.rs` |
| [#43](https://github.com/Kuddev/nebula/issues/43) | Addressed; awaiting user verification / 已处理,等待用户验证 | GPUI IME/text-input routing / GPUI 输入法与文本输入路由: `nebula_app/src/gpui_shell/terminal/keymap.rs` |
| [#44](https://github.com/Kuddev/nebula/issues/44) | Addressed; awaiting user verification / 已处理,等待用户验证 | WSL guest default-shell launch / WSL 来宾默认 shell 启动: `nebula_app/src/shell_detect.rs` |
| [#48](https://github.com/Kuddev/nebula/issues/48) | Addressed; awaiting user verification / 已处理,等待用户验证 | Conditional Copy and selection clearing / 条件复制与选区清理: `nebula_app/src/gpui_shell/workspace.rs`, `nebula_app/src/gpui_shell/terminal/view.rs` |
| [#45](https://github.com/Kuddev/nebula/issues/45), [#50](https://github.com/Kuddev/nebula/issues/50) | Known open / 已知未解决 | SSH TUI rendering and disconnects after an established session / SSH TUI 渲染与已连接会话自动断开 |
| [#46](https://github.com/Kuddev/nebula/issues/46) | Known open / 已知未解决 | Completion popup Enter behavior / 补全弹窗 Enter 行为 |
The new `11001` probe normalization and failure Retry button do not claim to resolve the established-session disconnect or SSH TUI rendering reports in #45/#50. Issues not listed above retain their current GitHub state.
本版的 `11001` 探测规范化和失败重试按钮不代表已经解决 #45/#50 中已建立会话后的自动断连或 SSH TUI 渲染问题。上表未列出的 Issue 保持其当前 GitHub 状态。
## Contributors / 贡献者
- [@FaintFlower](https://github.com/FaintFlower) restored the README Star History chart in [#49](https://github.com/Kuddev/nebula/pull/49).
- [@FaintFlower](https://github.com/FaintFlower) 在 [#49](https://github.com/Kuddev/nebula/pull/49) 中恢复了 README Star History 图表。
## Reporting issues / 反馈问题
[Issues → New issue](https://github.com/Kuddev/nebula/issues/new/choose) — include the Nebula version, shell type (local/WSL/SSH), reproduction steps, and relevant logs. For the four addressed Issues above, please report whether the original reproduction now passes before the Issue is closed.
欢迎通过 [Issues → New issue](https://github.com/Kuddev/nebula/issues/new/choose) 反馈,并附上 Nebula 版本、shell 类型(本地/WSL/SSH)、复现步骤与相关日志。对于上面四个已处理 Issue,请先反馈原复现步骤是否通过,再决定是否关闭。
## Downloads and SHA256 / 下载与 SHA256
- `NebulaTerminal-v1.2.0-windows-x64.zip`: `SHA256_PENDING`
- `NebulaTerminal-1.2.0-windows-x64-setup.exe`: `SHA256_PENDING`
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "nebula-completions"
version = "1.1.0"
version = "1.2.0"
edition.workspace = true
[features]
+5 -5
View File
@@ -1,6 +1,6 @@
[package]
name = "nebula"
version = "1.1.0"
version = "1.2.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.1.0"
version = "1.2.0"
[dependencies.nebula_config_derive]
path = "../nebula_config_derive"
version = "1.1.0"
version = "1.2.0"
[dependencies.nebula_config]
path = "../nebula_config"
version = "1.1.0"
version = "1.2.0"
# 可选:GPUI UI 层(feature = "gpui-shell",模块 src/gpui_shell/)。
# gpui 与 gpui-component 成对锁定:0.5.1 编译在 gpui 0.2.2 上;两者由根
@@ -59,7 +59,7 @@ optional = true
[dependencies.nebula-completions]
path = "../nebula-completions"
version = "1.1.0"
version = "1.2.0"
[dependencies]
ahash = { version = "0.8.6", features = ["no-rng"] }
+2 -2
View File
@@ -1,6 +1,6 @@
[package]
name = "nebula_config"
version = "1.1.0"
version = "1.2.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.1.0", path = "../nebula_config_derive" }
nebula_config_derive = { version = "1.2.0", path = "../nebula_config_derive" }
serde = { version = "1.0.163", features = ["derive"] }
+2 -2
View File
@@ -1,6 +1,6 @@
[package]
name = "nebula_config_derive"
version = "1.1.0"
version = "1.2.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.1.0"
version = "1.2.0"
[dev-dependencies]
log = "0.4.11"
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "nebula-settings"
version = "1.1.0"
version = "1.2.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
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "nebula-split"
version = "1.1.0"
version = "1.2.0"
license = "GPL-3.0-or-later"
description = "Shared split-pane rules: layout tree, geometry, divider drag and directional focus"
publish = false
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "nebula_terminal"
version = "1.1.0"
version = "1.2.0"
license = "GPL-3.0-or-later"
description = "Nebula terminal emulation core"
readme = "../README.md"
+2 -2
View File
@@ -1,9 +1,9 @@
#ifndef AppVersion
#define AppVersion "1.1.0"
#define AppVersion "1.2.0"
#endif
#ifndef NumericVersion
#define NumericVersion "1.1.0.0"
#define NumericVersion "1.2.0.0"
#endif
#ifndef Configuration