Files
app-autotest/DOCS/sonnet-review-round2.md
T

4.0 KiB
Raw Blame History

Sonnet 4.6 — Round 2: оставшиеся баги и план исправлений

Дата: 2026-07-29 Контекст: v1.1.12 уже починил NameError и JS error handling. Сейчас v1.1.13 (мелкие UI-фиксы).

Баги к исправлению

🔴 Баг 1: Инстансы всех сервисов показываются под любым выбранным

Файл: /home/naeel/nubes/autotest/app-autotest/site/routes/main.py, строка 193-194, функция api_operations(svc_id)

for i in instances:
    display_name = str(i.get("displayName", "") or "")
    if not display_name.startswith(AUTOTEST_PREFIX):
        continue  # не наш инстанс
    # ← НЕТ проверки i.get("serviceId") != svc_id

Фильтр только по префиксу autotest-, без проверки что instance.serviceId == svc_id. Результат: под сервисом «Container Registry» показываются S3 бакеты, под «Redis» — Flask инстансы.

Предлагаемый фикс: добавить if i.get("serviceId") != svc_id: continue

🟡 Задача 2: displayName → autotest--<3rand>

Сейчас: autotest-ms4gzydq (timestamp base36) Нужно: autotest-redis-x7k

Данные: API /services/{id} возвращает svcShort=redis

План:

  1. /home/naeel/nubes/autotest/app-autotest/site/routes/main.py /api/operations/{svc_id} — добавить svcShort в JSON-ответ
  2. /home/naeel/nubes/autotest/app-autotest/site/static/app.js selectService() — сохранить currentSvcShort = d.svcShort
  3. /home/naeel/nubes/autotest/app-autotest/site/static/app.js makeCreateDisplayName()autotest-${currentSvcShort}-${3rand}
  4. Коллизии обрабатываются в _unique_display_name() на бэкенде

🟡 Задача 3: description (descr) при создании

HAR-файл (development/dummycreate.har) показывает что Nubes API принимает descr:

POST /instances
{"serviceId":1, "displayName":"dummy-11255555", "descr":""}

В autotest /home/naeel/nubes/autotest/app-autotest/site/routes/api_test.py строка 212 уже шлёт "descr": "" — пустое. Нужно заполнить:

"descr": "created by autotest v1.1.13"

План:

  1. /home/naeel/nubes/autotest/app-autotest/site/static/app.js executeOp() — передать descr в тело запроса
  2. /home/naeel/nubes/autotest/app-autotest/site/routes/api_test.py /api/test — принять descr из JSON, подставить в payload

Вопросы к Sonnet

  1. Верен ли план для бага 1? Не сломает ли фильтр по serviceId tracker-fallback логику?
  2. Для задачи 2: как лучше генерировать 3 случайных символа? Math.random().toString(36).slice(2,5)? Не будет ли коллизий?
  3. Для задачи 3: descr уже есть в payload. Достаточно ли просто подставить строку, или нужно что-то ещё?
  4. Есть ли ещё какие-то баги, которые мы упустили?
  5. /home/naeel/nubes/autotest/app-autotest/site/routes/api_test.py содержит ДУБЛИКАТ эндпоинта /api/operations/{svc_id} (строка 108-148), который никогда не вызывается из-за порядка регистрации blueprint'ов. Удалить ли его, или он нужен для чего-то?

Файлы для проверки (только эти):

  • /home/naeel/nubes/autotest/app-autotest/site/routes/main.py (строки 155-230)
  • /home/naeel/nubes/autotest/app-autotest/site/routes/api_test.py (строки 108-148, 195-280)
  • /home/naeel/nubes/autotest/app-autotest/site/static/app.js (строки 85-130, 240-270)