Files
app-autotest/DOCS/sonnet-full-response.md

1.8 KiB

Sonnet 4.6 — Полный код-ревью v1.1.20

Дата: 2026-07-29

🔴 КРИТИЧЕСКИЙ БАГ #1 — _finish_op: неправильный порядок аргументов для CREATE

Файл: /home/naeel/nubes/autotest/app-autotest/site/routes/api_test.py

Сигнатура: def _finish_op(client, op_uid, instance_uid, svc_id, display_name, op_name, svc_op_id, is_create, client_id, stand, is_delete=False, params=None, user_email="", app_version=""):

Вызов CREATE передаёт 13 аргументов. params попадает на позицию is_delete → dict truthy → после успешного CREATE вызывается tracker_remove — инстанс НЕМЕДЛЕННО удаляется из трекера.

🔴 ВАЖНЫЙ БАГ #2 — api_history(): утечка соединения

Нет try/finally — при исключении соединение не возвращается в пул. 5 утечек = пул исчерпан.

🔴 ВАЖНЫЙ БАГ #3 — pool.py: _initialized = True до init_db()

При сетевой ошибке init_db() не выполняется, но флаг уже True — схема не создастся до перезапуска воркера.

🟡 XSS — displayName и svc не экранируются в app.js

_esc() не применяется при рендере списка инстансов. Вектор через поле displayName.

🟡 MODIFY — не досылаются required+default параметры (в отличие от CREATE)

🟠 Мёртвый код: runner.py (LEGACY), дубликат redeploy/else, устаревшие docstring'и

🟠 pool.py — race condition при создании пула без мьютекса