Files
kvarta_project/docs/ai-log.md
T

4.0 KiB
Raw Blame History

Ошибки ИИ

Записи по ходу работы: что ИИ сделал не так, чем поймали, что исправили. Источник для раздела README «где ИИ ошибся».

# Шаг Ошибка ИИ Чем поймали Исправление
1 План, деплой Предложил docker compose run …, не проверив сервер; там нет плагина compose, только docker-compose v2.23 Осмотр сервера по ssh перед планом деплоя Везде docker-compose
2 План, Telegram Предложил скрипт tg:setup через getUpdates, а позже — long polling в api; два потребителя одного потока обновлений конфликтуют Сам заметил при проектировании восстановления через бота Скрипт заменён командой бота /setup (ADR-0002)
3 Шаг 1, каркас Сгенерировал onlyBuiltDependencies для pnpm, а в pnpm 11 формат сменился на allowBuilds — нативный better-sqlite3 молча не собрался Ошибка ERR_PNPM_IGNORED_BUILDS и проверочный запуск new Database(':memory:') allowBuilds + pnpm rebuild better-sqlite3
4 Шаг 1, каркас Поставил самую свежую ESLint 10, плагины eslint-config-next её ещё не поддерживают pnpm peers check ESLint 9
5 План, контракт В плане «X-Real-IP доверяем только с 127.0.0.1» — в Docker запрос от nginx приходит со шлюза bridge-сети, и все посетители попали бы в один rate-limit Агент api при реализации (вывод, не проверен на Docker) TRUSTED_PROXIES + фиксированная подсеть в compose
6 Шаг 6, тесты Тест «два одновременных запроса» проходит и без транзакции: better-sqlite3 синхронный — тест ничего не доказывает Самопроверка агента api Оставлен как регрессионный; защита — IMMEDIATE-транзакция, отмечено честно
7 Шаг 2, телефон Первая версия считала российский 8 912… «неверным кодом оператора», а 10 цифр без префикса — «иностранным номером» Дописанные тесты на граничные вводы Явное правило: 7…, 8[1-9]… и > 11 цифр — иностранные
8 Шаг 4, landing Агент не увидел существующий next.config.ts (фильтр grep -v .next — точка в regex съела next.config) и перезаписал его, потеряв standalone, transpilePackages и прокси на api Сообщение инструмента «updated» вместо «created» и git status с M git checkout файла до коммита
9 Шаг 4, landing Мутировал ref внутри апдейтера setState — в StrictMode апдейтер вызывается дважды, предзаполненный комментарий посчитался бы текстом посетителя Самопроверка агента при перечитывании хука Комментарий хранится в одном state со значениями формы
10 Шаг 8, landing Синхронное исключение при сборке тела запроса оставляло кнопку навсегда в «Отправляем…» Ревью своего кода агентом Сборка тела внутри промиса с catch → блок «позвоните»