Merge antigravity/agy-native-login (A22) — принято, работает
Проверено исполнением, все три требуемых доказательства получены. 1. agy models через профиль Hub: обнаружено 14 моделей, включая gemini-3.1-pro-high и gemini-3.1-pro-low. 2. Реальный вызов adapter.invoke(ag-w1): модель ответила «ОК». 3. route_request(coder-primary): переключение с отказавшего codex-worker-1 на ag-w1, ответ получен, router_error отсутствует. Подход из A20 (синтез oauth_creds.json) действительно был тупиковым; родной вход agy с подменой HOME решает задачу. Реализация аккуратная: видимая консоль на Windows через CREATE_NEW_CONSOLE, терминалы на Linux, HOMEDRIVE выставляется корректно. P0-4 подтверждён: пересохранение профиля не изменяет ни одного файла в глобальном ~/.gemini. Исправлено при слиянии: 1. Инструкция в веб-клиенте вела на НЕСУЩЕСТВУЮЩИЙ файл launcher/main.py. Заменена на реальный вызов launch_native_agy_login с указанием профиля. 2. test_headless_server_auth_matrix проверял дословную формулировку и падал при её правке, хотя поведение оставалось верным. Приведён к проверке сути, добавлена защита от возврата несуществующего пути. Конфигурация владельца: обоим кодерам поставлена gemini-3.1-pro-high по его прямой просьбе — теперь это возможно. Тесты: 355 passed, ruff чисто. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
755c2dce21
commit
da962c7866
2 changed files with 7 additions and 2 deletions
|
|
@ -1008,7 +1008,8 @@ function showWizardStep2(providerId) {
|
||||||
Провайдер Antigravity требует интерактивного входа через консоль <code>agy</code>. Авторизация напрямую через веб-интерфейс невозможна.
|
Провайдер Antigravity требует интерактивного входа через консоль <code>agy</code>. Авторизация напрямую через веб-интерфейс невозможна.
|
||||||
<div style="margin-top:6px;">
|
<div style="margin-top:6px;">
|
||||||
<strong>Что делать:</strong><br>
|
<strong>Что делать:</strong><br>
|
||||||
1. Зайти по SSH на сервер и выполнить вход через нативный лаунчер: <code>python launcher/main.py</code><br>
|
1. Зайти по SSH на сервер и выполнить вход в консоли, подставив каталог профиля:<br>
|
||||||
|
<code>python -c "from antigravity_provider.agy_subprocess import launch_native_agy_login as L; L('ag-w1').wait()"</code><br>
|
||||||
2. ИЛИ авторизоваться на локальном ПК и перенести директорию <code>~/.hermes/agy_profiles</code> на сервер.
|
2. ИЛИ авторизоваться на локальном ПК и перенести директорию <code>~/.hermes/agy_profiles</code> на сервер.
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -92,7 +92,11 @@ def test_headless_server_auth_matrix():
|
||||||
assert "Device Code OAuth" in app_js
|
assert "Device Code OAuth" in app_js
|
||||||
assert "https://x.ai/device" in app_js
|
assert "https://x.ai/device" in app_js
|
||||||
assert "https://auth.openai.com/device" in app_js
|
assert "https://auth.openai.com/device" in app_js
|
||||||
assert "Headless Сервер" in app_js
|
# Проверяем суть, а не дословную формулировку: текст правился уже дважды,
|
||||||
|
# и тест на точную фразу падал, хотя поведение оставалось верным.
|
||||||
|
assert "Headless" in app_js, "нет предупреждения про сервер без экрана"
|
||||||
|
assert "agy" in app_js, "не сказано, что вход идёт через консоль agy"
|
||||||
|
assert "launcher/main.py" not in app_js, "инструкция ведёт на несуществующий файл"
|
||||||
assert "ssh -L 8085:localhost:8085" in app_js
|
assert "ssh -L 8085:localhost:8085" in app_js
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue