chore: release v0.9.6

This commit is contained in:
晴天
2026-03-18 15:39:11 +08:00
parent 7764a32799
commit 97c0054a3a
9 changed files with 51 additions and 15 deletions

View File

@@ -5,6 +5,34 @@
格式遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/) 格式遵循 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/)
版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。 版本号遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
## [0.9.6] - 2026-03-18
### 修复 (Fixes)
- **仪表盘二次加载崩溃** — 切换页面后返回仪表盘不再报 `Cannot read properties of null (reading 'recommended')` (#100)
- **聊天代码单引号乱码** — 代码块中 `'` 不再显示为 `'`,修正 Markdown 渲染器的 HTML 转义策略 (#99)
- **聊天图片路径反斜杠丢失** — Windows 路径 `C:\Users\...` 在图片加载失败提示中不再丢失反斜杠
- **聊天页折叠侧边栏后不自适应** — 折叠主侧边栏后聊天页面现在正确撑满全宽
- **Gateway 状态横条延迟** — WebSocket 连接成功后立即刷新 Gateway 状态,不再等待 30 秒轮询周期
- **版本列表加载失败** — 修复 npm registry 返回 gzip 压缩响应时 `error decoding response body` 错误reqwest 启用 gzip 解压)
- **配置保存后 Gateway 需手动启动** — 所有页面(模型/渠道/通信等)保存 openclaw.json 后自动重载 Gateway防抖 3 秒),不再需要手动点启动按钮
- **dev.ps1 启动脚本报错** — 修复 PowerShell 解析 emoji 字符时的编码错误
### 新功能 (Features)
- **托管 Agent** — 聊天页新增「⊕ 托管」按钮,可设定任务目标后让 AI 自动循环引导 OpenClaw 执行:
- 内置系统提示词,明确调度 Agent 的身份和职责
- 可视化滑块设置最大回复次数5-200 或 ∞ 无限)
- 定时自动停止(开关 + 滑块 + 倒计时进度条)
- 上下文自动压缩(超过 20 条历史自动压缩为摘要)
- OpenClaw 回复包含「完成/停止」时自动停止循环
- 单按钮启动/停止切换,运行时输入框自动锁定
### 改进 (Improvements)
- **Toast 通知样式** — 从半透明毛玻璃改为实底+边框+阴影,暗色模式兼容性更好
- **聊天输入框增大** — 最小高度 44px最大高度 200px输入体验更舒适
## [0.9.5] - 2026-03-17 ## [0.9.5] - 2026-03-17
### 修复 (Fixes) ### 修复 (Fixes)

View File

