diff --git a/setup.ps1 b/setup.ps1 index aafa784..b24e422 100644 --- a/setup.ps1 +++ b/setup.ps1 @@ -120,11 +120,27 @@ function Check-Applied { return "НЕТ: применён пустой конфиг «$name»" } +# Повторяет пункт меню Developer -> Clear Cache and Restart. В коде приложения он +# чистит ТОЛЬКО кэши: HTTP, скомпилированный JS, шейдеры, service workers, DNS. +# Ни cookies, ни Local Storage там нет, поэтому вход в аккаунт, чаты, MCP, +# скиллы и наши конфиги остаются на месте. Делать только при закрытом приложении. +# ВАЖНО: не путать с соседним пунктом Reset App Data, тот сносит папку целиком. +function Clear-Caches { + foreach ($d in @($C1P, $C3P)) { + if (-not (Test-Path $d)) { continue } + foreach ($c in @("Cache", "Code Cache", "GPUCache", "DawnGraphiteCache", "DawnWebGPUCache", "Service Worker")) { + Remove-Item (Join-Path $d $c) -Recurse -Force -ErrorAction SilentlyContinue + } + } + Ok "Кэши очищены (чаты, входы и конфиги не тронуты)." +} + function Restart-Claude { Say "Перезапускаю приложение Claude..." Get-Process -Name "Claude*" -ErrorAction SilentlyContinue | Stop-Process -Force -ErrorAction SilentlyContinue $i = 0 while ((Get-Process -Name "Claude*" -ErrorAction SilentlyContinue) -and $i -lt 12) { Start-Sleep 1; $i++ } + Clear-Caches $exe = Find-ClaudeExe if (-not $exe) { Warn "Не нашёл claude.exe, открой Claude вручную."; return } Start-Process $exe.FullName @@ -143,7 +159,9 @@ if ($Mode -eq "restore") { Say "Откат на родного Claude..." if (-not (Test-Path (Join-Path $LIB "_meta.json"))) { Ok "Конфигов нет, откатывать нечего."; return } Merge-Meta "default" "none" - Ok "Применён пустой конфиг Default: приложение вернётся к родному входу." + Ok "Применён пустой профиль Default." + Write-Host " Если приложение всё равно открывается на чужом мозге: меню аккаунта внизу слева -> Sign out," + Write-Host " затем на экране входа выбери обычный вход по почте или Google." Write-DevFlag Restart-Claude Write-Host "`nЕсли что-то осталось сломанным, полный сброс (сотрёт чаты стороннего режима):"