Срез 0: скелет tabular-parser — без фронта и БД, воркер NATS без JetStream, парсер-заглушка, контракт v1.0 #3

Merged
aep merged 50 commits from feat/1-slice-0-skeleton into main 2026-10-04 18:41:02 +03:00
Showing only changes of commit ba4dc41b9e - Show all commits

View File

@ -120,3 +120,5 @@ compose-NATS/MinIO — реальный запрос из примера `reques
| 38 | 2026-10-04 | R-31 (D10-3): lifespan приложения в интеграционных тестах — function-scoped (новый воркер и LRU на тест) | изоляция LRU и простое завершение | время прогона |
| 39 | 2026-10-04 | R-32 (D10-4): `reply_deadline` из примера запроса не меняется (в прошлом) | сервис его не проверяет; контракт не требует | если сервис начнёт проверять дедлайн — править пример в тесте |
| 40 | 2026-10-04 | R-33 (D10-5): остановка воркера проверяется в teardown через приватный `worker._tasks` | дешёвая проверка чистой остановки (T10.1: проверка тавтологична — править в cleanup) | хрупкая связь с приватным полем |
| 41 | 2026-10-04 | R-34 (отменяет R-11, I-1 финального ревью): добавляется `.dockerignore` (исключает `api/.env`, `api/.venv`, кэши, `api/tests`, `.superpowers`), строка `.dockerignore` убирается из `.gitignore` | образ собирается `make check-full` из рабочего дерева с `api/.env` и `api/.venv` (проверено: в образе были `.env` с паролем MinIO и `.venv` 159 МБ; `SERVER__HOST=127.0.0.1` из `.env.example` сделал бы контейнер недоступным) | вернуть строку в `.gitignore`, удалить файл |
| 42 | 2026-10-04 | R-35 (M-1 финального ревью): `SERVICE_NAME` остаётся настройкой с типом `Literal["tabular-parser"]`; queue group — константа `REQUEST_QUEUE_GROUP`; формулировки «SERVICE_NAME — имя queue group» исправляются | настройка не управляла группой и могла привести к падению lifespan при другом значении | снять Literal |