@@ -34,7 +34,7 @@
"description": "OpenClaw AI Agent 可视化管理面板,基于 Tauri v2 的跨平台桌面应用。支持仪表盘监控、多模型配置、消息渠道管理、内置 QQ 机器人、实时 AI 聊天、记忆管理、Agent 管理、网关配置、内网穿透等功能。", "description": "OpenClaw AI Agent 可视化管理面板,基于 Tauri v2 的跨平台桌面应用。支持仪表盘监控、多模型配置、消息渠道管理、内置 QQ 机器人、实时 AI 聊天、记忆管理、Agent 管理、网关配置、内网穿透等功能。",
"url": "https://claw.qt.cool/", "url": "https://claw.qt.cool/",
"downloadUrl": "https://github.com/qingchencloud/clawpanel/releases/latest", "downloadUrl": "https://github.com/qingchencloud/clawpanel/releases/latest",
"softwareVersion": "0.9.5", "softwareVersion": "0.9.6",
"author": { "author": {
"@type": "Organization", "@type": "Organization",
"name": "晴辰云 QingchenCloud", "name": "晴辰云 QingchenCloud",
@@ -1133,7 +1133,7 @@
<div class="orb orb-2" style="top:auto;bottom:-100px"></div> <div class="orb orb-2" style="top:auto;bottom:-100px"></div>
<div class="container-sm" style="position:relative;z-index:10"> <div class="container-sm" style="position:relative;z-index:10">
<div class="section-header"> <div class="section-header">
<div class="reveal download-version"><span class="pulse"></span> v0.9.5 最新版</div> <div class="reveal download-version"><span class="pulse"></span> v0.9.6 最新版</div>
<h2 class="reveal section-title"><span class="gradient-text">下载安装</span></h2> <h2 class="reveal section-title"><span class="gradient-text">下载安装</span></h2>
<p class="reveal section-desc">选择你的操作系统,一键下载安装</p> <p class="reveal section-desc">选择你的操作系统,一键下载安装</p>
</div> </div>
@@ -1143,11 +1143,11 @@
<h3>macOS</h3> <h3>macOS</h3>
<p class="dl-desc">支持 Apple Silicon 和 Intel 芯片</p> <p class="dl-desc">支持 Apple Silicon 和 Intel 芯片</p>
<div class="dl-links"> <div class="dl-links">
<a class="dl-link" href="https://claw.qt.cool/proxy/dl/github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.9.5_aarch64.dmg" target="_blank" rel="noopener"> <a class="dl-link" href="https://claw.qt.cool/proxy/dl/github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.9.6_aarch64.dmg" target="_blank" rel="noopener">
Apple Silicon (M1/M2/M3/M4) Apple Silicon (M1/M2/M3/M4)
<span class="dl-format">.dmg</span> <span class="dl-format">.dmg</span>
</a> </a>
<a class="dl-link" href="https://claw.qt.cool/proxy/dl/github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.9.5_x64.dmg" target="_blank" rel="noopener"> <a class="dl-link" href="https://claw.qt.cool/proxy/dl/github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.9.6_x64.dmg" target="_blank" rel="noopener">
Intel 芯片 Intel 芯片
<span class="dl-format">.dmg</span> <span class="dl-format">.dmg</span>
</a> </a>
@@ -1165,11 +1165,11 @@
<h3>Windows</h3> <h3>Windows</h3>
<p class="dl-desc">支持 Windows 10 及以上版本</p> <p class="dl-desc">支持 Windows 10 及以上版本</p>
<div class="dl-links"> <div class="dl-links">
<a class="dl-link" href="https://claw.qt.cool/proxy/dl/github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.9.5_x64-setup.exe" target="_blank" rel="noopener"> <a class="dl-link" href="https://claw.qt.cool/proxy/dl/github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.9.6_x64-setup.exe" target="_blank" rel="noopener">
安装程序 安装程序
<span class="dl-format">.exe</span> <span class="dl-format">.exe</span>
</a> </a>
<a class="dl-link" href="https://claw.qt.cool/proxy/dl/github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.9.5_x64_en-US.msi" target="_blank" rel="noopener"> <a class="dl-link" href="https://claw.qt.cool/proxy/dl/github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.9.6_x64_en-US.msi" target="_blank" rel="noopener">
MSI 安装包 MSI 安装包
<span class="dl-format">.msi</span> <span class="dl-format">.msi</span>
</a> </a>
@@ -1180,11 +1180,11 @@
<h3>Linux</h3> <h3>Linux</h3>
<p class="dl-desc">支持主流 Linux 发行版</p> <p class="dl-desc">支持主流 Linux 发行版</p>
<div class="dl-links"> <div class="dl-links">
<a class="dl-link" href="https://claw.qt.cool/proxy/dl/github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.9.5_amd64.AppImage" target="_blank" rel="noopener"> <a class="dl-link" href="https://claw.qt.cool/proxy/dl/github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.9.6_amd64.AppImage" target="_blank" rel="noopener">
通用版 通用版
<span class="dl-format">.AppImage</span> <span class="dl-format">.AppImage</span>
</a> </a>
<a class="dl-link" href="https://claw.qt.cool/proxy/dl/github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.9.5_amd64.deb" target="_blank" rel="noopener"> <a class="dl-link" href="https://claw.qt.cool/proxy/dl/github.com/qingchencloud/clawpanel/releases/latest/download/ClawPanel_0.9.6_amd64.deb" target="_blank" rel="noopener">
Debian / Ubuntu Debian / Ubuntu
<span class="dl-format">.deb</span> <span class="dl-format">.deb</span>
</a> </a>

View File

@@ -1,6 +1,6 @@
{ {
"name": "clawpanel", "name": "clawpanel",
"version": "0.9.5", "version": "0.9.6",
"private": true, "private": true,
"description": "ClawPanel - OpenClaw 可视化管理面板,基于 Tauri v2 的跨平台桌面应用", "description": "ClawPanel - OpenClaw 可视化管理面板,基于 Tauri v2 的跨平台桌面应用",
"type": "module", "type": "module",

View File

@@ -1532,7 +1532,15 @@ const handlers = {
if (isMac) { if (isMac) {
cliInstalled = fs.existsSync('/opt/homebrew/bin/openclaw') || fs.existsSync('/usr/local/bin/openclaw') cliInstalled = fs.existsSync('/opt/homebrew/bin/openclaw') || fs.existsSync('/usr/local/bin/openclaw')
} else if (isWindows) { } else if (isWindows) {
try { cliInstalled = fs.existsSync(path.join(process.env.APPDATA || '', 'npm', 'openclaw.cmd')) } try {
const paths = [
path.join(process.env.APPDATA || '', 'npm', 'openclaw.cmd'),
path.join(process.env.APPDATA || '', 'npm', 'openclaw'),
path.join(process.env.ProgramFiles || '', 'nodejs', 'openclaw.cmd'),
path.join(process.env.ProgramFiles || '', 'nodejs', 'openclaw'),
]
cliInstalled = paths.some(p => fs.existsSync(p)) || !!findOpenclawBin()
}
catch { cliInstalled = false } catch { cliInstalled = false }
} else { } else {
cliInstalled = !!findOpenclawBin() cliInstalled = !!findOpenclawBin()

2
src-tauri/Cargo.lock generated
View File

@@ -340,7 +340,7 @@ dependencies = [
[[package]] [[package]]
name = "clawpanel" name = "clawpanel"
version = "0.9.5" version = "0.9.6"
dependencies = [ dependencies = [
"base64 0.22.1", "base64 0.22.1",
"chrono", "chrono",

View File

@@ -1,6 +1,6 @@
[package] [package]
name = "clawpanel" name = "clawpanel"
version = "0.9.5" version = "0.9.6"
edition = "2021" edition = "2021"
description = "ClawPanel - OpenClaw 可视化管理面板" description = "ClawPanel - OpenClaw 可视化管理面板"
authors = ["qingchencloud"] authors = ["qingchencloud"]

View File

@@ -1,7 +1,7 @@
{ {
"$schema": "https://raw.githubusercontent.com/tauri-apps/tauri/dev/crates/tauri-config-schema/schema.json", "$schema": "https://raw.githubusercontent.com/tauri-apps/tauri/dev/crates/tauri-config-schema/schema.json",
"productName": "ClawPanel", "productName": "ClawPanel",
"version": "0.9.5", "version": "0.9.6",
"identifier": "ai.openclaw.clawpanel", "identifier": "ai.openclaw.clawpanel",
"build": { "build": {
"frontendDist": "../dist", "frontendDist": "../dist",

View File

@@ -2570,7 +2570,7 @@ function showSettings() {
<span style="font-size:10px;background:var(--primary);color:#fff;padding:1px 6px;border-radius:8px">推荐</span> <span style="font-size:10px;background:var(--primary);color:#fff;padding:1px 6px;border-radius:8px">推荐</span>
</div> </div>
<div style="font-size:var(--font-size-xs);color:var(--text-secondary);line-height:1.5;margin-bottom:10px"> <div style="font-size:var(--font-size-xs);color:var(--text-secondary);line-height:1.5;margin-bottom:10px">
面板用户免费使用部分模型,付费用户享全系列顶级模型,全部低至 2-3 折。选择模型后一键接入 无需自行申请 API Key选择模型即可一键接入。基础模型免费体验高级模型低至官方价 2-3 折
</div> </div>
<div style="display:flex;gap:8px;align-items:center;flex-wrap:wrap"> <div style="display:flex;gap:8px;align-items:center;flex-wrap:wrap">
<select id="ast-qtcool-model" class="form-input" style="font-size:12px;padding:5px 10px;min-width:140px;flex:1"> <select id="ast-qtcool-model" class="form-input" style="font-size:12px;padding:5px 10px;min-width:140px;flex:1">

View File

@@ -33,7 +33,7 @@ export async function render() {
<span style="font-size:10px;background:var(--primary);color:#fff;padding:1px 6px;border-radius:8px">推荐</span> <span style="font-size:10px;background:var(--primary);color:#fff;padding:1px 6px;border-radius:8px">推荐</span>
</div> </div>
<div style="font-size:var(--font-size-xs);color:var(--text-secondary);line-height:1.5"> <div style="font-size:var(--font-size-xs);color:var(--text-secondary);line-height:1.5">
面板用户免费使用部分模型,付费用户享全系列顶级模型支持,全部模型低至 2-3 折 无需自行注册 API一键添加即可使用。基础模型免费高级模型低至官方价 2-3 折
</div> </div>
</div> </div>
<div style="display:flex;gap:8px;align-items:center;flex-shrink:0"> <div style="display:flex;gap:8px;align-items:center;flex-shrink:0">