docs: Sonnet final audit — all bugs + user actions review
This commit is contained in:
@@ -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 версии?
|
||||||
Reference in New Issue
Block a user