tasks: заведены шесть задач из урожая ревью и переименования образца конфига
- пять из урожая change 2026-08-11-fix-http-handler-tests, тег review-2026-08-11; утечка имени файла в журнал поставлена первой строкой очереди - опечатка transcibe дописана в json-api-for-spa: текст ошибки — часть необратимого контракта, и в одиночку он не правится
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
# 🧹 Разобрать мелочи http-транспорта
|
||||
|
||||
- **Тип:** chore
|
||||
- **Категория:** Очередь
|
||||
- **Зачем:** Маршруты зарегистрированы дважды, и переименование пути в main.go проходит проверки зелёным; обработчик пишет в журнал через стандартный log и дублирует запись, уже сделанную сервисом.
|
||||
- **Теги:** review-2026-08-11
|
||||
|
||||
Два дефекта, найденные ревью change `2026-08-11-fix-http-handler-tests`. Оба в
|
||||
`internal/controller/http`, мерджатся одним заходом.
|
||||
|
||||
**Маршруты зарегистрированы дважды.** `main.go` объявляет пути приёма и опроса,
|
||||
и сборка теста объявляет их же своей копией. Проверки ходят по копии, поэтому
|
||||
переименование пути в `main.go` их не роняет — а публичный контракт HTTP API
|
||||
проект объявил необратимым. Проверено мутацией на прогоне триажа: замена
|
||||
`api.POST("/audio", …)` на `api.POST("/upload", …)` оставляет тесты зелёными.
|
||||
Нашёл проход `review-specs`.
|
||||
|
||||
**Обработчик пишет в журнал мимо `slog` и дублирует сервис.** `log.Printf("Err:
|
||||
%v", err)` — стандартный `log`, тогда как весь проект пишет через `slog`; и эту
|
||||
же ошибку строкой выше уже записал сервис. Типовой узел «Транспорт» в
|
||||
[review.md](../../docs/review.md) прямо требует обратного: «не логирует ошибку,
|
||||
которую уже залогировал доменный слой». Нашёл проход `review-code`.
|
||||
|
||||
## Затрагивает
|
||||
|
||||
- `internal/controller/http` и `main.go` — регистрация маршрутов приёма и
|
||||
опроса, сегодня продублированная в обоих местах;
|
||||
- `internal/controller/http/transcribe.go` — журнальная строка обработчика;
|
||||
- `internal/controller/http/transcribe_test.go` — сборка теста, держащая свою
|
||||
копию маршрутов.
|
||||
|
||||
## Критерии приёмки
|
||||
|
||||
- Пути и методы объявлены в одном месте, и переименование пути роняет проверки.
|
||||
Оракул — мутация: заменить `/api/audio` на `/api/upload`, прогнать
|
||||
`go test ./internal/controller/http/` и увидеть красное.
|
||||
- Обработчик не пишет в журнал через стандартный `log`. Оракул —
|
||||
`grep -rn 'log\.' internal/controller/http/*.go` без импорта `log/slog` пуст.
|
||||
- Об одном отказе приёма в журнале одна запись, а не две. Оракул — прогон
|
||||
отказа с перехваченным журналом: строк об этой ошибке ровно одна.
|
||||
|
||||
## Рамки
|
||||
|
||||
Форма ответа и коды не меняются — этим занимается
|
||||
[json-api-for-spa](json-api-for-spa.md).
|
||||
|
||||
Reference in New Issue
Block a user