From 5ca772ebbef1955c0e187939de6c25471f77da88 Mon Sep 17 00:00:00 2001 From: bookworm Date: Mon, 27 Apr 2026 22:57:47 +0800 Subject: [PATCH] =?UTF-8?q?fix(v3.2.0):=20git=20proxy=20bypass=20+=20clone?= =?UTF-8?q?=20=E5=AE=8C=E6=95=B4=E6=80=A7=E9=AA=8C=E8=AF=81=E5=8A=A0?= =?UTF-8?q?=E5=9B=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. git http.proxy="" 强制 code.letcareme.com 直连 (VPN 环境 clone 失败根因) 2. clone 验证从只检查 CLAUDE.md 升级为 CLAUDE.md + skills/ + hooks/ 三项 3. remote URL 自动修正 (旧仓库 → bookworm-smart-assistant) 确保 VPN 用户一键安装体验完整 Co-Authored-By: Claude Opus 4.6 (1M context) --- Bookworm-Setup.exe | Bin 238080 -> 238080 bytes auto-setup.ps1 | 15 +++++++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/Bookworm-Setup.exe b/Bookworm-Setup.exe index c1b5facee9e136ca86b64f98cae8c743e0d7ab97..7e88ccf33fb50ab046523268e911f08e78c3c3b4 100644 GIT binary patch delta 572 zcmZoT!q;$wZ$bx?bLGS?ImUYvSBCTToMvM1X8?i+ObkChPE-`0tjHM8_+)Y;W4-zT zpd1Kz05KB-D+5ad6GMkL0|O(FU&O$`cEO8*!Ninly5U+T&CLN!4O&bFrp=dhwqMd= zoN6JPR+^Vwl9`{U5RzJ4qU)TKpO@;KpIeZVT9T?zJv~s2Nn%SP0i`asf-=<$_i!1dPaH%Rtit|?0VXNSeuz&rF=DjbrZg{eL@$(67 zPuK5x(Y{3?8RS5Pr%N`z*s@fUmkVTKa(-S~X1ao|ZhB6BQeuvRQbtKhfnG+*bR}md zNiMyDqWp?VB?Tp=?GIBKjd}P{ya;rvzdWPZ_IG8BGZ}eNq^7T{V01(k+Fo74Xu?E^ z3Dbcl=uTJFWK^F1poCF;du=7-vFF=e5}DpQ@xKz^wd{hG@2-8Xms~0GeYxFX2~!V; u&=zRy0wa^*9EhzjQBjQX!1S+cm?F3Htz-K2k?Dc;cEJVA?-?f=umb?((bPEr delta 386 zcmZoT!q;$wZ$byty7Gx#a*T2lSBCSQImN`_&j17um>7P1oTw-~S&=cGQDt%?W4$`V zX(o^ig9i{ZF|abY)H5-3cr!3C0{KM@3~U#?7#NC8n5GLZVAk9mz|^3{lyA~}NoV^d z9mc5^(_6l%5_{%BVbjzdjSX5}@|3QbwS)R5o=w&{W;&s+vGs-P8pukd?s3<;t>sqGB=?V*& Y4{YaK$MowXlY;ejU$null +# v3.2.0: 强制 git 对国内仓库直连 (VPN 开启时 git 可能走代理导致 clone 失败) +git config --global "http.https://code.letcareme.com/.proxy" "" 2>$null # 克隆/更新 config 仓库 (.claude/) — 使用 Run-CmdWithUI 防止 UI 冻结 # 辅助函数: clone 后缓存凭证到 Windows Credential Manager @@ -1652,16 +1655,16 @@ elseif (Test-Path $ClaudeDir) { # v3.0.1 先匿名克隆 (repos 已 public + REQUIRE_SIGNIN_VIEW=false), 失败才弹凭证 $r = Run-CmdWithUI "git" @("clone", "--depth", "1", $GitUrl, $ClaudeDir) "克隆配置仓库 (匿名)" 180000 - if (-not (Test-Path (Join-Path $ClaudeDir "CLAUDE.md"))) { + if (-not (Test-CloneComplete)) { Log-Warn "匿名克隆失败, 弹凭证对话框重试..." $cred = Show-GiteaCredentialDialog if ($cred) { $cloneUrl = $GitUrl -replace '://', "://$([System.Uri]::EscapeDataString($cred.User)):$([System.Uri]::EscapeDataString($cred.Pass))@" $r = Run-CmdWithUI "git" @("clone", "--depth", "1", $cloneUrl, $ClaudeDir) "克隆配置仓库 (认证)" 180000 - if (Test-Path (Join-Path $ClaudeDir "CLAUDE.md")) { Cache-GitCredentials $cred } + if (Test-CloneComplete) { Cache-GitCredentials $cred } } } - if (Test-Path (Join-Path $ClaudeDir "CLAUDE.md")) { + if (Test-CloneComplete) { Log-OK "配置仓库克隆成功 (旧目录已备份)" } else { Log-Fail "克隆失败" @@ -1674,16 +1677,16 @@ else { Log-Info "首次安装, 匿名克隆配置仓库..." # v3.0.1 先匿名, 失败才弹凭证 $r = Run-CmdWithUI "git" @("clone", "--depth", "1", $GitUrl, $ClaudeDir) "克隆配置仓库 (匿名)" 180000 - if (-not (Test-Path (Join-Path $ClaudeDir "CLAUDE.md"))) { + if (-not (Test-CloneComplete)) { Log-Warn "匿名克隆失败, 弹凭证对话框重试..." $cred = Show-GiteaCredentialDialog if ($cred) { $cloneUrl = $GitUrl -replace '://', "://$([System.Uri]::EscapeDataString($cred.User)):$([System.Uri]::EscapeDataString($cred.Pass))@" $r = Run-CmdWithUI "git" @("clone", "--depth", "1", $cloneUrl, $ClaudeDir) "克隆配置仓库 (认证)" 180000 - if (Test-Path (Join-Path $ClaudeDir "CLAUDE.md")) { Cache-GitCredentials $cred } + if (Test-CloneComplete) { Cache-GitCredentials $cred } } } - if (Test-Path (Join-Path $ClaudeDir "CLAUDE.md")) { + if (Test-CloneComplete) { Log-OK "配置仓库克隆成功" } else { Log-Fail "克隆失败"