Тринадцать файлов существовали только на диске ПК владельца, в рабочей копии, отставшей от origin/main на 122 коммита. Их реализация и тесты давно влиты: tests/test_a42_provider_connect.py, test_a49_subagents_skills_memory.py, test_a51_hub_controls_hermes.py, test_a52_local_models_supervisor_dual.py, test_a55_account_connection.py, test_a56_context_compression.py и другие. Постановок, объясняющих, что эти тесты обязаны доказывать, в репозитории не было. Правило записано в agents/AGENTS.md: задание живёт в репозитории, а не в переписке и не в личных папках на диске. A48, A50 и A54 не переносятся: они уже есть на origin под другими именами, содержимое совпадает с точностью до перевода строки в конце файла. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
122 lines
10 KiB
Markdown
122 lines
10 KiB
Markdown
# Задание A55: оставшиеся дефекты подключения аккаунтов
|
||
|
||
## Дата поступления
|
||
2026-08-31
|
||
|
||
## База
|
||
|
||
`origin/main` (`26f7d2c`).
|
||
|
||
```
|
||
git fetch origin --prune
|
||
git checkout -b antigravity/a55-account-connection origin/main
|
||
```
|
||
|
||
В `main` напрямую не пушить.
|
||
|
||
## Порядок исполнения
|
||
|
||
Два прохода: **Flash** реализует, **Pro** проводит аудит. Пункт **P0-6** написан для аудитора.
|
||
|
||
Владелец не может настроить ни одного аккаунта. Это блокирует всю работу с хабом.
|
||
|
||
---
|
||
|
||
## Что ревьюер уже починил — не переделывать
|
||
|
||
В `main` закрыто и проверено исполнением:
|
||
|
||
```
|
||
кэш опознания _identities/_snapshots не чистились при удалении ключа:
|
||
слот, переиспользованный под другой аккаунт, показывал
|
||
прежнюю почту. Добавлен forget_profile.
|
||
NVIDIA успешный список моделей теперь считается доказательством
|
||
рабочего ключа; отказ пробного запроса («Function ... Not
|
||
found for account») больше не валит подключение.
|
||
401 и 403 по-прежнему отказ.
|
||
выход из программы неудачная остановка процессов больше не отменяет выход
|
||
конфигурация Hermes проверяется семь известных путей, в сообщении
|
||
перечисляется, где искали
|
||
```
|
||
|
||
---
|
||
|
||
## P0-1. Antigravity не подключается на Windows
|
||
|
||
Владелец: «на винде не подключается аккаунт аги, выдаёт ошибку API, хотя в браузере вышло, что авторизация прошла. Скорее всего требует ссылку с браузера, как в линуксе».
|
||
|
||
В браузере открывается `127.0.0.1:<порт>` и показывается «Авторизация успешно завершена», но мастер этого не видит и завершает шаг 3 с «Не указан API-ключ или не завершена авторизация».
|
||
|
||
1. **Разобраться, почему успешный возврат не доходит до мастера** на Windows, тогда как на Linux доходит.
|
||
2. **Мастер обязан дождаться** завершения входа и увидеть его результат, а не требовать ключ у провайдера, который работает по ссылке.
|
||
3. **Если возврат по ссылке на Windows невозможен** — дать тот же путь, что на Linux: поле для вставки ссылки или кода. Владелец сам это предположил.
|
||
4. **Сообщение «Не указан API-ключ» для Antigravity неверно по сути**: у него ключа нет, у него вход по ссылке. Текст должен соответствовать способу подключения.
|
||
|
||
## P0-2. Ollama ищет сервер не там
|
||
|
||
Ошибка `WinError 10061` честна, но бесполезна: мастер по умолчанию подставляет `http://127.0.0.1:11434/v1`, то есть машину, где запущен хаб. Ollama владельца работает **на сервере**.
|
||
|
||
1. **Подсказка должна объяснять**, что адрес относится к машине с хабом, и предлагать указать сетевой адрес сервера.
|
||
2. **Кнопка «Найти на этом компьютере»** уже есть — добавить проверку заданного вручную адреса с внятным ответом.
|
||
3. **Суффикс `/v1` для Ollama лишний**: нативный интерфейс живёт на `/api`. Проверить, какой адрес подставляется по умолчанию и куда потом идут запросы.
|
||
|
||
## P0-3. Antigravity на Linux: подключился, моделей нет
|
||
|
||
Аккаунт подключён, но «Список моделей ещё не получен», «Каталог моделей (0)», состояние «Не проверялось». При этом квоты подтянулись и показывают 100% — значит связь с провайдером есть.
|
||
|
||
1. **Выяснить, почему квоты приходят, а список моделей нет.** Источники разные, и один работает.
|
||
2. Возможно, поможет уже сделанный сброс кэша — **проверить на живой установке владельца** до того, как чинить что-то ещё.
|
||
|
||
## P0-4. Версия в интерфейсе
|
||
|
||
После правки ревьюера номер версии берётся из API, а зашитые значения из разметки убраны. На сборке `b2ca7cd` владелец всё ещё видит `Hermes Hub Web v0.1.1` при версии `0.1.2`.
|
||
|
||
1. **Проверить, что API отдаёт версию** и что клиент её получает на всех экранах, а не только при открытии панели обновления.
|
||
2. **Не подставлять значение по умолчанию.** Нет версии — писать `Н/Д` с причиной.
|
||
|
||
## P0-5. Экран настроек пуст
|
||
|
||
На «Настройках» половина полей не заполнена: «Н/Д: нет в снапшоте», «Н/Д: API не передаёт путь», «Н/Д: текущее значение не передано». Пустуют хост и порт, токен, порог квоты, маскирование почты, каталоги данных и конфигурации, путь к журналу.
|
||
|
||
1. **Передавать текущие значения настроек** в снапшот, чтобы поля показывали настроенное, а не заглушку.
|
||
2. **Токен не показывать целиком** — достаточно признака «задан» и возможности заменить.
|
||
3. **Значение действительно неизвестно — оставить `Н/Д` с причиной.** Заполнять правдоподобным нельзя.
|
||
|
||
## P0-6. Аудит вторым проходом
|
||
|
||
1. **Пройти путь подключения целиком на обеих машинах**: Antigravity, NVIDIA, OpenRouter, Ollama. Скриншоты приложить.
|
||
2. **Проверить, что после смены аккаунта в слоте показывается новая почта** — правка ревьюера, убедиться, что она работает на живой установке.
|
||
3. **Проверить сообщение о конфигурации Hermes**: оно должно перечислять проверенные пути.
|
||
4. **Различать «нет доступа» и «не найдено»** — не повторять ошибку ложного диагноза.
|
||
5. **Побочные изменения** объяснить.
|
||
6. **Пропущенный пункт назвать пропущенным.**
|
||
|
||
---
|
||
|
||
## Ограничения
|
||
|
||
- Учётные данные и `~/.hermes/agy_profiles/` не трогать.
|
||
- Правки ревьюера из `main` не откатывать.
|
||
- Версию `0.1.2` не понижать.
|
||
- Правило честности без исключений: причина отказа доходит до владельца текстом, неизвестное показывается как `Н/Д` с причиной.
|
||
|
||
## Критерии приёмки
|
||
|
||
1. Ветка в `origin`, `git status` чист.
|
||
2. Antigravity подключается на Windows; путь входа проверен вручную, скриншоты приложены.
|
||
3. Текст ошибки соответствует способу подключения провайдера.
|
||
4. Ollama: подсказка объясняет, чья это машина; заданный вручную адрес проверяется; суффикс пути верный.
|
||
5. Antigravity на Linux отдаёт список моделей; причина прежнего отказа названа.
|
||
6. Версия в интерфейсе совпадает с установленной на всех экранах.
|
||
7. Поля настроек показывают текущие значения; неизвестное помечено `Н/Д` с причиной.
|
||
8. `ruff check .` чисто; релизный гейт 10/10; тестов не меньше **599**.
|
||
9. Отчёт: `START_HEAD`, `FINAL_HEAD`, `origin/main`, `git status`, `X passed / Y skipped / Z failed`.
|
||
|
||
## Главное
|
||
|
||
Владелец третий день не может подключить ни одного аккаунта. Часть причин уже устранена — подменённая почта из кэша, ложный отказ NVIDIA, отмена выхода из программы. Осталось четыре: вход Antigravity на Windows, адрес Ollama, отсутствие моделей на Linux и незаполненные настройки.
|
||
|
||
Каждая проверяется вручную на живой установке. Тесты все эти дефекты пропустили.
|
||
|
||
## Порядок сдачи
|
||
Передать точный `FINAL_COMMIT_SHA`.
|