diff --git a/HISTORY/2026-07-24-session-4.md b/HISTORY/2026-07-24-session-4.md new file mode 100644 index 0000000..ba126e9 --- /dev/null +++ b/HISTORY/2026-07-24-session-4.md @@ -0,0 +1,27 @@ +# 2026-07-24 — Продолжение отладки + +## Баг 5: `'str' object does not support item assignment` (v1.0.21) + +- **Симптом:** `TypeError: 'str' object does not support item assignment` в http_client.py:32 +- **Строка:** `result["_location"] = loc` +- **Причина:** POST /instances возвращает `201` с телом `"201"` (JSON-строка). `r.json()` парсит это как строку `"201"`. `result = "201"` (строка). При попытке `result["_location"] = loc` — строка не поддерживает присвоение. +- **Исправление:** `isinstance(parsed, dict)` перед присвоением. + +## Баг 6: `displayName` не уникален (v1.0.13-1.0.14) + +- **Симптом:** 400 "Instance Display Name not unique" +- **Причина:** имя `autotest-1` уже существует +- **Исправление:** timestamp + поле ввода + +## Баг 7: UI зависал (v1.0.15-1.0.16) + +- **Симптом:** «Сервисы: Загрузка...» +- **Причина:** заменён рабочий шаблон, авто-selectService +- **Исправление:** восстановлен из v1.0.12, точечные правки + +## Уроки + +1. НЕ заменять рабочий код — только добавлять +2. `r.json()` может вернуть не dict — проверять isinstance +3. НЕ делать авто-действий при загрузке +4. Документировать каждый баг с traceback