Setup.sh v3.0.3: onboarding pre-fill + header bump

This commit is contained in:
bookworm-admin 2026-04-21 19:05:01 +08:00
parent ddcb53fe95
commit 656460e13e

View File

@ -1,7 +1,7 @@
#!/bin/bash #!/bin/bash
# ============================================================ # ============================================================
# Bookworm Portable - macOS Setup (从 boot 仓库内运行) # Bookworm Portable - macOS Setup (从 boot 仓库内运行)
# Version: 2.2.4 # Version: 3.0.3
# #
# 用法: cd ~/bookworm-boot && bash Bookworm-Setup.sh # 用法: cd ~/bookworm-boot && bash Bookworm-Setup.sh
# #
@ -429,11 +429,6 @@ if [ -z "$ANTHROPIC_API_KEY" ]; then
rm -f "$HOME/.zshrc.bak" "$HOME/.bashrc.bak" 2>/dev/null || true rm -f "$HOME/.zshrc.bak" "$HOME/.bashrc.bak" 2>/dev/null || true
export ANTHROPIC_API_KEY="$SK_KEY" export ANTHROPIC_API_KEY="$SK_KEY"
export ANTHROPIC_BASE_URL="https://bww.letcareme.com" export ANTHROPIC_BASE_URL="https://bww.letcareme.com"
# v3.0.2: 预填 ~/.claude.json 跳过 Claude Code 2.0.1 登录选择页 (两选项都走 anthropic.com OAuth, 国内不通)
CLAUDE_JSON="$HOME/.claude.json"
KEY_PREFIX="${SK_KEY:0:20}"
printf '{"hasCompletedOnboarding":true,"hasSeenWelcome":true,"bypassPermissionsModeAccepted":true,"customApiKeyResponses":{"approved":["%s"],"rejected":[]},"numStartups":5,"projects":{}}' "$KEY_PREFIX" > "$CLAUDE_JSON" 2>/dev/null && ok "Claude Code onboarding 已预填"
chmod 600 "$CLAUDE_JSON" 2>/dev/null || true
# 存 Keychain 本日免密 # 存 Keychain 本日免密
security add-generic-password -s "$KEYCHAIN_SERVICE" -a "$KEYCHAIN_ACCOUNT" -w "ANTHROPIC_API_KEY=$SK_KEY security add-generic-password -s "$KEYCHAIN_SERVICE" -a "$KEYCHAIN_ACCOUNT" -w "ANTHROPIC_API_KEY=$SK_KEY
ANTHROPIC_BASE_URL=https://bww.letcareme.com ANTHROPIC_BASE_URL=https://bww.letcareme.com
@ -527,6 +522,30 @@ else
fi fi
fi fi
# ─── v3.0.2: 预填 ~/.claude.json 跳过 Claude Code 2.0.1 的登录选择页 ───
# Win auto-setup.ps1:1361-1369 等价逻辑: 两选项都走 anthropic.com OAuth, 国内不通
# 预填 hasCompletedOnboarding + customApiKeyResponses.approved 直接进主界面
if [ -n "$ANTHROPIC_API_KEY" ] && command -v node &>/dev/null; then
BW_KEY_PREFIX="${ANTHROPIC_API_KEY:0:20}" node -e '
const fs = require("fs"), p = require("path");
const H = process.env.HOME || process.env.USERPROFILE;
const f = p.join(H, ".claude.json");
const prefix = process.env.BW_KEY_PREFIX || "";
let d = {};
try { d = JSON.parse(fs.readFileSync(f, "utf8")); } catch (e) {}
d.hasCompletedOnboarding = true;
d.hasSeenWelcome = true;
d.bypassPermissionsModeAccepted = true;
d.customApiKeyResponses = d.customApiKeyResponses || { approved: [], rejected: [] };
if (prefix && !d.customApiKeyResponses.approved.includes(prefix)) {
d.customApiKeyResponses.approved.push(prefix);
}
if (d.numStartups === undefined) d.numStartups = 5;
if (!d.projects) d.projects = {};
fs.writeFileSync(f, JSON.stringify(d, null, 2));
' 2>/dev/null && success "Claude Code onboarding 已预填 (跳过 2.0.1 登录选择页)" || warn ".claude.json onboarding 预填失败 (首次启动可能需手工过登录画面)"
fi
# ── MCP 注入到 ~/.claude.json (Claude Code v2.1+ 正确位置) ── # ── MCP 注入到 ~/.claude.json (Claude Code v2.1+ 正确位置) ──
INJECT_SCRIPT="$CLAUDE_DIR/inject-mcp.js" INJECT_SCRIPT="$CLAUDE_DIR/inject-mcp.js"
MCP_INJECTED=false MCP_INJECTED=false