Files
app-autotest/DOCS/sonnet-final-audit.md
T

3.7 KiB
Raw Blame History

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
  • Поллинг завершился: setFinishedStatebusy=false
  • catch: busy=false
  • Сетевая ошибка в поллинге: счётчик → setFinishedState

5. DOM-элементы

  • Все ли getElementById ссылаются на существующие ID в index.html?
  • ops-${iuid} — генерируется динамически в selectService и refreshInstances
  • param-displayname — генерируется в showParams
  • Все ли статические ID присутствуют?

6. Параметры операций

  • runOpshowParams — правильно ли для ВСЕХ типов операций?
  • showParamsopHeader для не-create — показывается всегда
  • showParamscreateHeader для create — показывается
  • Пустые params → opHeader + кнопка «Запустить»

7. Любые другие баги

Что ещё могло сломаться за 43 версии?