diff --git a/DOCS/review-comparison-sonnet-opus.md b/DOCS/review-comparison-sonnet-opus.md new file mode 100644 index 0000000..27663e0 --- /dev/null +++ b/DOCS/review-comparison-sonnet-opus.md @@ -0,0 +1,45 @@ +# Сравнение: 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 следом.