Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
89 changes: 89 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,95 @@ Every release entry is provided in English and Simplified Chinese.

每个版本条目均同时提供英文和简体中文说明。

## 2.1.2 - 2026-10-07

Installation candidate. Packages are built from one recorded source commit; publication as a GitHub Release is a separate step.

安装候选版本。配套安装包固定从同一源码提交构建;发布 GitHub Release 是独立步骤。

### English

#### Added

- Added pane-scoped local SSH port forwarding, with bounded connections and cleanup when the owning session exits.
- Added a static Windows administrator shield before the program/AI icon and tab name. The shield matches the task icon size and includes a hover description; SSH and WSL panes are not marked as local Windows administrator sessions. Addresses [#436](https://github.com/Kuddev/pebrel/issues/436).
- Added wallpaper controls and live preview for custom themes, plus portable ZIP import/export for image themes from the theme editor and command line.
- Added Windows video/GIF backgrounds and explicitly enabled WGSL background and terminal effects, with user-controlled effect ordering and activation.
- Added a matching offline relay installer archive and installation instructions alongside the Android package.

#### Fixed

- Fixed WSL editor queries being lost in Win32 input mode and completion menus disappearing during background directory refresh; valid candidates remain selectable while the same input is refreshed.
- Fixed Android remote-terminal swipes stopping at the current picture instead of reaching the desktop terminal. Authorized scrolling now follows the desktop's mouse, alternate-screen and scrollback behavior, and the phone reads the resulting viewport. Both phone and desktop require this version; phone-only reflow remains a local reading mode.
- Fixed relay deployment omitting the private-key reader used by ordinary SSH connections. Key passphrases and unencrypted keys use the appropriate input rules, and a key-authenticated host can be added directly from relay installation.
- Fixed configured startup directories being ignored on cold starts and when opening another window in a resident application.
- Fixed tab duplication losing nested split layouts. Preserved each WSL pane's distribution, user, arguments and guest directory when creating related panes or tabs.
- Fixed saved commands being omitted from encrypted backups and stale command lists remaining after restoration.
- Fixed leaving a Python virtual environment failing to restore the original PowerShell prompt.
- Fixed streamed emoji sequences allocating inconsistent terminal cells while keeping composition state bounded.
- Fixed closing the last tab terminating a workspace that should remain resident in the background.
- Fixed the theme preview disappearing when scrolling theme choices, backup-provider content clipping in narrow layouts, and the terminal paste menu's missing icon.
- Fixed unchanged managed hook configuration being rewritten, and improved native session identification when the active conversation directory is reached through symbolic links.

#### Improved

- Improved completion at the actual editor caret for Git arguments, remotes, branches and workspace scripts, using the selected local, WSL or SSH execution environment rather than unrelated host metadata.
- Kept mobile scroll acknowledgements compact instead of rebuilding a full window/tab snapshot for every wheel event. Existing frame-size, input-queue and no-replay limits remain in effect.

### 中文

#### 新增

- 新增:与窗格会话绑定的 SSH 本地端口转发,限制并发连接,并在所属会话退出时清理。
- 新增:Windows 管理员盾牌置于程序/AI 图标与标签名之前,与任务图标同尺寸,并提供悬停说明;SSH 与 WSL 窗格不标记为本机 Windows 管理员会话。对应 [#436](https://github.com/Kuddev/pebrel/issues/436)。
- 新增:自定义主题的壁纸设置与即时预览,以及主题编辑器和命令行中的图片主题 ZIP 导入、导出。
- 新增:Windows 视频/GIF 背景,以及需要显式开启的 WGSL 背景与终端效果;效果顺序及是否启用均由用户控制。
- 新增:随 Android 安装包提供同版本离线中转安装压缩包与安装指引。

#### 修复

- 修复:WSL 在 Win32 输入模式下丢失编辑器查询,以及后台目录刷新导致补齐菜单消失的问题;同一输入刷新期间,已有效的候选仍可选择。
- 修复:Android 远程终端滑动停留在当前画面,没有传到桌面终端的问题。授权后的滚动沿用桌面的鼠标接管、备用屏与历史回滚行为,手机显示滚动后的视口。手机和桌面均需更新至本版本;手机重排阅读模式仍使用本地滚动。
- 修复:中转部署遗漏普通 SSH 连接使用的私钥读取器。密钥口令和未加密私钥采用对应的输入规则,并可直接在中转安装页面添加密钥认证主机。
- 修复:冷启动以及应用驻留后再次开窗时忽略指定启动目录的问题。
- 修复:复制标签丢失嵌套分屏布局的问题;创建相关窗格或标签时保留各 WSL 窗格的发行版、用户、参数与来宾目录。
- 修复:加密备份遗漏保存命令,以及恢复后命令列表未及时更新的问题。
- 修复:退出 Python 虚拟环境后未恢复原 PowerShell 提示符的问题。
- 修复:流式组合 emoji 的终端格分配不一致问题,同时保持组合状态的内存边界。
- 修复:关闭最后一个标签时,原本应后台驻留的工作区被结束的问题。
- 修复:滚动主题列表时预览消失、窄布局中的备份服务内容裁切,以及终端粘贴菜单缺少图标的问题。
- 修复:未变化的托管 hook 配置被重复改写;改进通过符号链接访问活动会话目录时的原生会话识别。

#### 改进

- 改进:依据实际编辑缓冲与光标位置补全 Git 参数、远端、分支及工作区脚本,使用选定的本地、WSL 或 SSH 执行环境,而非无关的宿主元数据。
- 改进:手机滚轮回执保持精简,不再为每次滑动重建整窗和标签状态快照;保留既有画面大小、输入队列及不重放限制。

### Contributors

| Contributor | Contributions |
| --- | --- |
| [<img src="https://avatars.githubusercontent.com/u/140129782?u=febdc34cca0b41f2d017adfbe7e59b92505bcfe6&v=4" width="48" height="48" alt="WilliamWang1721" /><br />WilliamWang1721](https://github.com/WilliamWang1721) | SSH forwarding, administrator indicators, terminal and workspace fixes ([#280](https://github.com/Kuddev/pebrel/pull/280), [#449](https://github.com/Kuddev/pebrel/pull/449), [#451](https://github.com/Kuddev/pebrel/pull/451), [#453](https://github.com/Kuddev/pebrel/pull/453), [#455](https://github.com/Kuddev/pebrel/pull/455), [#448](https://github.com/Kuddev/pebrel/pull/448), [#446](https://github.com/Kuddev/pebrel/pull/446), [#443](https://github.com/Kuddev/pebrel/pull/443)) |
| [<img src="https://avatars.githubusercontent.com/u/40252940?v=4" width="48" height="48" alt="MomentDerek" /><br />MomentDerek](https://github.com/MomentDerek) | WSL pane launch identity and guest-directory preservation ([#351](https://github.com/Kuddev/pebrel/pull/351)) |
| [<img src="https://avatars.githubusercontent.com/u/112920194?v=4" width="48" height="48" alt="azzliang6" /><br />azzliang6](https://github.com/azzliang6) | Configured cold-start directory ([#485](https://github.com/Kuddev/pebrel/pull/485)) |
| [<img src="https://avatars.githubusercontent.com/u/292709043?v=4" width="48" height="48" alt="Kuddev" /><br />Kuddev](https://github.com/Kuddev) | Mobile scrolling, relay deployment, completion, theme packages and release integration ([#504](https://github.com/Kuddev/pebrel/pull/504), [#498](https://github.com/Kuddev/pebrel/pull/498), [#488](https://github.com/Kuddev/pebrel/pull/488), [#490](https://github.com/Kuddev/pebrel/pull/490), [#489](https://github.com/Kuddev/pebrel/pull/489), [#497](https://github.com/Kuddev/pebrel/pull/497), [#492](https://github.com/Kuddev/pebrel/pull/492), [#491](https://github.com/Kuddev/pebrel/pull/491), [#465](https://github.com/Kuddev/pebrel/pull/465), [#466](https://github.com/Kuddev/pebrel/pull/466), [#467](https://github.com/Kuddev/pebrel/pull/467), [#468](https://github.com/Kuddev/pebrel/pull/468), [#469](https://github.com/Kuddev/pebrel/pull/469), [#473](https://github.com/Kuddev/pebrel/pull/473), [#437](https://github.com/Kuddev/pebrel/pull/437), [#438](https://github.com/Kuddev/pebrel/pull/438), [#440](https://github.com/Kuddev/pebrel/pull/440), [#441](https://github.com/Kuddev/pebrel/pull/441)) |

---

**SHA256**

- `Pebrel-v2.1.2-linux-x64-preview.AppImage`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-linux-x64-preview.deb`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-linux-x64-preview.tar.gz`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-macos-arm64-preview.dmg`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-macos-x64-preview.dmg`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-windows-x64.zip`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-windows-x64-setup.exe`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-windows-arm64.zip`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-windows-arm64-setup.exe`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-android-universal-preview.apk`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-relay-manual.tar.gz`: `PENDING FINAL BUILD`

## 2.1.1 - 2026-10-01

### English
Expand Down
14 changes: 7 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

88 changes: 88 additions & 0 deletions docs/release-notes/v2.1.2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# Pebrel 2.1.2

Installation candidate. Packages are built from one recorded source commit; publication as a GitHub Release is a separate step.

安装候选版本。配套安装包固定从同一源码提交构建;发布 GitHub Release 是独立步骤。

## English

### Added

- Added pane-scoped local SSH port forwarding, with bounded connections and cleanup when the owning session exits.
- Added a static Windows administrator shield before the program/AI icon and tab name. The shield matches the task icon size and includes a hover description; SSH and WSL panes are not marked as local Windows administrator sessions. Addresses [#436](https://github.com/Kuddev/pebrel/issues/436).
- Added wallpaper controls and live preview for custom themes, plus portable ZIP import/export for image themes from the theme editor and command line.
- Added Windows video/GIF backgrounds and explicitly enabled WGSL background and terminal effects, with user-controlled effect ordering and activation.
- Added a matching offline relay installer archive and installation instructions alongside the Android package.

### Fixed

- Fixed WSL editor queries being lost in Win32 input mode and completion menus disappearing during background directory refresh; valid candidates remain selectable while the same input is refreshed.
- Fixed Android remote-terminal swipes stopping at the current picture instead of reaching the desktop terminal. Authorized scrolling now follows the desktop's mouse, alternate-screen and scrollback behavior, and the phone reads the resulting viewport. Both phone and desktop require this version; phone-only reflow remains a local reading mode.
- Fixed relay deployment omitting the private-key reader used by ordinary SSH connections. Key passphrases and unencrypted keys use the appropriate input rules, and a key-authenticated host can be added directly from relay installation.
- Fixed configured startup directories being ignored on cold starts and when opening another window in a resident application.
- Fixed tab duplication losing nested split layouts. Preserved each WSL pane's distribution, user, arguments and guest directory when creating related panes or tabs.
- Fixed saved commands being omitted from encrypted backups and stale command lists remaining after restoration.
- Fixed leaving a Python virtual environment failing to restore the original PowerShell prompt.
- Fixed streamed emoji sequences allocating inconsistent terminal cells while keeping composition state bounded.
- Fixed closing the last tab terminating a workspace that should remain resident in the background.
- Fixed the theme preview disappearing when scrolling theme choices, backup-provider content clipping in narrow layouts, and the terminal paste menu's missing icon.
- Fixed unchanged managed hook configuration being rewritten, and improved native session identification when the active conversation directory is reached through symbolic links.

### Improved

- Improved completion at the actual editor caret for Git arguments, remotes, branches and workspace scripts, using the selected local, WSL or SSH execution environment rather than unrelated host metadata.
- Kept mobile scroll acknowledgements compact instead of rebuilding a full window/tab snapshot for every wheel event. Existing frame-size, input-queue and no-replay limits remain in effect.

## 中文

### 新增

- 新增:与窗格会话绑定的 SSH 本地端口转发,限制并发连接,并在所属会话退出时清理。
- 新增:Windows 管理员盾牌置于程序/AI 图标与标签名之前,与任务图标同尺寸,并提供悬停说明;SSH 与 WSL 窗格不标记为本机 Windows 管理员会话。对应 [#436](https://github.com/Kuddev/pebrel/issues/436)。
- 新增:自定义主题的壁纸设置与即时预览,以及主题编辑器和命令行中的图片主题 ZIP 导入、导出。
- 新增:Windows 视频/GIF 背景,以及需要显式开启的 WGSL 背景与终端效果;效果顺序及是否启用均由用户控制。
- 新增:随 Android 安装包提供同版本离线中转安装压缩包与安装指引。

### 修复

- 修复:WSL 在 Win32 输入模式下丢失编辑器查询,以及后台目录刷新导致补齐菜单消失的问题;同一输入刷新期间,已有效的候选仍可选择。
- 修复:Android 远程终端滑动停留在当前画面,没有传到桌面终端的问题。授权后的滚动沿用桌面的鼠标接管、备用屏与历史回滚行为,手机显示滚动后的视口。手机和桌面均需更新至本版本;手机重排阅读模式仍使用本地滚动。
- 修复:中转部署遗漏普通 SSH 连接使用的私钥读取器。密钥口令和未加密私钥采用对应的输入规则,并可直接在中转安装页面添加密钥认证主机。
- 修复:冷启动以及应用驻留后再次开窗时忽略指定启动目录的问题。
- 修复:复制标签丢失嵌套分屏布局的问题;创建相关窗格或标签时保留各 WSL 窗格的发行版、用户、参数与来宾目录。
- 修复:加密备份遗漏保存命令,以及恢复后命令列表未及时更新的问题。
- 修复:退出 Python 虚拟环境后未恢复原 PowerShell 提示符的问题。
- 修复:流式组合 emoji 的终端格分配不一致问题,同时保持组合状态的内存边界。
- 修复:关闭最后一个标签时,原本应后台驻留的工作区被结束的问题。
- 修复:滚动主题列表时预览消失、窄布局中的备份服务内容裁切,以及终端粘贴菜单缺少图标的问题。
- 修复:未变化的托管 hook 配置被重复改写;改进通过符号链接访问活动会话目录时的原生会话识别。

### 改进

- 改进:依据实际编辑缓冲与光标位置补全 Git 参数、远端、分支及工作区脚本,使用选定的本地、WSL 或 SSH 执行环境,而非无关的宿主元数据。
- 改进:手机滚轮回执保持精简,不再为每次滑动重建整窗和标签状态快照;保留既有画面大小、输入队列及不重放限制。

## Contributors

| Contributor | Contributions |
| --- | --- |
| [<img src="https://avatars.githubusercontent.com/u/140129782?u=febdc34cca0b41f2d017adfbe7e59b92505bcfe6&v=4" width="48" height="48" alt="WilliamWang1721" /><br />WilliamWang1721](https://github.com/WilliamWang1721) | SSH forwarding, administrator indicators, terminal and workspace fixes ([#280](https://github.com/Kuddev/pebrel/pull/280), [#449](https://github.com/Kuddev/pebrel/pull/449), [#451](https://github.com/Kuddev/pebrel/pull/451), [#453](https://github.com/Kuddev/pebrel/pull/453), [#455](https://github.com/Kuddev/pebrel/pull/455), [#448](https://github.com/Kuddev/pebrel/pull/448), [#446](https://github.com/Kuddev/pebrel/pull/446), [#443](https://github.com/Kuddev/pebrel/pull/443)) |
| [<img src="https://avatars.githubusercontent.com/u/40252940?v=4" width="48" height="48" alt="MomentDerek" /><br />MomentDerek](https://github.com/MomentDerek) | WSL pane launch identity and guest-directory preservation ([#351](https://github.com/Kuddev/pebrel/pull/351)) |
| [<img src="https://avatars.githubusercontent.com/u/112920194?v=4" width="48" height="48" alt="azzliang6" /><br />azzliang6](https://github.com/azzliang6) | Configured cold-start directory ([#485](https://github.com/Kuddev/pebrel/pull/485)) |
| [<img src="https://avatars.githubusercontent.com/u/292709043?v=4" width="48" height="48" alt="Kuddev" /><br />Kuddev](https://github.com/Kuddev) | Mobile scrolling, relay deployment, completion, theme packages and release integration ([#504](https://github.com/Kuddev/pebrel/pull/504), [#498](https://github.com/Kuddev/pebrel/pull/498), [#488](https://github.com/Kuddev/pebrel/pull/488), [#490](https://github.com/Kuddev/pebrel/pull/490), [#489](https://github.com/Kuddev/pebrel/pull/489), [#497](https://github.com/Kuddev/pebrel/pull/497), [#492](https://github.com/Kuddev/pebrel/pull/492), [#491](https://github.com/Kuddev/pebrel/pull/491), [#465](https://github.com/Kuddev/pebrel/pull/465), [#466](https://github.com/Kuddev/pebrel/pull/466), [#467](https://github.com/Kuddev/pebrel/pull/467), [#468](https://github.com/Kuddev/pebrel/pull/468), [#469](https://github.com/Kuddev/pebrel/pull/469), [#473](https://github.com/Kuddev/pebrel/pull/473), [#437](https://github.com/Kuddev/pebrel/pull/437), [#438](https://github.com/Kuddev/pebrel/pull/438), [#440](https://github.com/Kuddev/pebrel/pull/440), [#441](https://github.com/Kuddev/pebrel/pull/441)) |

---

**SHA256**

- `Pebrel-v2.1.2-linux-x64-preview.AppImage`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-linux-x64-preview.deb`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-linux-x64-preview.tar.gz`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-macos-arm64-preview.dmg`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-macos-x64-preview.dmg`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-windows-x64.zip`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-windows-x64-setup.exe`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-windows-arm64.zip`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-windows-arm64-setup.exe`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-android-universal-preview.apk`: `PENDING FINAL BUILD`
- `Pebrel-v2.1.2-relay-manual.tar.gz`: `PENDING FINAL BUILD`
4 changes: 2 additions & 2 deletions mobile/android/app/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ android {
applicationId = "io.github.kuddev.pebrel.mobile"
minSdk = 26
targetSdk = 35
versionCode = 20
versionName = "2.1.1-preview"
versionCode = 21
versionName = "2.1.2-preview"
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
ndk { abiFilters += listOf("arm64-v8a", "x86_64") }
}
Expand Down
Loading
Loading