2.5 KiB
⚠️ LEGACY — НЕАКТУАЛЬНО. Исторический документ.
Sonnet — ответ 27.07.2026 (v1.0.49, раунд 2)
Найденные баги
Баг #1: showStages() — ❌ для этапов в процессе
Файл: site/templates/index.html
Nubes возвращает isSuccessful: false для этапов «в процессе». Код:
const icon=ok===true?'✅':ok===false?'❌':'⏳';
false === false → ❌. Должно быть ⏳.
Исправление: проверять s.dtFinish. Если нет → ⏳, если есть и true → ✅, если есть и false → ❌.
Баг #2: api_operations() — фильтр теряет новые инстансы
Файлы: site/routes/api_test.py + site/routes/main.py
После tracker_add (мгновенно in-memory) инстанс есть в трекере, но Nubes API ещё не обновил explainedStatus — инстанс имеет статус "not created". Фильтр:
and i.get("explainedStatus") not in ("deleted", "not created")
отбрасывает его. Инстанс есть в трекере, есть в ответе API — но статус "not created" → фильтр удаляет.
Исправление: для tracked UID не применять фильтр "not created". Добавлять отсутствующие из трекера напрямую.
Баг #3: Дублирующийся route
main_bp зарегистрирован ПЕРВЫМ, api_test_bp — ВТОРЫМ. Оба определяют GET /api/operations/<int:svc_id>. Flask использует первое совпадение → main.api_operations вызывается, api_test.api_operations — никогда.
Потенциальная проблема #4: Multi-worker gunicorn
In-memory dict НЕ работает при >1 gunicorn worker. Один worker добавляет в свой _data, другой читает из своего. Если pythonk8s запускает >1 worker — ни одно решение не сработает.
Нужно проверить логи пода на Booting worker with pid.
Исправления (v1.0.50)
showStages(): использоватьdtFinishэтапаapi_operations(): не фильтровать "not created" для tracked UID, добавлять сирот из трекера- Убрать дублирующийся route