diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 70cf187..b3a9f44 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -26,7 +26,7 @@ on:
type: string
default: ""
validated_run:
- description: Existing stable run whose Windows native tests passed for source_commit
+ description: Existing stable or Full native tests run whose Windows tests passed for source_commit
type: string
default: ""
macos_signing:
@@ -119,15 +119,6 @@ jobs:
bash -n scripts/package-linux.sh scripts/package-macos.sh
python3 -m py_compile scripts/stable_release.py scripts/preview_release.py
- native-tests:
- name: Native tests
- permissions:
- contents: read
- actions: read
- if: ${{ !inputs.windows_only }}
- needs: prepare
- uses: ./.github/workflows/linux-lua.yml
-
linux:
name: Linux x86_64 stable package
if: ${{ !inputs.windows_only }}
@@ -543,10 +534,89 @@ jobs:
if-no-files-found: warn
retention-days: 14
+ windows-arm64:
+ name: Windows ARM64 stable portable package
+ if: ${{ !inputs.windows_only }}
+ needs: prepare
+ runs-on: windows-11-arm
+ timeout-minutes: 120
+ env:
+ PACKAGE_VERSION: ${{ needs.prepare.outputs.version }}
+ steps:
+ - uses: actions/checkout@v4
+ - uses: actions/setup-python@v5
+ with:
+ python-version: "3.13"
+ - uses: dtolnay/rust-toolchain@stable
+ with:
+ toolchain: ${{ env.RUST_TOOLCHAIN }}
+ - name: Require native Windows ARM64
+ shell: pwsh
+ run: |
+ if ([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture -ne 'Arm64') {
+ throw 'ARM64 packaging requires an ARM64 host.'
+ }
+ $compiler = rustc -vV
+ if ($LASTEXITCODE -ne 0 -or $compiler -notcontains 'host: aarch64-pc-windows-msvc') {
+ throw 'ARM64 packaging requires a native ARM64 compiler.'
+ }
+ - uses: ./.github/actions/rust-cache
+ id: rust-cache
+ with:
+ key: release
+ target: target/release
+ - name: Prepare and verify pinned ARM64 console runtime
+ shell: pwsh
+ run: |
+ ./scripts/prepare-windows-runtime.ps1 -Destination assets/windows/conhost -Architecture arm64
+ ./scripts/tests/windows-runtime.tests.ps1 -Architecture arm64
+ ./scripts/tests/windows-package-architecture.tests.ps1
+ - name: Build native ARM64 application and hook
+ shell: pwsh
+ run: ./scripts/build-windows-product.ps1 -Configuration release -TargetDirectory target
+ - name: Save compiled workload
+ if: ${{ always() && steps.rust-cache.outcome == 'success' && steps.rust-cache.outputs.cache-hit != 'true' }}
+ uses: actions/cache/save@v4
+ with:
+ path: target/release
+ key: ${{ steps.rust-cache.outputs.cache-key }}
+ - name: Package native ARM64 ZIP
+ shell: pwsh
+ run: ./scripts/package-release.ps1 -Version $env:PACKAGE_VERSION -Architecture arm64 -OutputDirectory dist -TargetDirectory target
+ - name: Keep Windows PowerShell alive on the ARM64 runner image
+ shell: pwsh
+ run: ./scripts/conformance/windows_arm64_module_path.ps1
+ - name: Run ARM64 Windows conformance
+ shell: pwsh
+ env:
+ NEBULA_RESIZE_TRACE: "1"
+ NEBULA_BOOT_TRACE: "1"
+ run: |
+ python scripts/conformance/windows_standard_user.py scripts/conformance/run.py --app target/release/pebrel.exe --platform windows-aarch64 --output dist/conformance/windows-arm64-report.json
+ exit $LASTEXITCODE
+ - name: Upload Windows ARM64 stable asset
+ if: always()
+ uses: actions/upload-artifact@v4
+ with:
+ compression-level: 0
+ name: stable-package-windows-arm64
+ path: dist/Pebrel-v${{ needs.prepare.outputs.version }}-windows-arm64.zip
+ if-no-files-found: error
+ retention-days: 14
+ - name: Upload Windows ARM64 conformance evidence
+ if: always()
+ uses: actions/upload-artifact@v4
+ with:
+ compression-level: 0
+ name: stable-evidence-windows-arm64
+ path: dist/conformance
+ if-no-files-found: warn
+ retention-days: 14
+
aggregate:
name: Verify stable assets and upload complete set
if: ${{ !inputs.windows_only }}
- needs: [prepare, native-tests, linux, macos, windows]
+ needs: [prepare, linux, macos, windows, windows-arm64]
runs-on: ubuntu-22.04
env:
PACKAGE_VERSION: ${{ needs.prepare.outputs.version }}
@@ -573,7 +643,7 @@ jobs:
import os
from pathlib import Path
from scripts.preview_release import validate_evidence
- validate_evidence(Path("stable-evidence"), os.environ["SOURCE_COMMIT"])
+ validate_evidence(Path("stable-evidence"), os.environ["SOURCE_COMMIT"], windows_arm64=True)
PY
python3 scripts/stable_release.py release-dist \
--version "$PACKAGE_VERSION" \
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 57cb33d..7fd25da 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,101 +4,129 @@ Every release entry is provided in English and Simplified Chinese.
每个版本条目均同时提供英文和简体中文说明。
-## 1.9.0 - 2026-09-21
+## 1.9.0 - 2026-09-22
### English
#### Added
-- Added live Markdown editing: focus a paragraph or inline expression to edit its source while retaining the document view, selection and undo history.
-- Added Kimi Code recognition, session commands and managed notification hooks.
-- Added cloud backup controls with saved preferences, connection feedback and access to configuration backups.
-- Added a persistent font-ligature setting that applies to open terminal sessions.
+- Added a native Windows ARM64 portable ZIP, alongside the Windows x64 installer and portable ZIP. ARM64 builds use a native runner and include matching ARM64 Hook and console runtime binaries.
+- Added Kimi Code recognition, native session commands and managed lifecycle hooks, including its icon and terminal activity states.
+- Added a dedicated Agents settings page for Claude Code, Codex, OpenCode, Cursor Agent, Kimi Code, Pi, Oh My Pi, GitHub Copilot and Grok. It shows detected CLI paths and actual Hook installation status beside each integration switch. Automatic Hook management is available on Windows.
+- Added configurable notification duration: keep the existing defaults, choose 5, 10, 30 or 90 seconds, or keep notifications visible until dismissed. The selected duration takes precedence over an Agent's default banner lifetime.
+- Added a persistent terminal font-ligature setting, enabled by default and applied to open sessions without restarting them. Addresses [#220](https://github.com/Kuddev/pebrel/issues/220).
+- Added a Sponsors page under Settings → Home → Project and support, introducing Fluxion AI with its sign-up link.
#### Fixed
- Fixed Codex cold restoration using a Hook group identifier instead of the native conversation identity. Saved sessions with an older or unrecognized transcript filename retain their existing valid conversation ID.
-- Windows local Codex sessions can recover their exact conversation ID and native path from the running process, including when a Hook identity is missing. Later lifecycle-only events retain the verified identity.
-- When Codex reports a missing saved conversation, recovery opens its native chooser, including from CMD. Failed restores also offer an explicit conversation choice in the tab menu.
-- Closing with unavailable AI session identities now offers saving known state and exiting; save failures and changed editor drafts still keep the application open.
-- Fixed file-editor selections and search matches blending into light and dark backgrounds. Ordinary text/code files now reveal the configured workspace background image, and the caret row follows the active theme.
-- Fixed copying the terminal working directory: menu and command-palette actions copy the directory reported by the shell, including guest paths, while normal selection copying retains the original text.
-- Fixed AI failure and cancellation events being presented as successful completion; Pi retry-aware outcomes and Claude failure events use the shared notification result handling.
-- Fixed WSL hook installation and event delivery using the distribution's own user configuration. Updated command completions include the distribution and user options.
-- Fixed inherited Ctrl+C suppression preventing interruption of CMD child commands, while keeping selection copying available.
-- Fixed native CMD command activity and multiline/pending-wrap input tracking.
-- Fixed application 256-color blocks being overwritten by terminal prompt colors. Explicit custom color overrides remain supported.
-- Fixed SSH automatic authentication ignoring the available system agent.
-- Fixed long Markdown outline headings overlapping neighboring rows.
-- Fixed Markdown caret placement for CJK and emoji, interrupted drag selections, heading layout shifts and code-language pickers extending beyond the window.
+- Fixed missing Windows local Codex identities by recovering the native conversation ID and file path from the running process. Later lifecycle-only events retain the verified identity.
+- Fixed dead-end Codex restoration when a saved conversation no longer exists: recovery opens the native conversation chooser, including from CMD, and the tab menu offers an explicit conversation choice.
+- Fixed the session crash-loop breaker counting a launch as failed while a restored AI conversation was still unconfirmed. Normal exits with a Codex conversation waiting at its startup prompts no longer quarantine the whole workspace after three launches, and the saved conversation target is retained for the next launch.
+- Fixed shutdown getting stuck when some AI identities cannot be collected. Users can save the known state and exit; save errors and subsequently changed editor drafts still keep the application open.
+- Fixed AI failures and cancellations appearing as successful completion. Claude failure events and Pi retry-aware outcomes now use the shared result handling.
+- Fixed notification replacements retaining an old result or expiry deadline. A refreshed pane result uses the selected duration, and an older timer cannot dismiss its replacement.
+- Fixed supported AI confirmation actions by checking that the request is still current and completing the required key-down/key-up sequence. Windows notification activation restores the corresponding application window.
+- Fixed WSL Hook installation and event delivery to use the distribution's own user configuration. Command completions include the distribution and user options.
+- Fixed inherited Ctrl+C suppression preventing interruption of CMD child commands, while preserving selection copying.
+- Fixed native CMD command activity detection, multiline input and echoed text at pending-wrap boundaries.
+- Fixed application 256-color blocks being overwritten by terminal prompt colors, while retaining explicit custom color overrides.
+- Fixed saved SSH hosts ignoring the available system SSH agent in automatic authentication mode.
+- Fixed terminal working-directory copying to use the path reported by the shell, including guest paths, while normal selection copying retains the original text.
+- Fixed terminal and answer-reader opening of supported local Markdown links, file URIs and relative paths. Paths containing spaces, Chinese text or parentheses resolve against the originating pane's directory; missing paths produce visible feedback. Addresses [#203](https://github.com/Kuddev/pebrel/issues/203).
+- Fixed file-editor selections and search matches blending into light and dark backgrounds. Plain-text and code editors reveal the configured workspace background, and the active line follows the theme.
+- Fixed long Markdown outline headings overlapping adjacent rows. Full titles remain available through tooltips and copying. Addresses [#184](https://github.com/Kuddev/pebrel/issues/184).
+- Fixed interrupted Markdown drags leaving a selection that continues to grow when the pointer moves without a pressed button.
+- Fixed code-language menus extending beyond narrow windows and kept their search field and keyboard activation usable.
+- Fixed SSH host icons appearing off-center because a font glyph's visible outline differs from its text advance.
+- Removed the duplicate title preview shown while dragging a tab.
#### Improved
-- Added direct responses for supported AI confirmation notifications, with stale-request checks before sending a response; Windows notification activation restores the corresponding application window.
-- Made notification duration configurable and preserved the selected duration when replacing a pane's result.
-- Reduced repeated Git/SVN drawer work by reusing repository snapshots and rendering visible rows.
-- Improved settings search, SSH connection cards and terminal file-link opening.
-- Made cloud-storage configuration compact, bounded provider and credential fields, and aligned file-panel controls.
-- Updated command-group navigation, ordering and add actions.
-- Added settings for enabling each supported Agent integration while retaining other managed and user-owned hook entries.
+- Markdown opens in read-only rendered mode. Text selection, copying, code copying and formula actions remain available; editing requires an explicit switch to source mode.
+- Code-block language selection remains available in the reader. It changes syntax highlighting without rewriting the Markdown, survives scrolling away and back, and leaves copied code unchanged.
+- Kept source-mode drafts when returning to the reader, while preventing undo/redo shortcuts from editing the document in read-only mode.
+- Bounded Markdown presentation work with virtual rows, visible-block image ownership and release of inactive document layouts. These changes reduce repeated work without imposing a machine-specific memory or speed promise.
+- Reused repository snapshots and rendered visible Git/SVN drawer rows to reduce repeated work in large repositories.
+- Centered the Agents page, enlarged all nine Agent marks using SVG assets, and separated CLI discovery from Hook installation status. Long paths remain accessible through tooltips.
+- Improved settings search, SSH connection cards and filters, file-panel control alignment, and command-group navigation, ordering and add actions.
+- Preserved other integrations and user-owned configuration when installing or removing a managed Agent Hook.
+- Temporarily hid the backup entry from the settings sidebar and search; cloud-backup controls are not exposed in this release.
-Windows packages include an installer and portable ZIP. Linux and macOS packages retain their Preview designation. This candidate is intended for installation testing; visual acceptance and live cold restoration with every external CLI remain separate from automated checks.
+Windows x64 includes an installer and portable ZIP; Windows ARM64 includes a native portable ZIP. The installer and in-app automatic installation remain x64-only. Linux x64 packages and macOS Apple Silicon/Intel DMGs retain their Preview designation. macOS requires version 14 or later. Molecular structure rendering remains disabled.
### 中文
#### 新增
-- 新增 Markdown 即时编辑:聚焦段落或行内表达式即可编辑对应源码,同时保留文档视图、选区和撤销历史。
-- 新增 Kimi Code 识别、会话命令和受管理的通知 Hook。
-- 新增云端备份入口,支持保存偏好、连接反馈和访问配置备份。
-- 新增可持久保存的字体连字设置,并可应用于已打开的终端会话。
+- 新增:Windows ARM64 原生便携 ZIP,与 Windows x64 安装器及便携 ZIP 一同提供。ARM64 使用原生运行器构建,并配套 ARM64 Hook 辅助程序与控制台运行时。
+- 新增:Kimi Code 识别、原生会话命令和受管理的生命周期 Hook,包含品牌图标及终端活动状态。
+- 新增:独立 Agents 设置页,覆盖 Claude Code、Codex、OpenCode、Cursor Agent、Kimi Code、Pi、Oh My Pi、GitHub Copilot 和 Grok。每项显示检测到的 CLI 路径,并在开关旁显示实际 Hook 安装状态;自动 Hook 管理适用于 Windows。
+- 新增:通知停留时长设置:保持既有默认值,或选择 5、10、30、90 秒以及手动关闭。用户选择的时长优先于 Agent 自带的横幅默认时长。
+- 新增:可持久保存的终端字体连字开关,默认开启,并可应用于已打开的会话,无需重启终端。对应 [#220](https://github.com/Kuddev/pebrel/issues/220)。
+- 新增:设置首页「项目与支持」中的赞助商页面,介绍赞助商 Fluxion AI 并提供注册链接。
#### 修复
-- 修复 Codex 冷恢复误用 Hook 分组标识而非原生对话身份的问题。旧快照中的会话文件名无法识别时,保留原有有效对话 ID。
-- Windows 本地 Codex 会话可从正在运行的进程找回准确的对话 ID 和原生文件路径,补足 Hook 身份缺失的情况;后续仅包含生命周期信息的事件会保留已核验身份。
-- Codex 报告保存的对话不存在时,包括 CMD 在内的恢复流程可打开原生会话选择器;恢复失败后,也可从标签页菜单主动选择对话。
-- AI 会话身份暂时无法取得时,关闭操作提供保存已知状态并退出的选择;保存失败或编辑器草稿发生变化时仍保持应用打开。
-- 修复文件编辑器选区与查找命中融入浅色、深色背景的问题;普通文本和代码文件可透出已配置的工作区背景图,光标所在行跟随当前主题。
-- 修复终端工作目录复制:菜单和命令面板复制 Shell 上报的目录,包括访客环境路径;普通选区复制保留原始文字。
-- 修复 AI 失败和取消事件被显示为成功完成的问题;Pi 重试后的结果及 Claude 失败事件统一进入通知结果处理。
-- 修复 WSL Hook 安装与事件传递,使用发行版自身的用户配置;命令补全同步包含发行版和用户选项。
-- 修复继承的 Ctrl+C 忽略状态导致 CMD 子命令无法中断的问题,同时保留选区复制。
-- 修复原生 CMD 命令活动、多行输入和等待折行边界的输入跟踪。
-- 修复应用的 256 色块被终端提示符颜色覆盖的问题,保留明确配置的自定义颜色覆盖。
-- 修复 SSH 自动认证忽略可用系统代理的问题。
-- 修复 Markdown 目录长标题与相邻行重叠的问题。
-- 修复 Markdown 中文与 emoji 的光标落点、中断拖动后残留选区、标题编辑时布局跳动以及代码语言菜单超出窗口的问题。
+- 修复:Codex 冷恢复误用 Hook 分组标识而非原生对话身份的问题。旧快照中的会话文件名无法识别时,保留原有有效对话 ID。
+- 修复:Windows 本地 Codex 身份缺失的问题,可从运行中的进程找回原生对话 ID 和文件路径;后续仅包含生命周期信息的事件会保留已核验身份。
+- 修复:保存的 Codex 对话不存在时恢复流程无法继续的问题:包括 CMD 在内,可打开原生会话选择器,标签菜单也提供主动选择对话的入口。
+- 修复:已恢复的 AI 对话尚未确认时,本次启动被会话断路器误计为失败的问题。Codex 对话停在启动提示上、正常退出三次后,不再把整个工作区隔离到 `session.crashed.json`;已保存的对话目标保留至下次启动。
+- 修复:部分 AI 身份无法取得时关闭流程卡住的问题。用户可以保存已知状态并退出;保存失败或编辑器草稿随后发生变化时仍保持应用打开。
+- 修复:AI 失败和取消事件被显示为成功完成的问题,Claude 失败事件及 Pi 重试后的结果统一进入通知结果处理。
+- 修复:通知替换后残留旧结果或旧到期时间的问题。新的窗格结果遵循选定时长,旧计时器不能关闭替换后的通知。
+- 修复:受支持 AI 确认动作:发送前检查请求仍然有效,并完成必要的按下、释放按键序列;Windows 通知激活时恢复对应应用窗口。
+- 修复:WSL Hook 安装与事件传递,使用发行版自身的用户配置;命令补全同步包含发行版和用户选项。
+- 修复:继承的 Ctrl+C 忽略状态导致 CMD 子命令无法中断的问题,同时保留选区复制。
+- 修复:原生 CMD 命令活动检测、多行输入以及等待折行边界的回显文本跟踪。
+- 修复:应用的 256 色块被终端提示符颜色覆盖的问题,保留明确配置的自定义颜色覆盖。
+- 修复:已保存 SSH 主机在自动认证时忽略可用系统 SSH 代理的问题。
+- 修复:终端工作目录复制,改为复制 Shell 上报的路径,包括访客环境路径;普通选区复制保留原始文字。
+- 修复:终端和回答阅读页打开受支持的本地 Markdown 链接、文件 URI 及相对路径的行为。含空格、中文或括号的路径按原窗格目录解析,路径缺失时提供可见反馈。对应 [#203](https://github.com/Kuddev/pebrel/issues/203)。
+- 修复:文件编辑器选区与查找命中融入浅色、深色背景的问题;普通文本和代码编辑器可透出已配置的工作区背景图,光标所在行跟随主题。
+- 修复:Markdown 目录长标题压住相邻行的问题,完整标题仍可通过悬停提示和复制取得。对应 [#184](https://github.com/Kuddev/pebrel/issues/184)。
+- 修复:Markdown 拖选被中断后,未按住鼠标移动仍继续扩大选区的问题。
+- 修复:代码语言菜单在窄窗口中越界的问题,并保持搜索框和键盘操作可用。
+- 修复:SSH 主机图标因字体可见轮廓与排版宽度不同而偏离中心的问题。
+- 修复:移除拖动标签时重复出现的标题预览。
#### 改进
-- 支持从部分 AI 确认通知直接回答,发送前检查请求是否过期;Windows 通知激活时恢复对应的应用窗口。
-- 支持配置通知停留时长,并在替换窗格结果时保留选定时长。
-- 复用仓库快照、仅渲染可见行,减少 Git/SVN 抽屉的重复工作。
-- 改进设置搜索、SSH 连接卡片和终端文件链接打开。
-- 收紧云存储配置布局,限制服务选择器和凭据输入宽度,并统一文件面板控件尺寸。
-- 更新命令分组导航、排序和新增操作的布局。
-- 新增各受支持 Agent 的集成开关,安装与移除时保留其他受管理及用户已有 Hook 项。
+- 改进:Markdown 默认以只读方式渲染,保留文字选择、复制、代码复制及公式操作;编辑需要显式切换到源码模式。
+- 改进:阅读模式仍可选择代码块语言,只改变语法高亮,不改写 Markdown;滚动离开再返回后保留选择,复制得到的代码内容不变。
+- 改进:从源码模式返回阅读页时保留草稿,同时阻止只读模式下的撤销、重做快捷键修改文档。
+- 改进:Markdown 使用虚拟列表、可见代码块和图片资源管理,并释放非活动文档的布局缓存,减少重复工作;不把单机结果写成固定的内存或速度承诺。
+- 改进:Git/SVN 抽屉复用仓库快照,仅渲染可见条目,减少大型仓库中的重复工作。
+- 改进:Agents 页面整体居中,九种 Agent 图标使用放大的 SVG 资源;CLI 是否存在与 Hook 是否安装分别展示,长路径可通过悬停提示查看。
+- 改进:设置搜索、SSH 连接卡片和筛选、文件面板控件对齐,以及命令分组的导航、排序和新增操作。
+- 改进:安装或移除受管理的 Agent Hook 时,保留其他集成及用户已有配置。
+- 改进:暂时隐藏设置侧栏和搜索中的备份入口,本版不开放云备份控件。
-Windows 提供安装器和 ZIP 便携包,Linux 和 macOS 包继续标记为 Preview。本候选用于安装测试;视觉验收和所有外部 CLI 的实际关窗恢复仍需单独验证。
+Windows x64 提供安装器和 ZIP 便携包,Windows ARM64 提供原生便携 ZIP;安装器和应用内自动安装仍仅支持 x64。Linux x64 包及 macOS Apple Silicon/Intel DMG 继续标记为 Preview。macOS 最低版本为 14。分子结构渲染仍处于禁用状态。
### Contributors
-
+
-- **[@Traveritas](https://github.com/Traveritas)** — Kimi Code integration. / Kimi Code 集成。([#197](https://github.com/Kuddev/pebrel/pull/197))
-- **[@galact-byte](https://github.com/galact-byte)** — CMD interrupts and activity, application colors and Pi notification outcomes. / CMD 中断与活动、应用配色及 Pi 通知结果。([#206](https://github.com/Kuddev/pebrel/pull/206), [#207](https://github.com/Kuddev/pebrel/pull/207), [#208](https://github.com/Kuddev/pebrel/pull/208), [#215](https://github.com/Kuddev/pebrel/pull/215), [#216](https://github.com/Kuddev/pebrel/pull/216))
-- **[@Kuddev](https://github.com/Kuddev)** — Desktop integration, notifications, restoration and editor fixes. / 桌面集成、通知、恢复及编辑器修复。([#221](https://github.com/Kuddev/pebrel/pull/221), [#225](https://github.com/Kuddev/pebrel/pull/225), [#227](https://github.com/Kuddev/pebrel/pull/227), [#231](https://github.com/Kuddev/pebrel/pull/231), [#232](https://github.com/Kuddev/pebrel/pull/232))
+- **[@Traveritas](https://github.com/Traveritas)** — Kimi Code hooks, recognition and branding. / Kimi Code Hook、识别和品牌图标。([#197](https://github.com/Kuddev/pebrel/pull/197))
+- **[@galact-byte](https://github.com/galact-byte)** — CMD interrupts and activity, terminal application colors and Pi notification outcomes. / CMD 中断与活动、终端应用配色及 Pi 通知结果。([#206](https://github.com/Kuddev/pebrel/pull/206), [#207](https://github.com/Kuddev/pebrel/pull/207), [#208](https://github.com/Kuddev/pebrel/pull/208), [#215](https://github.com/Kuddev/pebrel/pull/215), [#216](https://github.com/Kuddev/pebrel/pull/216))
+- **[@821869798](https://github.com/821869798)** — Markdown links and local file opening from terminals and the answer reader. / 终端及回答阅读页的 Markdown 链接和本地文件打开。([#204](https://github.com/Kuddev/pebrel/pull/204))
+- **[@tataraDM](https://github.com/tataraDM)** — Readable single-line Markdown outline headings. / 修复 Markdown 目录长标题挤压。([#191](https://github.com/Kuddev/pebrel/pull/191))
+- **[@Aschenbath](https://github.com/Aschenbath)** — Configurable notification duration and persistent notifications. / 可配置的通知停留时长和常驻通知。([#131](https://github.com/Kuddev/pebrel/pull/131))
+- **[@Kuddev](https://github.com/Kuddev)** — Desktop integration, actionable notifications, session restoration, Markdown reader, Agents UI, review and release integration. / 桌面整合、可操作通知、会话恢复、Markdown 阅读、Agents 界面、审核及发布整合。([#210](https://github.com/Kuddev/pebrel/pull/210), [#217](https://github.com/Kuddev/pebrel/pull/217), [#221](https://github.com/Kuddev/pebrel/pull/221), [#222](https://github.com/Kuddev/pebrel/pull/222), [#225](https://github.com/Kuddev/pebrel/pull/225), [#227](https://github.com/Kuddev/pebrel/pull/227), [#231](https://github.com/Kuddev/pebrel/pull/231), [#232](https://github.com/Kuddev/pebrel/pull/232))
+
+---
**SHA256**
-- `Pebrel-v1.9.0-linux-x64-preview.AppImage`: `PENDING FINAL BUILD`
-- `Pebrel-v1.9.0-linux-x64-preview.deb`: `PENDING FINAL BUILD`
-- `Pebrel-v1.9.0-linux-x64-preview.tar.gz`: `PENDING FINAL BUILD`
-- `Pebrel-v1.9.0-macos-arm64-preview.dmg`: `PENDING FINAL BUILD`
-- `Pebrel-v1.9.0-macos-x64-preview.dmg`: `PENDING FINAL BUILD`
-- `Pebrel-v1.9.0-windows-x64.zip`: `PENDING FINAL BUILD`
-- `Pebrel-v1.9.0-windows-x64-setup.exe`: `PENDING FINAL BUILD`
+- `Pebrel-v1.9.0-linux-x64-preview.AppImage`: `4da5ea590a82ab4f89dca14df1399e7c2cd27fa4fe308da6f0e95b8aa9ae7d22`
+- `Pebrel-v1.9.0-linux-x64-preview.deb`: `bb6fff964942b750a794f2ea148e851719430dfffd9bb086a13e2f1e67d87722`
+- `Pebrel-v1.9.0-linux-x64-preview.tar.gz`: `6526ed5f2f883bb5ca9600d2685c929056fbae9f2450259f34d65093a18deda6`
+- `Pebrel-v1.9.0-macos-arm64-preview.dmg`: `daf2c6c381fbdf84c33c132e9c6c247e9f9dc6e86292cc5be855e635e6cfa6f3`
+- `Pebrel-v1.9.0-macos-x64-preview.dmg`: `9f3f1465be9e1f3489be09ccf336d5bdc0a6ae40185062f677a6e857d47e1fe0`
+- `Pebrel-v1.9.0-windows-x64.zip`: `1c219946450c7d93993394fd6d40c6e234d77547c9b4a98106c0d33ada9c27f9`
+- `Pebrel-v1.9.0-windows-x64-setup.exe`: `52cefcdae9cd98035bcdd45944c020fc9acf9c2c497147ba337ed15069a07fe6`
+- `Pebrel-v1.9.0-windows-arm64.zip`: `e2d062089afb19ddb9e3d078cc7f460a1d67cb36d95400cebab837f9fabda092`
## 1.8.2 - 2026-09-17
diff --git a/README.md b/README.md
index 83acb9b..8fa89d0 100644
--- a/README.md
+++ b/README.md
@@ -27,6 +27,7 @@
+
+ Thanks to Fluxion AI for sponsoring this project! Fluxion AI is one entry point for accessing and managing the world's leading AI models. It serves individual developers, technical teams and enterprises with a unified API; dynamic multi-route scheduling improves availability, and model performance, response time and cost stay transparent. Depending on the model and route, API calls can cost 40%–98% less than official or benchmark prices. Sign up via this link to receive $3 in API credit.
+
+
+
+
## One Workspace
Pebrel (formerly Nebula) brings local shells, remote hosts, files, and AI command-line
@@ -176,6 +191,8 @@ through the explicit `legacy-shell` feature.
Email: [fickleheartedkeys@163.com](mailto:fickleheartedkeys@163.com)
+Discord: [discord.gg/VFn4rcxmhn](https://discord.gg/VFn4rcxmhn)
+
## Acknowledgements
Pebrel builds on [Alacritty](https://github.com/alacritty/alacritty),
diff --git a/README.zh-CN.md b/README.zh-CN.md
index 0f864b1..1aec735 100644
--- a/README.zh-CN.md
+++ b/README.zh-CN.md
@@ -27,6 +27,7 @@
+
@@ -48,6 +49,20 @@
+## 💖 赞助商
+
+
+ 感谢 Fluxion AI 赞助本项目!Fluxion AI 是一个入口,接入并管理全球主流 AI 模型:面向个人开发者、技术团队与企业,通过统一 API 接入并管理全球主流 AI 模型;通过多线路动态调度提升可用性,模型表现、响应时间与费用透明可查。根据不同模型与线路,API 调用成本较官方或基准价格可降低 40%—98%。立即访问并注册,即可获得 $3 API 额度。
+
+
+
+
## 一个工作区
Pebrel(原名 Nebula)把本地 Shell、远程主机、文件和 AI 命令行工具放进同一个原生桌面工作区。
@@ -158,6 +173,8 @@ cargo build --release --locked -p nebula --bin pebrel --features gpui-shell
邮箱:[fickleheartedkeys@163.com](mailto:fickleheartedkeys@163.com)
+Discord:[discord.gg/VFn4rcxmhn](https://discord.gg/VFn4rcxmhn)
+
## 致谢
Pebrel 基于 [Alacritty](https://github.com/alacritty/alacritty)、
diff --git a/architecture/notes/packaging/2026-09-21-windows-arm64-portable.md b/architecture/notes/packaging/2026-09-21-windows-arm64-portable.md
new file mode 100644
index 0000000..7b13fe8
--- /dev/null
+++ b/architecture/notes/packaging/2026-09-21-windows-arm64-portable.md
@@ -0,0 +1,65 @@
+# Native Windows ARM64 portable release
+
+## Status
+
+Implemented for the 1.9.0 release candidate, following the maintainer's request
+to include Windows ARM builds in release CI. Public release remains pending.
+
+## Context
+
+The native test matrix already includes Windows ARM64, while stable release
+packaging previously produced only Windows x64 binaries. Passing ARM64 tests
+did not give ARM users a downloadable native application.
+
+## Evidence
+
+- `linux-lua.yml` runs tests on `windows-11-arm` and checks the compiler host.
+- `package-release.ps1` previously fixed the archive suffix to `windows-x64`.
+- The existing console-runtime preparation script has pinned ARM64 payloads.
+- The installer and automatic installer selection currently target Windows x64.
+
+## Decision
+
+Add a native ARM64 portable ZIP to the stable asset manifest from 1.9.0 onward.
+Build the application and Hook helper on the ARM64 runner with the shared
+product build script. Package the corresponding pinned ARM64 console runtime.
+Verify PE machine headers for all four executable payloads before assigning
+the requested architecture to the ZIP filename.
+
+The full release aggregate requires both the existing native ARM64 test job and
+an ARM64 conformance report from the same source commit. Historical release
+manifests and the separate Preview workflow retain their current contracts.
+
+Keep the Windows installer and automatic installation on x64 for this release.
+The ARM64 artifact is explicitly described as a portable ZIP; an ARM64 installer
+requires its own native installation, migration and update-contract validation.
+
+## Rejected alternatives
+
+- Renaming an x64 archive would not provide native ARM64 execution.
+- Cross-compilation alone would not exercise native startup and terminal behavior.
+- Treating the native test job as packaging evidence would leave downloadable
+ payloads and architecture mismatches unverified.
+
+## Consequences
+
+The 1.9.0 stable manifest contains eight packages plus SHA256SUMS. The additional
+release job owns its runner, architecture-specific build cache and evidence.
+No installer compatibility alias or historical asset is removed.
+
+## Validation
+
+- Package-header tests accept both supported machine types and reject a wrong
+ label, mismatched Hook helper and truncated executable.
+- Release-manifest tests require the ARM64 ZIP for 1.9.0 and retain old manifests.
+- Evidence tests reject missing or mislabeled ARM64 reports when ARM64 is required.
+- Native release CI is required before attaching candidate assets to the draft.
+
+## Supersedes
+
+None.
+
+## Revisit when
+
+A native ARM64 installer and its update/migration behavior have been implemented
+and verified, or the supported Windows release architectures change.
diff --git a/docs/release-notes/v1.9.0.md b/docs/release-notes/v1.9.0.md
index b549e99..bd0fdd9 100644
--- a/docs/release-notes/v1.9.0.md
+++ b/docs/release-notes/v1.9.0.md
@@ -4,92 +4,120 @@
### Added
-- Added live Markdown editing: focus a paragraph or inline expression to edit its source while retaining the document view, selection and undo history.
-- Added Kimi Code recognition, session commands and managed notification hooks.
-- Added cloud backup controls with saved preferences, connection feedback and access to configuration backups.
-- Added a persistent font-ligature setting that applies to open terminal sessions.
+- Added a native Windows ARM64 portable ZIP, alongside the Windows x64 installer and portable ZIP. ARM64 builds use a native runner and include matching ARM64 Hook and console runtime binaries.
+- Added Kimi Code recognition, native session commands and managed lifecycle hooks, including its icon and terminal activity states.
+- Added a dedicated Agents settings page for Claude Code, Codex, OpenCode, Cursor Agent, Kimi Code, Pi, Oh My Pi, GitHub Copilot and Grok. It shows detected CLI paths and actual Hook installation status beside each integration switch. Automatic Hook management is available on Windows.
+- Added configurable notification duration: keep the existing defaults, choose 5, 10, 30 or 90 seconds, or keep notifications visible until dismissed. The selected duration takes precedence over an Agent's default banner lifetime.
+- Added a persistent terminal font-ligature setting, enabled by default and applied to open sessions without restarting them. Addresses [#220](https://github.com/Kuddev/pebrel/issues/220).
+- Added a Sponsors page under Settings → Home → Project and support, introducing Fluxion AI with its sign-up link.
### Fixed
- Fixed Codex cold restoration using a Hook group identifier instead of the native conversation identity. Saved sessions with an older or unrecognized transcript filename retain their existing valid conversation ID.
-- Windows local Codex sessions can recover their exact conversation ID and native path from the running process, including when a Hook identity is missing. Later lifecycle-only events retain the verified identity.
-- When Codex reports a missing saved conversation, recovery opens its native chooser, including from CMD. Failed restores also offer an explicit conversation choice in the tab menu.
-- Closing with unavailable AI session identities now offers saving known state and exiting; save failures and changed editor drafts still keep the application open.
-- Fixed file-editor selections and search matches blending into light and dark backgrounds. Ordinary text/code files now reveal the configured workspace background image, and the caret row follows the active theme.
-- Fixed copying the terminal working directory: menu and command-palette actions copy the directory reported by the shell, including guest paths, while normal selection copying retains the original text.
-- Fixed AI failure and cancellation events being presented as successful completion; Pi retry-aware outcomes and Claude failure events use the shared notification result handling.
-- Fixed WSL hook installation and event delivery using the distribution's own user configuration. Updated command completions include the distribution and user options.
-- Fixed inherited Ctrl+C suppression preventing interruption of CMD child commands, while keeping selection copying available.
-- Fixed native CMD command activity and multiline/pending-wrap input tracking.
-- Fixed application 256-color blocks being overwritten by terminal prompt colors. Explicit custom color overrides remain supported.
-- Fixed SSH automatic authentication ignoring the available system agent.
-- Fixed long Markdown outline headings overlapping neighboring rows.
-- Fixed Markdown caret placement for CJK and emoji, interrupted drag selections, heading layout shifts and code-language pickers extending beyond the window.
+- Fixed missing Windows local Codex identities by recovering the native conversation ID and file path from the running process. Later lifecycle-only events retain the verified identity.
+- Fixed dead-end Codex restoration when a saved conversation no longer exists: recovery opens the native conversation chooser, including from CMD, and the tab menu offers an explicit conversation choice.
+- Fixed the session crash-loop breaker counting a launch as failed while a restored AI conversation was still unconfirmed. Normal exits with a Codex conversation waiting at its startup prompts no longer quarantine the whole workspace after three launches, and the saved conversation target is retained for the next launch.
+- Fixed shutdown getting stuck when some AI identities cannot be collected. Users can save the known state and exit; save errors and subsequently changed editor drafts still keep the application open.
+- Fixed AI failures and cancellations appearing as successful completion. Claude failure events and Pi retry-aware outcomes now use the shared result handling.
+- Fixed notification replacements retaining an old result or expiry deadline. A refreshed pane result uses the selected duration, and an older timer cannot dismiss its replacement.
+- Fixed supported AI confirmation actions by checking that the request is still current and completing the required key-down/key-up sequence. Windows notification activation restores the corresponding application window.
+- Fixed WSL Hook installation and event delivery to use the distribution's own user configuration. Command completions include the distribution and user options.
+- Fixed inherited Ctrl+C suppression preventing interruption of CMD child commands, while preserving selection copying.
+- Fixed native CMD command activity detection, multiline input and echoed text at pending-wrap boundaries.
+- Fixed application 256-color blocks being overwritten by terminal prompt colors, while retaining explicit custom color overrides.
+- Fixed saved SSH hosts ignoring the available system SSH agent in automatic authentication mode.
+- Fixed terminal working-directory copying to use the path reported by the shell, including guest paths, while normal selection copying retains the original text.
+- Fixed terminal and answer-reader opening of supported local Markdown links, file URIs and relative paths. Paths containing spaces, Chinese text or parentheses resolve against the originating pane's directory; missing paths produce visible feedback. Addresses [#203](https://github.com/Kuddev/pebrel/issues/203).
+- Fixed file-editor selections and search matches blending into light and dark backgrounds. Plain-text and code editors reveal the configured workspace background, and the active line follows the theme.
+- Fixed long Markdown outline headings overlapping adjacent rows. Full titles remain available through tooltips and copying. Addresses [#184](https://github.com/Kuddev/pebrel/issues/184).
+- Fixed interrupted Markdown drags leaving a selection that continues to grow when the pointer moves without a pressed button.
+- Fixed code-language menus extending beyond narrow windows and kept their search field and keyboard activation usable.
+- Fixed SSH host icons appearing off-center because a font glyph's visible outline differs from its text advance.
+- Removed the duplicate title preview shown while dragging a tab.
### Improved
-- Added direct responses for supported AI confirmation notifications, with stale-request checks before sending a response; Windows notification activation restores the corresponding application window.
-- Made notification duration configurable and preserved the selected duration when replacing a pane's result.
-- Reduced repeated Git/SVN drawer work by reusing repository snapshots and rendering visible rows.
-- Improved settings search, SSH connection cards and terminal file-link opening.
-- Made cloud-storage configuration compact, bounded provider and credential fields, and aligned file-panel controls.
-- Updated command-group navigation, ordering and add actions.
-- Added settings for enabling each supported Agent integration while retaining other managed and user-owned hook entries.
+- Markdown opens in read-only rendered mode. Text selection, copying, code copying and formula actions remain available; editing requires an explicit switch to source mode.
+- Code-block language selection remains available in the reader. It changes syntax highlighting without rewriting the Markdown, survives scrolling away and back, and leaves copied code unchanged.
+- Kept source-mode drafts when returning to the reader, while preventing undo/redo shortcuts from editing the document in read-only mode.
+- Bounded Markdown presentation work with virtual rows, visible-block image ownership and release of inactive document layouts. These changes reduce repeated work without imposing a machine-specific memory or speed promise.
+- Reused repository snapshots and rendered visible Git/SVN drawer rows to reduce repeated work in large repositories.
+- Centered the Agents page, enlarged all nine Agent marks using SVG assets, and separated CLI discovery from Hook installation status. Long paths remain accessible through tooltips.
+- Improved settings search, SSH connection cards and filters, file-panel control alignment, and command-group navigation, ordering and add actions.
+- Preserved other integrations and user-owned configuration when installing or removing a managed Agent Hook.
+- Temporarily hid the backup entry from the settings sidebar and search; cloud-backup controls are not exposed in this release.
-Windows packages include an installer and portable ZIP. Linux and macOS packages retain their Preview designation. This candidate is intended for installation testing; visual acceptance and live cold restoration with every external CLI remain separate from automated checks.
+Windows x64 includes an installer and portable ZIP; Windows ARM64 includes a native portable ZIP. The installer and in-app automatic installation remain x64-only. Linux x64 packages and macOS Apple Silicon/Intel DMGs retain their Preview designation. macOS requires version 14 or later. Molecular structure rendering remains disabled.
## 中文
### 新增
-- 新增 Markdown 即时编辑:聚焦段落或行内表达式即可编辑对应源码,同时保留文档视图、选区和撤销历史。
-- 新增 Kimi Code 识别、会话命令和受管理的通知 Hook。
-- 新增云端备份入口,支持保存偏好、连接反馈和访问配置备份。
-- 新增可持久保存的字体连字设置,并可应用于已打开的终端会话。
+- 新增:Windows ARM64 原生便携 ZIP,与 Windows x64 安装器及便携 ZIP 一同提供。ARM64 使用原生运行器构建,并配套 ARM64 Hook 辅助程序与控制台运行时。
+- 新增:Kimi Code 识别、原生会话命令和受管理的生命周期 Hook,包含品牌图标及终端活动状态。
+- 新增:独立 Agents 设置页,覆盖 Claude Code、Codex、OpenCode、Cursor Agent、Kimi Code、Pi、Oh My Pi、GitHub Copilot 和 Grok。每项显示检测到的 CLI 路径,并在开关旁显示实际 Hook 安装状态;自动 Hook 管理适用于 Windows。
+- 新增:通知停留时长设置:保持既有默认值,或选择 5、10、30、90 秒以及手动关闭。用户选择的时长优先于 Agent 自带的横幅默认时长。
+- 新增:可持久保存的终端字体连字开关,默认开启,并可应用于已打开的会话,无需重启终端。对应 [#220](https://github.com/Kuddev/pebrel/issues/220)。
+- 新增:设置首页「项目与支持」中的赞助商页面,介绍赞助商 Fluxion AI 并提供注册链接。
### 修复
-- 修复 Codex 冷恢复误用 Hook 分组标识而非原生对话身份的问题。旧快照中的会话文件名无法识别时,保留原有有效对话 ID。
-- Windows 本地 Codex 会话可从正在运行的进程找回准确的对话 ID 和原生文件路径,补足 Hook 身份缺失的情况;后续仅包含生命周期信息的事件会保留已核验身份。
-- Codex 报告保存的对话不存在时,包括 CMD 在内的恢复流程可打开原生会话选择器;恢复失败后,也可从标签页菜单主动选择对话。
-- AI 会话身份暂时无法取得时,关闭操作提供保存已知状态并退出的选择;保存失败或编辑器草稿发生变化时仍保持应用打开。
-- 修复文件编辑器选区与查找命中融入浅色、深色背景的问题;普通文本和代码文件可透出已配置的工作区背景图,光标所在行跟随当前主题。
-- 修复终端工作目录复制:菜单和命令面板复制 Shell 上报的目录,包括访客环境路径;普通选区复制保留原始文字。
-- 修复 AI 失败和取消事件被显示为成功完成的问题;Pi 重试后的结果及 Claude 失败事件统一进入通知结果处理。
-- 修复 WSL Hook 安装与事件传递,使用发行版自身的用户配置;命令补全同步包含发行版和用户选项。
-- 修复继承的 Ctrl+C 忽略状态导致 CMD 子命令无法中断的问题,同时保留选区复制。
-- 修复原生 CMD 命令活动、多行输入和等待折行边界的输入跟踪。
-- 修复应用的 256 色块被终端提示符颜色覆盖的问题,保留明确配置的自定义颜色覆盖。
-- 修复 SSH 自动认证忽略可用系统代理的问题。
-- 修复 Markdown 目录长标题与相邻行重叠的问题。
-- 修复 Markdown 中文与 emoji 的光标落点、中断拖动后残留选区、标题编辑时布局跳动以及代码语言菜单超出窗口的问题。
+- 修复:Codex 冷恢复误用 Hook 分组标识而非原生对话身份的问题。旧快照中的会话文件名无法识别时,保留原有有效对话 ID。
+- 修复:Windows 本地 Codex 身份缺失的问题,可从运行中的进程找回原生对话 ID 和文件路径;后续仅包含生命周期信息的事件会保留已核验身份。
+- 修复:保存的 Codex 对话不存在时恢复流程无法继续的问题:包括 CMD 在内,可打开原生会话选择器,标签菜单也提供主动选择对话的入口。
+- 修复:已恢复的 AI 对话尚未确认时,本次启动被会话断路器误计为失败的问题。Codex 对话停在启动提示上、正常退出三次后,不再把整个工作区隔离到 `session.crashed.json`;已保存的对话目标保留至下次启动。
+- 修复:部分 AI 身份无法取得时关闭流程卡住的问题。用户可以保存已知状态并退出;保存失败或编辑器草稿随后发生变化时仍保持应用打开。
+- 修复:AI 失败和取消事件被显示为成功完成的问题,Claude 失败事件及 Pi 重试后的结果统一进入通知结果处理。
+- 修复:通知替换后残留旧结果或旧到期时间的问题。新的窗格结果遵循选定时长,旧计时器不能关闭替换后的通知。
+- 修复:受支持 AI 确认动作:发送前检查请求仍然有效,并完成必要的按下、释放按键序列;Windows 通知激活时恢复对应应用窗口。
+- 修复:WSL Hook 安装与事件传递,使用发行版自身的用户配置;命令补全同步包含发行版和用户选项。
+- 修复:继承的 Ctrl+C 忽略状态导致 CMD 子命令无法中断的问题,同时保留选区复制。
+- 修复:原生 CMD 命令活动检测、多行输入以及等待折行边界的回显文本跟踪。
+- 修复:应用的 256 色块被终端提示符颜色覆盖的问题,保留明确配置的自定义颜色覆盖。
+- 修复:已保存 SSH 主机在自动认证时忽略可用系统 SSH 代理的问题。
+- 修复:终端工作目录复制,改为复制 Shell 上报的路径,包括访客环境路径;普通选区复制保留原始文字。
+- 修复:终端和回答阅读页打开受支持的本地 Markdown 链接、文件 URI 及相对路径的行为。含空格、中文或括号的路径按原窗格目录解析,路径缺失时提供可见反馈。对应 [#203](https://github.com/Kuddev/pebrel/issues/203)。
+- 修复:文件编辑器选区与查找命中融入浅色、深色背景的问题;普通文本和代码编辑器可透出已配置的工作区背景图,光标所在行跟随主题。
+- 修复:Markdown 目录长标题压住相邻行的问题,完整标题仍可通过悬停提示和复制取得。对应 [#184](https://github.com/Kuddev/pebrel/issues/184)。
+- 修复:Markdown 拖选被中断后,未按住鼠标移动仍继续扩大选区的问题。
+- 修复:代码语言菜单在窄窗口中越界的问题,并保持搜索框和键盘操作可用。
+- 修复:SSH 主机图标因字体可见轮廓与排版宽度不同而偏离中心的问题。
+- 修复:移除拖动标签时重复出现的标题预览。
### 改进
-- 支持从部分 AI 确认通知直接回答,发送前检查请求是否过期;Windows 通知激活时恢复对应的应用窗口。
-- 支持配置通知停留时长,并在替换窗格结果时保留选定时长。
-- 复用仓库快照、仅渲染可见行,减少 Git/SVN 抽屉的重复工作。
-- 改进设置搜索、SSH 连接卡片和终端文件链接打开。
-- 收紧云存储配置布局,限制服务选择器和凭据输入宽度,并统一文件面板控件尺寸。
-- 更新命令分组导航、排序和新增操作的布局。
-- 新增各受支持 Agent 的集成开关,安装与移除时保留其他受管理及用户已有 Hook 项。
+- 改进:Markdown 默认以只读方式渲染,保留文字选择、复制、代码复制及公式操作;编辑需要显式切换到源码模式。
+- 改进:阅读模式仍可选择代码块语言,只改变语法高亮,不改写 Markdown;滚动离开再返回后保留选择,复制得到的代码内容不变。
+- 改进:从源码模式返回阅读页时保留草稿,同时阻止只读模式下的撤销、重做快捷键修改文档。
+- 改进:Markdown 使用虚拟列表、可见代码块和图片资源管理,并释放非活动文档的布局缓存,减少重复工作;不把单机结果写成固定的内存或速度承诺。
+- 改进:Git/SVN 抽屉复用仓库快照,仅渲染可见条目,减少大型仓库中的重复工作。
+- 改进:Agents 页面整体居中,九种 Agent 图标使用放大的 SVG 资源;CLI 是否存在与 Hook 是否安装分别展示,长路径可通过悬停提示查看。
+- 改进:设置搜索、SSH 连接卡片和筛选、文件面板控件对齐,以及命令分组的导航、排序和新增操作。
+- 改进:安装或移除受管理的 Agent Hook 时,保留其他集成及用户已有配置。
+- 改进:暂时隐藏设置侧栏和搜索中的备份入口,本版不开放云备份控件。
-Windows 提供安装器和 ZIP 便携包,Linux 和 macOS 包继续标记为 Preview。本候选用于安装测试;视觉验收和所有外部 CLI 的实际关窗恢复仍需单独验证。
+Windows x64 提供安装器和 ZIP 便携包,Windows ARM64 提供原生便携 ZIP;安装器和应用内自动安装仍仅支持 x64。Linux x64 包及 macOS Apple Silicon/Intel DMG 继续标记为 Preview。macOS 最低版本为 14。分子结构渲染仍处于禁用状态。
## Contributors
-
+
-- **[@Traveritas](https://github.com/Traveritas)** — Kimi Code integration. / Kimi Code 集成。([#197](https://github.com/Kuddev/pebrel/pull/197))
-- **[@galact-byte](https://github.com/galact-byte)** — CMD interrupts and activity, application colors and Pi notification outcomes. / CMD 中断与活动、应用配色及 Pi 通知结果。([#206](https://github.com/Kuddev/pebrel/pull/206), [#207](https://github.com/Kuddev/pebrel/pull/207), [#208](https://github.com/Kuddev/pebrel/pull/208), [#215](https://github.com/Kuddev/pebrel/pull/215), [#216](https://github.com/Kuddev/pebrel/pull/216))
-- **[@Kuddev](https://github.com/Kuddev)** — Desktop integration, notifications, restoration and editor fixes. / 桌面集成、通知、恢复及编辑器修复。([#221](https://github.com/Kuddev/pebrel/pull/221), [#225](https://github.com/Kuddev/pebrel/pull/225), [#227](https://github.com/Kuddev/pebrel/pull/227), [#231](https://github.com/Kuddev/pebrel/pull/231), [#232](https://github.com/Kuddev/pebrel/pull/232))
+- **[@Traveritas](https://github.com/Traveritas)** — Kimi Code hooks, recognition and branding. / Kimi Code Hook、识别和品牌图标。([#197](https://github.com/Kuddev/pebrel/pull/197))
+- **[@galact-byte](https://github.com/galact-byte)** — CMD interrupts and activity, terminal application colors and Pi notification outcomes. / CMD 中断与活动、终端应用配色及 Pi 通知结果。([#206](https://github.com/Kuddev/pebrel/pull/206), [#207](https://github.com/Kuddev/pebrel/pull/207), [#208](https://github.com/Kuddev/pebrel/pull/208), [#215](https://github.com/Kuddev/pebrel/pull/215), [#216](https://github.com/Kuddev/pebrel/pull/216))
+- **[@821869798](https://github.com/821869798)** — Markdown links and local file opening from terminals and the answer reader. / 终端及回答阅读页的 Markdown 链接和本地文件打开。([#204](https://github.com/Kuddev/pebrel/pull/204))
+- **[@tataraDM](https://github.com/tataraDM)** — Readable single-line Markdown outline headings. / 修复 Markdown 目录长标题挤压。([#191](https://github.com/Kuddev/pebrel/pull/191))
+- **[@Aschenbath](https://github.com/Aschenbath)** — Configurable notification duration and persistent notifications. / 可配置的通知停留时长和常驻通知。([#131](https://github.com/Kuddev/pebrel/pull/131))
+- **[@Kuddev](https://github.com/Kuddev)** — Desktop integration, actionable notifications, session restoration, Markdown reader, Agents UI, review and release integration. / 桌面整合、可操作通知、会话恢复、Markdown 阅读、Agents 界面、审核及发布整合。([#210](https://github.com/Kuddev/pebrel/pull/210), [#217](https://github.com/Kuddev/pebrel/pull/217), [#221](https://github.com/Kuddev/pebrel/pull/221), [#222](https://github.com/Kuddev/pebrel/pull/222), [#225](https://github.com/Kuddev/pebrel/pull/225), [#227](https://github.com/Kuddev/pebrel/pull/227), [#231](https://github.com/Kuddev/pebrel/pull/231), [#232](https://github.com/Kuddev/pebrel/pull/232))
+
+---
**SHA256**
-- `Pebrel-v1.9.0-linux-x64-preview.AppImage`: `PENDING FINAL BUILD`
-- `Pebrel-v1.9.0-linux-x64-preview.deb`: `PENDING FINAL BUILD`
-- `Pebrel-v1.9.0-linux-x64-preview.tar.gz`: `PENDING FINAL BUILD`
-- `Pebrel-v1.9.0-macos-arm64-preview.dmg`: `PENDING FINAL BUILD`
-- `Pebrel-v1.9.0-macos-x64-preview.dmg`: `PENDING FINAL BUILD`
-- `Pebrel-v1.9.0-windows-x64.zip`: `PENDING FINAL BUILD`
-- `Pebrel-v1.9.0-windows-x64-setup.exe`: `PENDING FINAL BUILD`
+- `Pebrel-v1.9.0-linux-x64-preview.AppImage`: `4da5ea590a82ab4f89dca14df1399e7c2cd27fa4fe308da6f0e95b8aa9ae7d22`
+- `Pebrel-v1.9.0-linux-x64-preview.deb`: `bb6fff964942b750a794f2ea148e851719430dfffd9bb086a13e2f1e67d87722`
+- `Pebrel-v1.9.0-linux-x64-preview.tar.gz`: `6526ed5f2f883bb5ca9600d2685c929056fbae9f2450259f34d65093a18deda6`
+- `Pebrel-v1.9.0-macos-arm64-preview.dmg`: `daf2c6c381fbdf84c33c132e9c6c247e9f9dc6e86292cc5be855e635e6cfa6f3`
+- `Pebrel-v1.9.0-macos-x64-preview.dmg`: `9f3f1465be9e1f3489be09ccf336d5bdc0a6ae40185062f677a6e857d47e1fe0`
+- `Pebrel-v1.9.0-windows-x64.zip`: `1c219946450c7d93993394fd6d40c6e234d77547c9b4a98106c0d33ada9c27f9`
+- `Pebrel-v1.9.0-windows-x64-setup.exe`: `52cefcdae9cd98035bcdd45944c020fc9acf9c2c497147ba337ed15069a07fe6`
+- `Pebrel-v1.9.0-windows-arm64.zip`: `e2d062089afb19ddb9e3d078cc7f460a1d67cb36d95400cebab837f9fabda092`
diff --git a/extra/logo/README.md b/extra/logo/README.md
index e8543ef..fd822cd 100644
--- a/extra/logo/README.md
+++ b/extra/logo/README.md
@@ -92,6 +92,19 @@ by Git and are not required by the asset tests.
## Third-Party Logo Assets
+### Agents settings vectors
+
+The Agents settings page renders 24 logical pixel SVG marks rather than enlarging
+the sidebar PNG textures. Claude, Kimi and Oh My Pi reuse the SVG sources below;
+Cursor and Copilot reuse the existing settings icons. OpenAI, OpenCode, Pi and
+Grok use `nebula_app/assets/icons/nebula-agent-{openai,opencode,pi,grok}.svg`,
+retrieved from the fixed npm package `@lobehub/icons-static-svg` 1.95.0:
+`https://unpkg.com/@lobehub/icons-static-svg@1.95.0/icons/{name}.svg`.
+These four sources are unchanged except for a final newline, under the collection's
+[MIT license](LICENSE-lobe-icons). Product trademarks belong to their owners.
+GPUI renders the SVG alpha masks using theme ink, with orange for Claude and
+purple for Oh My Pi; sidebar PNG presentation is independent.
+
### Cursor and GitHub Copilot settings icons
`nebula_app/assets/icons/nebula-agent-cursor.svg` and
diff --git a/extra/logo/sponsor_fluxionai.png b/extra/logo/sponsor_fluxionai.png
new file mode 100644
index 0000000..4eef089
Binary files /dev/null and b/extra/logo/sponsor_fluxionai.png differ
diff --git a/nebula_app/assets/icons/nebula-agent-grok.svg b/nebula_app/assets/icons/nebula-agent-grok.svg
new file mode 100644
index 0000000..ac7c94c
--- /dev/null
+++ b/nebula_app/assets/icons/nebula-agent-grok.svg
@@ -0,0 +1 @@
+
diff --git a/nebula_app/assets/icons/nebula-agent-openai.svg b/nebula_app/assets/icons/nebula-agent-openai.svg
new file mode 100644
index 0000000..8c3e68d
--- /dev/null
+++ b/nebula_app/assets/icons/nebula-agent-openai.svg
@@ -0,0 +1 @@
+
diff --git a/nebula_app/assets/icons/nebula-agent-opencode.svg b/nebula_app/assets/icons/nebula-agent-opencode.svg
new file mode 100644
index 0000000..5c1bb85
--- /dev/null
+++ b/nebula_app/assets/icons/nebula-agent-opencode.svg
@@ -0,0 +1 @@
+
diff --git a/nebula_app/assets/icons/nebula-agent-pi.svg b/nebula_app/assets/icons/nebula-agent-pi.svg
new file mode 100644
index 0000000..04e9e04
--- /dev/null
+++ b/nebula_app/assets/icons/nebula-agent-pi.svg
@@ -0,0 +1 @@
+
diff --git a/nebula_app/i18n/en-US.json b/nebula_app/i18n/en-US.json
index 3d23a98..c74b422 100644
--- a/nebula_app/i18n/en-US.json
+++ b/nebula_app/i18n/en-US.json
@@ -170,8 +170,8 @@
"platform_unsupported": "Automatic hook installation is currently available on Windows.",
"checking": "Checking installed agents and hooks…",
"applying": "Applying…",
- "installed": "Notifications on",
- "off": "Notifications off",
+ "installed": "Hook installed",
+ "off": "Hook not installed",
"not_detected": "Not installed",
"config_detected": "Agent configuration detected",
"unsupported": "Hook integration not available yet",
@@ -182,7 +182,7 @@
"disabled": "Hooks removed. Restart the agent to apply.",
"failed": "Could not update hooks: {error}",
"helper_missing": "The hook helper is missing. Repair the Pebrel installation to enable hooks.",
- "needs_repair": "Installed · needs repair",
+ "needs_repair": "Hook installed · needs repair",
"initialize": "Run this agent once to create its configuration, then refresh.",
"config_path": "Configuration: {path}"
}
diff --git a/nebula_app/i18n/zh-CN.json b/nebula_app/i18n/zh-CN.json
index b4c7b5c..9bacfd5 100644
--- a/nebula_app/i18n/zh-CN.json
+++ b/nebula_app/i18n/zh-CN.json
@@ -170,8 +170,8 @@
"platform_unsupported": "目前仅 Windows 支持自动安装 hooks。",
"checking": "正在检测工具和 hooks…",
"applying": "处理中…",
- "installed": "已开启通知",
- "off": "未开启通知",
+ "installed": "Hook 已安装",
+ "off": "Hook 未安装",
"not_detected": "未安装",
"config_detected": "已检测到工具配置",
"unsupported": "尚未提供 hook 接入",
@@ -182,7 +182,7 @@
"disabled": "Hooks 已移除,请重启 agent 使其生效。",
"failed": "无法更新 hooks:{error}",
"helper_missing": "缺少 hook 辅助程序,请修复 Pebrel 安装后再启用。",
- "needs_repair": "已安装 · 需修复",
+ "needs_repair": "Hook 已安装 · 需修复",
"initialize": "请先运行一次此工具以创建配置,然后刷新。",
"config_path": "配置:{path}"
}
diff --git a/nebula_app/i18n/zh-TW.json b/nebula_app/i18n/zh-TW.json
index 4123d46..9f3abf3 100644
--- a/nebula_app/i18n/zh-TW.json
+++ b/nebula_app/i18n/zh-TW.json
@@ -51,8 +51,8 @@
"platform_unsupported": "目前僅 Windows 支援自動安裝 hooks。",
"checking": "正在偵測工具與 hooks…",
"applying": "處理中…",
- "installed": "已開啟通知",
- "off": "未開啟通知",
+ "installed": "Hook 已安裝",
+ "off": "Hook 未安裝",
"not_detected": "未安裝",
"config_detected": "已偵測到工具設定",
"unsupported": "尚未提供 hook 整合",
@@ -63,7 +63,7 @@
"disabled": "Hooks 已移除,請重新啟動 agent 使其生效。",
"failed": "無法更新 hooks:{error}",
"helper_missing": "缺少 hook 輔助程式,請修復 Pebrel 安裝後再啟用。",
- "needs_repair": "已安裝 · 需修復",
+ "needs_repair": "Hook 已安裝 · 需修復",
"initialize": "請先執行一次此工具以建立設定,然後重新整理。",
"config_path": "設定:{path}"
}
diff --git a/nebula_app/src/gpui_shell/assets.rs b/nebula_app/src/gpui_shell/assets.rs
index 0e96309..d17e017 100644
--- a/nebula_app/src/gpui_shell/assets.rs
+++ b/nebula_app/src/gpui_shell/assets.rs
@@ -39,6 +39,16 @@ const NEBULA_ICONS: &[(&str, &[u8])] = icons![
"vcs-conflict",
"agent-cursor",
"agent-copilot",
+ "agent-openai",
+ "agent-opencode",
+ "agent-pi",
+ "agent-grok",
+];
+
+const AGENT_ICONS: &[(&str, &[u8])] = &[
+ ("icons/agent-claude.svg", include_bytes!("../../../extra/logo/ai_claude.svg")),
+ ("icons/agent-kimi.svg", include_bytes!("../../../extra/logo/ai_kimi.svg")),
+ ("icons/agent-omp.svg", include_bytes!("../../../extra/logo/ai_omp.svg")),
];
/// 先查本仓库,未命中再交给组件库。
@@ -46,7 +56,9 @@ pub struct NebulaAssets;
impl AssetSource for NebulaAssets {
fn load(&self, path: &str) -> Result