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

67 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)`
```python
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-<svcShort>-<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`:
```json
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)