From c2786f5894ed72c8202b04075a7ca98b4ee6a126 Mon Sep 17 00:00:00 2001 From: Nikolay Unuchek Date: Sat, 17 Oct 2026 15:42:32 +0300 Subject: [PATCH] =?UTF-8?q?docs:=20=D0=B6=D1=83=D1=80=D0=BD=D0=B0=D0=BB=20?= =?UTF-8?q?=D0=BE=D1=88=D0=B8=D0=B1=D0=BE=D0=BA=20=D0=98=D0=98=20=E2=80=94?= =?UTF-8?q?=20=D0=BA=D0=B0=D1=80=D0=BA=D0=B0=D1=81,=20=D1=82=D0=B5=D0=BB?= =?UTF-8?q?=D0=B5=D1=84=D0=BE=D0=BD,=20api?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/ai-log.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/ai-log.md b/docs/ai-log.md index 9fafe44..305a05e 100644 --- a/docs/ai-log.md +++ b/docs/ai-log.md @@ -6,3 +6,8 @@ |---|---|---|---|---| | 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 цифр — иностранные |