fix: чистка BOM, приложение не читало конфиги с BOM
This commit is contained in:
@@ -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) {
|
function Merge-Meta($applied, $routes) {
|
||||||
$p = Join-Path $LIB "_meta.json"
|
$p = Join-Path $LIB "_meta.json"
|
||||||
$old = Read-Json $p
|
$old = Read-Json $p
|
||||||
@@ -159,6 +186,7 @@ if ($Mode -eq "restore") {
|
|||||||
Say "Откат на родного Claude..."
|
Say "Откат на родного Claude..."
|
||||||
if (-not (Test-Path (Join-Path $LIB "_meta.json"))) { Ok "Конфигов нет, откатывать нечего."; return }
|
if (-not (Test-Path (Join-Path $LIB "_meta.json"))) { Ok "Конфигов нет, откатывать нечего."; return }
|
||||||
Merge-Meta "default" "none"
|
Merge-Meta "default" "none"
|
||||||
|
Repair-JsonBom
|
||||||
Ok "Применён пустой профиль Default."
|
Ok "Применён пустой профиль Default."
|
||||||
Write-Host " Если приложение всё равно открывается на чужом мозге: меню аккаунта внизу слева -> Sign out,"
|
Write-Host " Если приложение всё равно открывается на чужом мозге: меню аккаунта внизу слева -> Sign out,"
|
||||||
Write-Host " затем на экране входа выбери обычный вход по почте или Google."
|
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 }
|
if ($haveOllama) { Merge-Meta "ollama" $brain } else { Merge-Meta "zai" $brain }
|
||||||
|
Repair-JsonBom
|
||||||
|
|
||||||
# ---------- Самопроверка ----------
|
# ---------- Самопроверка ----------
|
||||||
Say "Проверяю, что получилось..."
|
Say "Проверяю, что получилось..."
|
||||||
|
|||||||
Reference in New Issue
Block a user