From 1f90b933c2a88f7f6984a622bb214d47d4eb9430 Mon Sep 17 00:00:00 2001 From: bookworm Date: Mon, 27 Apr 2026 22:51:03 +0800 Subject: [PATCH] fix(v3.2.0): auto-detect and fix stale git remote in .claude/ When .claude/ was previously cloned from bookworm-portable-config (deleted), re-running the installer would git pull against the wrong remote. Now auto-detects stale remote and switches to bookworm-smart-assistant, then fetches + resets to get the correct content (including skills/). Co-Authored-By: Claude Opus 4.6 (1M context) --- Bookworm-Setup.exe | Bin 237568 -> 238080 bytes auto-setup.ps1 | 13 +++++++++++++ 2 files changed, 13 insertions(+) diff --git a/Bookworm-Setup.exe b/Bookworm-Setup.exe index c8cf5cf19a48c393d930956caf2e384caf3ccde6..c1b5facee9e136ca86b64f98cae8c743e0d7ab97 100644 GIT binary patch delta 799 zcmZoTz}IkuZ$gLCy7Kp#3{dcZfr*iuk(+^G4HE;y7l@$T>4~et_|BYSV(?SdBrL$L|dbi-9lnwtZd8nl@5O`0$1Y`>(#SYTtPtWajGXQXFfrSNRQ z!k4Rh6pB)F^Gi|{LW6vC6rN3A{$%&$r@JP%m9nnHSJiGr@Pf{JraVrfdMOJ)(w-1O8E-O{2Qh5Vw-^vpa3 zBRiG6(wrPk1>K_5f}F(UR0Z`IJ)mY4bsYtDbzUw7C{RhQC`e5%NlkG|EKXGbTA|{e zSrQ5~2dK{ z`+V;@h;Lzjc-GVYbizbn;5^$k!3xbF9R+wODL~z*G`&%mNl6tNu*IkW0P_blAf^{i zVH6XADt)?r6T&c%s~DB0KXhf3oqi>aQFwY_CgXG~Wre59nx4&@19KW&i;lv}ISntC zH7cZ~f;`m)_7j_Hk)K;I4ZvbI-i9QL2nRbQ&|p?kZC)AsKxnZy~l^Q~d}{gKgnyWl+L_ly$_*a2LwA+!Jh delta 261 zcmZoT!q;$sZ$gI>Q}+8z1}J#Iz{JSS$j!j8iiv^Y3q(-v#Kcu$d`FHmF@%Ez9xyTd z_&8Bfc(Nj60_O^#G6kUEs>xl9+Kg)^Z(~$voHzL%qq5owpbQXr05KB-D}zl96GMkL z0|O(FU&O$`cEO8*A3Zg*J1)Wae42IxE(-~-vMFi}yQ n=>!wdq1&0(GVw4jS6INzxSeku)9;Ur7TX0EFu!M$null & git -C $ClaudeDir config user.name "Bookworm" 2>$null + # v3.2.0: 校验 remote URL, 旧仓库自动切换到新仓库 + try { + $currentRemote = (& git -C $ClaudeDir remote get-url origin 2>$null) -replace '\.git$', '' + $expectedBase = ($GitUrl -replace '\.git$', '') + if ($currentRemote -and $currentRemote -notmatch 'bookworm-smart-assistant') { + Log-Warn "配置仓库 remote 指向旧源: $currentRemote, 切换到 $GitUrl" + & git -C $ClaudeDir remote set-url origin $GitUrl 2>$null + Log-OK "remote 已切换到 bookworm-smart-assistant" + } + } catch {} try { # 强制清除冲突状态 (运行时文件不重要, Phase 5 会重新渲染) & git -C $ClaudeDir reset --hard HEAD 2>&1 | Out-Null + # 如果 remote 已切换, 需要 fetch 新仓库再 reset + & git -C $ClaudeDir fetch origin 2>&1 | Out-Null + & git -C $ClaudeDir reset --hard origin/main 2>&1 | Out-Null $r = Run-CmdWithUI "git" @("-C", $ClaudeDir, "pull", "--rebase", "--autostash") "同步配置仓库" 120000 if ($r.OK) { Log-OK "配置仓库已更新"