Оба места утверждали, что у Домклика один выделенный резидентный прокси и пула нет. Это перестало быть правдой ещё в #2800 (миграция 253 сняла резервацию узла), но текст остался — и именно на него опирался тикет #3189, поставленный под «калибровку» ограничения, которого не существует. Свип к тому же ходит через пул давно (serp.py:359), а бэкфилл подключён к нему в PR #3222. Заодно докстринг называл не тот ограничитель: свип кладёт не счётчик провалов lease, а break по первому DomClickBlockedError (#2854) — до ротации дело не доходит ни при каком счётчике, отсюда buckets_completed=0. Только комментарии, поведение не меняется. Миграция 175 уже применена, а _schema_migrations трекает по имени файла без checksum — правка текста её не перезапустит.
89 lines
4.8 KiB
PowerShell
89 lines
4.8 KiB
PowerShell
# setup-bot-env.ps1
|
||
# Set Windows User-scope env vars для autonomous multi-agent workflow.
|
||
#
|
||
# Запускается ОДИН РАЗ на каждой машине пользователя. Не нужен admin.
|
||
# Effect: 7 User-scope env vars persistent в registry.
|
||
#
|
||
# Где взять токены:
|
||
# 1. Vault meta/00_credentials.md (sensitive, не в git) — секция "Forgejo bot-users"
|
||
# 2. Или сгенерировать новые: см. там же секция "Rotation / revocation"
|
||
#
|
||
# Безопасность:
|
||
# - Скрипт ожидает чтобы ты ВПИСАЛ tokens сам перед запуском (placeholder ниже)
|
||
# - НЕ коммить скрипт с реальными токенами!
|
||
# - После запуска env vars в registry — можешь удалить локальную копию
|
||
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
# REPLACE PLACEHOLDERS BELOW WITH ACTUAL TOKENS FROM VAULT
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
|
||
$tokens = @{
|
||
"FORGEJO_TOKEN_ANALYST" = "REPLACE_ME_FROM_VAULT"
|
||
"FORGEJO_TOKEN_BACKEND" = "REPLACE_ME_FROM_VAULT"
|
||
"FORGEJO_TOKEN_FRONTEND" = "REPLACE_ME_FROM_VAULT"
|
||
"FORGEJO_TOKEN_REVIEWER" = "REPLACE_ME_FROM_VAULT"
|
||
"FORGEJO_TOKEN_QA" = "REPLACE_ME_FROM_VAULT"
|
||
"FORGEJO_URL_BOTS" = "https://git.gendsgn.ru"
|
||
"FORGEJO_REPO_BOTS" = "lekss361/gendesign"
|
||
}
|
||
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
# Validation
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
|
||
$placeholderCount = ($tokens.Values | Where-Object { $_ -eq "REPLACE_ME_FROM_VAULT" }).Count
|
||
if ($placeholderCount -gt 0) {
|
||
Write-Error "❌ $placeholderCount placeholders не заменены. Открой vault meta/00_credentials.md, секция 'Forgejo bot-users', и вставь реальные PAT'ы вместо REPLACE_ME_FROM_VAULT."
|
||
exit 1
|
||
}
|
||
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
# Apply
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
|
||
Write-Host "=== Setting 7 User-scope env vars (persistent) ===" -ForegroundColor Cyan
|
||
|
||
foreach ($k in $tokens.Keys) {
|
||
[System.Environment]::SetEnvironmentVariable($k, $tokens[$k], "User")
|
||
Set-Item -Path "env:$k" -Value $tokens[$k]
|
||
|
||
if ($k -like "FORGEJO_TOKEN_*") {
|
||
$suffix = $tokens[$k].Substring($tokens[$k].Length - 4)
|
||
Write-Host " $k = ****$suffix"
|
||
} else {
|
||
Write-Host " $k = $($tokens[$k])"
|
||
}
|
||
}
|
||
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
# Verify
|
||
# ──────────────────────────────────────────────────────────────────────
|
||
|
||
Write-Host ""
|
||
Write-Host "=== Verify (read back from User scope) ===" -ForegroundColor Cyan
|
||
|
||
$allOK = $true
|
||
foreach ($k in $tokens.Keys) {
|
||
$stored = [System.Environment]::GetEnvironmentVariable($k, "User")
|
||
if ($stored -eq $tokens[$k]) {
|
||
Write-Host " $k`: OK (len=$($stored.Length))"
|
||
} else {
|
||
Write-Host " $k`: MISMATCH (stored len=$($stored.Length))" -ForegroundColor Red
|
||
$allOK = $false
|
||
}
|
||
}
|
||
|
||
Write-Host ""
|
||
if ($allOK) {
|
||
Write-Host "✓ All 7 env vars set successfully." -ForegroundColor Green
|
||
Write-Host ""
|
||
Write-Host "Запуск окна:"
|
||
Write-Host " claude"
|
||
Write-Host " # в чате:"
|
||
Write-Host " /work-as-backend # любая из 5: analyst/backend/frontend/reviewer/qa"
|
||
Write-Host " # pre-flight выполнится сам через env vars"
|
||
Write-Host " /loop dynamic # или другой cadence"
|
||
} else {
|
||
Write-Host "✗ Some env vars failed to set." -ForegroundColor Red
|
||
exit 1
|
||
}
|