Files
app-autotest/DOCS/review-comparison-sonnet-opus.md
T

46 lines
2.0 KiB
Markdown

# Сравнение: 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 следом.