mirror of
https://github.com/qingchencloud/clawpanel.git
synced 2026-07-09 14:31:57 +08:00
feat: v0.9.1 — 面板设置页、网络代理、后台安装、模型服务商扩展、多项修复
新功能: - 新增独立面板设置页面(网络代理 + 代理测试 + 模型代理开关 + npm源) - 网络代理支持:下载类操作走代理,自动绕过内网地址 - 安装/升级/卸载改为后台执行,不再阻塞界面 - 全局任务状态栏:关闭弹窗后顶部显示进度,可重新查看日志 - 安装/卸载完成后自动刷新界面状态 - 新增多个模型服务商快捷配置(硅基流动、火山引擎、阿里云百炼、智谱AI、MiniMax、NVIDIA NIM、胜算云) - AI助手浮动按钮恢复,首次提示可拖动,实时聊天页隐藏 修复: - 修复版本更新误判(本地版本高于远端不再误弹更新) - 修复Windows下nvm/自定义Node路径CLI检测 - 修复npm EEXIST文件冲突(--force + 安装前自动清理) - 修复汉化版-zh.x后缀版本比较错误 - 修复模型URL自动拼接/v1问题 - 修复切换版本后Gateway重装失败(PATH缓存刷新) - 修复切换助手服务商时旧模型名残留 优化: - macOS图标改用docs/logo.png统一生成 - 内置推荐版本号更新到OpenClaw 2026.3.13 - 错误诊断增强(EEXIST识别) - 弹窗标题根据操作类型显示 - 新增版本维护文档
This commit is contained in:
29
src/main.js
29
src/main.js
@@ -4,7 +4,7 @@
|
||||
import { registerRoute, initRouter, navigate, setDefaultRoute } from './router.js'
|
||||
import { renderSidebar, openMobileSidebar } from './components/sidebar.js'
|
||||
import { initTheme } from './lib/theme.js'
|
||||
import { detectOpenclawStatus, isOpenclawReady, isGatewayRunning, onGatewayChange, startGatewayPoll, onGuardianGiveUp, resetAutoRestart, loadActiveInstance, getActiveInstance, onInstanceChange } from './lib/app-state.js'
|
||||
import { detectOpenclawStatus, isOpenclawReady, isUpgrading, isGatewayRunning, onGatewayChange, startGatewayPoll, onGuardianGiveUp, resetAutoRestart, loadActiveInstance, getActiveInstance, onInstanceChange } from './lib/app-state.js'
|
||||
import { wsClient } from './lib/ws-client.js'
|
||||
import { api, checkBackendHealth, isBackendOnline, onBackendStatusChange } from './lib/tauri-api.js'
|
||||
import { version as APP_VERSION } from '../package.json'
|
||||
@@ -306,6 +306,7 @@ async function boot() {
|
||||
registerRoute('/cron', () => import('./pages/cron.js'))
|
||||
registerRoute('/usage', () => import('./pages/usage.js'))
|
||||
registerRoute('/communication', () => import('./pages/communication.js'))
|
||||
registerRoute('/settings', () => import('./pages/settings.js'))
|
||||
|
||||
renderSidebar(sidebar)
|
||||
initRouter(content)
|
||||
@@ -407,6 +408,30 @@ async function boot() {
|
||||
if (isGatewayRunning()) autoConnectWebSocket()
|
||||
})
|
||||
}
|
||||
|
||||
// 全局监听后台任务完成/失败事件,自动刷新安装状态和侧边栏
|
||||
if (window.__TAURI_INTERNALS__) {
|
||||
import('@tauri-apps/api/event').then(async ({ listen }) => {
|
||||
const refreshAfterTask = async () => {
|
||||
// 清除 API 缓存,确保拿到最新状态
|
||||
const { invalidate } = await import('./lib/tauri-api.js')
|
||||
invalidate('check_installation', 'get_services_status', 'get_version_info')
|
||||
await detectOpenclawStatus()
|
||||
renderSidebar(sidebar)
|
||||
// 如果安装完成后变为就绪,跳转到仪表盘
|
||||
if (isOpenclawReady() && window.location.hash === '#/setup') {
|
||||
navigate('/dashboard')
|
||||
}
|
||||
// 如果卸载后变为未就绪,跳转到 setup
|
||||
if (!isOpenclawReady() && !isUpgrading()) {
|
||||
setDefaultRoute('/setup')
|
||||
navigate('/setup')
|
||||
}
|
||||
}
|
||||
await listen('upgrade-done', refreshAfterTask)
|
||||
await listen('upgrade-error', refreshAfterTask)
|
||||
}).catch(() => {})
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -729,7 +754,7 @@ function startUpdateChecker() {
|
||||
} catch {}
|
||||
try {
|
||||
const ver = await api.getVersionInfo()
|
||||
lines.push(`- 版本: ${ver?.current || '?'} → ${ver?.latest || '?'}`)
|
||||
lines.push(`- 版本: 当前 ${ver?.current || '?'} / 推荐 ${ver?.recommended || '?'} / 最新 ${ver?.latest || '?'}${ver?.ahead_of_recommended ? ' / 当前版本高于推荐版' : ''}`)
|
||||
} catch {}
|
||||
return { detail: lines.join('\n') }
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user