# Sonnet Code Review — app-autotest v1.1.11 ## Контекст Flask 3.0 + gunicorn (multi-worker) + vanilla JS фронтенд. Тестирует Nubes API (создание/удаление инстансов). ## Файлы для проверки (только эти, не надо лазить по всей репе) 1. **Фронтенд (основной баг!)** - `/home/naeel/nubes/autotest/app-autotest/site/static/app.js` — ВСЁ - `/home/naeel/nubes/autotest/app-autotest/site/templates/index.html` — структура DOM 2. **Бэкенд** - `/home/naeel/nubes/autotest/app-autotest/site/routes/api_test.py` — эндпоинты /api/params, /api/test - `/home/naeel/nubes/autotest/app-autotest/site/routes/main.py` — эндпоинт /api/operations/ - `/home/naeel/nubes/autotest/app-autotest/site/operations/get_params.py` — _normalize_value_list 3. **API-документация (для понимания что отдаёт Nubes)** - `/home/naeel/nubes/autotest/DOCS/api-access.md` - `/home/naeel/nubes/autotest/DOCS/api-create-flow.md` ## Конкретный баг Кнопка "+ Создать новый инстанс" (функция `startCreate()` в app.js) не работает: - При клике — `params-area` открывается пустой (display:block) - Загрузка параметров молча не происходит - Кнопка остаётся на месте, юзер думает что ничего не случилось ## Что нужно от Sonnet 1. Найти КОНКРЕТНУЮ причину почему `showParams` не рендерит форму. Проверить ВСЕ пути выполнения: - `startCreate()` → fetch /api/operations/{svcId} → find create op → showParams(opId,'create') - `showParams()` → fetch /api/params/{opId} → рендер createHeader + form 2. Нет ли race condition: `currentSvcName` может быть не установлен? 3. Нет ли ошибки в `params.map()` если API возвращает ошибку вместо массива? 4. `create-btn-area` сейчас ПОСЛЕ `params-area` в DOM — это нормально? ## Версия для справки v1.1.11 — сегодняшние изменения: нормализация valueList CSV→array для вложенных dataDescriptor параметров.