docs: Sonnet final audit — all bugs + user actions review

This commit is contained in:
2026-07-30 09:36:56 +04:00
parent de18ea7d43
commit b7f7bba22c
+68
View File
@@ -0,0 +1,68 @@
# Sonnet 4.6 — Финальный аудит: баги и действия пользователя
Дата: 2026-07-30
Версия: v1.1.43
## Контекст
За 2 дня: 43 версии. Множество правок. Только что нашли баг — в `toggleInstance` удалили `const opsEl = ...` при рефакторинге, упало с ReferenceError. Нужно найти ВСЕ подобные баги.
## Файлы для проверки (ВСЕ)
- `/home/naeel/nubes/autotest/app-autotest/site/static/app.js` — 460 строк, весь фронтенд
- `/home/naeel/nubes/autotest/app-autotest/site/routes/api_test.py` — бэкенд
- `/home/naeel/nubes/autotest/app-autotest/site/templates/index.html` — HTML/CSS
- `/home/naeel/nubes/autotest/app-autotest/site/api/http_client.py` — HTTP-клиент
- `/home/naeel/nubes/autotest/app-autotest/site/operations/get_params.py` — параметры
## Что искать
### 1. ReferenceError / undefined variables
- Все ли переменные объявлены перед использованием?
- `opsEl`, `svcEl`, `btnSpan`, `inst`, `afterEl` — все ли определены в своей области видимости?
### 2. Все действия пользователя при busy=true
Проверь КАЖДУЮ функцию — не вызывает ли она `stopPoll()` до проверки `busy`? Не меняет ли DOM (stages-box, params-area) до проверки?
Функции для проверки:
- `toggleInstance(iuid)` — строка 76
- `selectService(svcId)` — строка 39
- `startCreate()` — строка 106
- `runOp(opName,opId)` — строка 128
- `showParams(opId,opName)` — строка 146 (вызывается из runOp, startCreate)
- `executeOp(params)` — строка 307
- `setFinishedState(...)` — строка 286
- `refreshInstances()` — строка 389
- `toggleHistory()` — строка 410
- `toggleLog()` — строка 456
### 3. Пустые catch / потерянные ошибки
- `showParams` — есть `.catch()`
- `executeOp` — есть `catch(e)` + busy ✅
- `loadHistory` — есть `catch(e)`
- `startCreate` — есть `catch(e)` с fallback ✅
- Поллинг в executeOp — `catch(e)` со счётчиком ✅
- Есть ли другие `try/catch` или `fetch().then()` без обработки ошибок?
### 4. busy не сбрасывается
Все ли пути выхода из `executeOp` сбрасывают `busy=false`?
- FAIL: `busy=false` + return ✅
- CMDB OK: `busy=false` + setFinishedState ✅
- Поллинг завершился: `setFinishedState``busy=false`
- catch: `busy=false`
- Сетевая ошибка в поллинге: счётчик → `setFinishedState`
### 5. DOM-элементы
- Все ли `getElementById` ссылаются на существующие ID в index.html?
- `ops-${iuid}` — генерируется динамически в `selectService` и `refreshInstances`
- `param-displayname` — генерируется в `showParams`
- Все ли статические ID присутствуют?
### 6. Параметры операций
- `runOp``showParams` — правильно ли для ВСЕХ типов операций?
- `showParams``opHeader` для не-create — показывается всегда ✅
- `showParams``createHeader` для create — показывается ✅
- Пустые params → `opHeader` + кнопка «Запустить» ✅
### 7. Любые другие баги
Что ещё могло сломаться за 43 версии?