# Сравнение: Sonnet 4.6 vs Opus 4.8 — полный код-ревью v1.1.20 ## Совпадения (оба нашли) | Баг | Sonnet | Opus | |-----|--------|------| | `_finish_op` args CREATE | 🔴 | 🔴 | | `api_history()` connection leak | 🔴 | 🟠 | | XSS displayName/svc | 🟡 | 🟡 | | Мёртвый код/docstring'и | 🟠 | 🟢 | ## Только Opus (дополнительно) | Баг | | |-----|---| | `detect_endpoint()` — 2-3 лишних HTTP на каждый запрос | 🟠 | | `_op_results` in-memory dict — не переживает multi-worker | 🟠 | | CSRF на POST (частично закрыто SameSite) | 🟡 | | `currentSvcShort` без `let` — неявная глобальная | 🟢 | | Дублирование рендера в selectService/refreshInstances | 🟢 | | CREATE шаг 6: шаблон vs реальная операция | 🟢 | ## Только Sonnet | Баг | | |-----|---| | pool.py `_initialized=True` до `init_db()` | 🔴 | | Cookie без `secure=True` | 🟡 | | MODIFY без required+default | 🟡 | | pool.py race condition без мьютекса | 🟠 | ## Мой анализ Opus 4.8 глубже — проверил эталонный Terraform flow, подтвердил что CREATE-флоу соответствует, нашёл проблемы с `detect_endpoint` и multi-worker. Sonnet нашёл pool.py баги, которые Opus пропустил. **План исправлений (по приоритету):** 1. 🔴 `_finish_op` args — добавить `False` для `is_delete` в CREATE-ветку 2. 🔴 `api_history()` — `try/finally: put_conn(conn)` 3. 🔴 `pool.py` — `_initialized=True` после успешного `init_db()` 4. 🟡 XSS — `_esc()` для displayName/svc в рендере инстансов + истории + stages 5. 🟡 Cookie `secure=True` 6. 🟠 `currentSvcShort` → `let currentSvcShort` Правки 1-3 критические — их делаю первыми. 4-6 следом.