From af2f59330d83c8791ca56813243ea8aca6fc7fab Mon Sep 17 00:00:00 2001 From: giteaMyFirstvdsRoot Date: Tue, 1 Sep 2026 19:39:10 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=D1=87=D0=B8=D1=81=D1=82=D0=BA=D0=B0=20B?= =?UTF-8?q?OM,=20=D0=BF=D1=80=D0=B8=D0=BB=D0=BE=D0=B6=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D0=B5=20=D0=BD=D0=B5=20=D1=87=D0=B8=D1=82=D0=B0=D0=BB=D0=BE=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=D0=B8=20=D1=81=20BOM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- setup.ps1 | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/setup.ps1 b/setup.ps1 index b24e422..35a525e 100644 --- a/setup.ps1 +++ b/setup.ps1 @@ -73,6 +73,33 @@ function Clear-DeploymentPin { } } +# Приложение падает на BOM: в логе видно +# [managedConfig] Failed to read config library meta: Unexpected token 'п»ї' +# и тогда ВСЯ библиотека конфигов не читается. BOM берётся из старых версий +# скрипта и из Блокнота, который по умолчанию сохраняет UTF-8 именно так. +# Поэтому чистим BOM у всех json приложения, а не только у своих. +function Repair-JsonBom { + $files = @() + if (Test-Path $LIB) { $files += Get-ChildItem $LIB -Filter *.json -ErrorAction SilentlyContinue } + foreach ($d in @($C1P, $C3P)) { + foreach ($n in @("developer_settings.json", "claude_desktop_config.json")) { + $f = Join-Path $d $n + if (Test-Path $f) { $files += Get-Item $f } + } + } + $fixed = 0 + foreach ($f in $files) { + try { + $b = [IO.File]::ReadAllBytes($f.FullName) + if ($b.Length -ge 3 -and $b[0] -eq 239 -and $b[1] -eq 187 -and $b[2] -eq 191) { + [IO.File]::WriteAllBytes($f.FullName, $b[3..($b.Length - 1)]) + $fixed++ + } + } catch { } + } + if ($fixed -gt 0) { Ok "Убран BOM у $fixed файлов конфигурации (приложение их не читало)." } +} + function Merge-Meta($applied, $routes) { $p = Join-Path $LIB "_meta.json" $old = Read-Json $p @@ -159,6 +186,7 @@ if ($Mode -eq "restore") { Say "Откат на родного Claude..." if (-not (Test-Path (Join-Path $LIB "_meta.json"))) { Ok "Конфигов нет, откатывать нечего."; return } Merge-Meta "default" "none" + Repair-JsonBom Ok "Применён пустой профиль Default." Write-Host " Если приложение всё равно открывается на чужом мозге: меню аккаунта внизу слева -> Sign out," Write-Host " затем на экране входа выбери обычный вход по почте или Google." @@ -306,6 +334,7 @@ if ($brain -eq "zai" -or $brain -eq "both") { } if ($haveOllama) { Merge-Meta "ollama" $brain } else { Merge-Meta "zai" $brain } +Repair-JsonBom # ---------- Самопроверка ---------- Say "Проверяю, что получилось..."