3.7 KiB
Sonnet — почему ты пропустил эти баги?
Отправлено: 27.07.2026, после v1.0.49 (твой анализ выполнен, НЕ ПОМОГЛО)
Ты предложил 4 правки — мы сделали. Инстанс ВСЁ РАВНО не появляется в списке. Плюс новый баг: ❌ вместо ⏳ для этапов в процессе.
Ты НЕ заметил баг №1: showStages() — ❌ для выполняющихся этапов
function showStages(stages){
stages.forEach(s=>{
const ok=s.isSuccessful;
const icon=ok===true?'✅':ok===false?'❌':'⏳'; // ← БАГ
API Nubes для этапа в процессе возвращает isSuccessful: false (или null).
Код интерпретирует false === false → ❌ (авария).
Но этап просто ещё не завершился — должен быть ⏳.
Правильная логика: проверять dtFinish этапа. Если dtFinish нет → ⏳.
Если есть и isSuccessful === true → ✅. Если есть и false → ❌.
Почему ты это пропустил? Код showStages() был в твоём обзоре.
Ты НЕ заметил баг №2: api_operations() теряет инстансы
def api_operations(svc_id):
tracked = tracker_list() # ← 5 UID (включая новый)
tracked_uids = {t["instanceUid"] for t in tracked if t["svcId"] == svc_id}
instances = get_instances(_client()) # ← Nubes API: только 4 старых
svc_instances = [i for i in instances
if i.get("instanceUid") in tracked_uids # ← новый UID НЕ НАЙДЕН
and i.get("explainedStatus") not in ("deleted", "not created")]
tracker_add работает (in-memory, мгновенно). Но get_instances() из Nubes API не сразу возвращает только что созданный инстанс.
Фильтр требует чтобы инстанс был В ОБОИХ источниках. Новый UID есть в tracked_uids но отсутствует в instances → выпадает.
Результат: список всегда показывает только старые инстансы, новый — никогда.
Правильная логика: инстансы из трекера, отсутствующие в get_instances(), добавлять напрямую со статусом "creating".
Почему ты это пропустил? Код api_operations() был в твоём обзоре, полностью.
Что мы имеем после твоих рекомендаций
| Версия | Что делали | Результат |
|---|---|---|
| v1.0.48 | tracker_add синхронно, except:pass | ❌ инстанса нет |
| v1.0.49 | in-memory dict (твоя рекомендация) | ❌ инстанса нет |
| v1.0.49 | refreshInstances вместо selectService | ❌ stages ушли, но инстанса нет |
Трекер РАБОТАЕТ — in-memory dict, добавление мгновенное.
НО фильтр api_operations() ВЫБРАСЫВАЕТ новый инстанс потому что Nubes API его ещё не проиндексировал.
Вопрос
Ты проанализировал ВЕСЬ код, включая api_operations() и showStages().
Как ты мог пропустить оба этих бага, которые видны при простой трассировке CREATE-потока?