docs: Sonnet vs Opus comparison + fix plan
This commit is contained in:
@@ -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 следом.
|
||||||
Reference in New Issue
Block a user