43 lines
1.6 KiB
Markdown
43 lines
1.6 KiB
Markdown
# Sonnet 4.6 — Code Review v1.1.11
|
|
|
|
Дата: 2026-07-29
|
|
Модель: Claude Sonnet 4.6
|
|
|
|
## Ответ
|
|
|
|
### 🔴 Критично: NameError в api_test.py
|
|
|
|
Строки 159, 178, 180 вызывают:
|
|
- `get_params_with_current_values(...)`
|
|
- `_normalize_value_list(...)`
|
|
|
|
Оба символа определены в `operations/get_params.py`, но **не импортированы** в `routes/api_test.py`.
|
|
|
|
Цепочка падения:
|
|
1. `startCreate()` → `fetch('/api/params/{opId}')`
|
|
2. Сервер: `_normalize_value_list(p.get("valueList"))` → `NameError`
|
|
3. `except` → `{"error": "name '_normalize_value_list' is not defined"}`, HTTP 500
|
|
4. JS: `data.params` = undefined → fallback к `data` = `{"error": "..."}`
|
|
5. `params.map(...)` → `TypeError: params.map is not a function`
|
|
6. Нет `.catch()` → промис падает молча
|
|
|
|
Также сломаны MODIFY-запросы (строка 159 — `get_params_with_current_values`).
|
|
|
|
**Фикс:** одна строка импорта.
|
|
|
|
### 🟡 Вторичные баги в JS
|
|
|
|
1. `showParams()` — нет `.catch()` на fetch-цепочке → ошибки скрыты
|
|
2. `data.params||data` без `Array.isArray()` → TypeError при ошибке API
|
|
|
|
### ⚪ Косметика
|
|
|
|
`create-btn-area` после `params-area` в DOM — неудобно, но не ломает.
|
|
|
|
## Действия
|
|
|
|
- [x] Добавить импорт в api_test.py
|
|
- [x] Исправить клиентский код
|
|
- [x] Добавить `.catch()` в showParams
|
|
- [x] Проверить Array.isArray перед .map()
|