feat: 飞书官方插件迁移 + 配对审批 + Gateway防卡死 + 微信升级修复 + 更新检测修复

- 飞书渠道从 @openclaw/feishu 迁移到 @larksuite/openclaw-lark 官方插件
- 保存飞书配置时自动禁用旧 feishu 插件,防止新旧插件冲突
- 所有主要渠道(飞书/Telegram/Discord/Slack)启用配对审批UI
- gateway_command 增加20s超时,超时后force-kill+fresh start
- 全平台启动前端口占用检查,防止Guardian无限拉起
- Linux gateway_command 补齐 Duration 导入和 cleanup_zombie 实现
- Guardian自动守护在Tauri桌面端也启用,轮询间隔30s→15s
- 微信渠道:升级操作不再弹出扫码二维码,按钮文案区分安装/升级
- 版本更新检测:CI不再将minAppVersion写死为当前版本
- 部署脚本增强OpenClaw检测,支持已安装的官方版
- 日间/夜间模式圆形扩散切换动画(View Transitions API)
- API错误信息完整展示(429限流等),URL自动转可点击链接
- 第三方API接入引导优化:移除内置密钥,引导式流程
- 修复全平台 Clippy 警告(strip_prefix/dead_code/unnecessary_unwrap等)
- Rust代码格式化修复(cargo fmt)
- toast组件支持HTML内容渲染
- Rust后端test_model返回详细错误信息
This commit is contained in:
晴天
2026-03-23 20:37:48 +08:00
parent dccb4b4dbf
commit 3687e26d5d
50 changed files with 8055 additions and 2715 deletions

View File

@@ -129,18 +129,69 @@ install_git() {
echo "✅ Git 安装完成"
}
# 查找 openclaw 可执行文件(兼容各种安装方式)
find_openclaw() {
# 1. 直接在 PATH 中查找
if command -v openclaw &> /dev/null; then
echo "$(command -v openclaw)"
return 0
fi
# 2. 常见 npm 全局安装路径
local candidates=(
"/usr/local/bin/openclaw"
"/usr/bin/openclaw"
"$HOME/.npm-global/bin/openclaw"
"$HOME/.local/bin/openclaw"
)
# 3. 从 npm prefix 获取(不使用 sudo避免触发密码提示
local npm_prefix=$(npm config get prefix 2>/dev/null)
if [ -n "$npm_prefix" ]; then
candidates+=("$npm_prefix/bin/openclaw")
fi
for p in "${candidates[@]}"; do
if [ -x "$p" ]; then
echo "$p"
return 0
fi
done
return 1
}
# 检测 OpenClaw 版本来源(官方 vs 汉化版)
detect_openclaw_source() {
local oc_bin="$1"
local ver=$("$oc_bin" --version 2>/dev/null || echo "")
if echo "$ver" | grep -qi "zh\|汉化\|chinese"; then
echo "chinese"
else
echo "official"
fi
}
# 安装 OpenClaw
install_openclaw() {
if command -v openclaw &> /dev/null; then
echo "✅ OpenClaw 已安装: $(openclaw --version 2>/dev/null || echo '未知版本')"
local oc_path=$(find_openclaw)
if [ -n "$oc_path" ]; then
local oc_ver=$("$oc_path" --version 2>/dev/null || echo "未知版本")
local oc_src=$(detect_openclaw_source "$oc_path")
if [ "$oc_src" = "chinese" ]; then
echo "✅ OpenClaw 汉化版已安装: $oc_ver (${oc_path})"
else
echo "✅ OpenClaw 已安装: $oc_ver (${oc_path})"
fi
# 确保 openclaw 在 PATH 中(防止后续步骤找不到)
if ! command -v openclaw &> /dev/null; then
export PATH="$(dirname "$oc_path"):$PATH"
echo " 已将 $(dirname "$oc_path") 加入 PATH"
fi
else
echo "📦 安装 OpenClaw 汉化版..."
if [ "$IS_ROOT" = true ]; then
npm install -g @qingchencloud/openclaw-zh --registry "$NPM_REGISTRY" || \
npm install -g @qingchencloud/openclaw-zh --registry https://registry.npmjs.org
else
sudo npm install -g @qingchencloud/openclaw-zh --registry "$NPM_REGISTRY" || \
sudo npm install -g @qingchencloud/openclaw-zh --registry https://registry.npmjs.org
sudo -E npm install -g @qingchencloud/openclaw-zh --registry "$NPM_REGISTRY" || \
sudo -E npm install -g @qingchencloud/openclaw-zh --registry https://registry.npmjs.org
fi
echo "✅ OpenClaw 安装完成"
fi