- пять задач партии review-2026-08-23: многозначность Remote-Name и Remote-Email, мелочи входа, механизация правила о зависимостях конфига, снятие мёртвого читателя .env, управляющие знаки в расширении - две существующие разведки дополнены находками того же прогона: адрес объекта в тексте отказа SpeechKit и выводимость имени копии из журнала
48 lines
4.0 KiB
Markdown
48 lines
4.0 KiB
Markdown
# 🧹 Разобрать мелочи входа по доверенному заголовку
|
|
|
|
- **Тип:** chore
|
|
- **Категория:** Очередь — Место машинное, конец очереди: мелочи ниже потолка триажа никого не держат и ничего не требуют — берутся, когда дойдут
|
|
- **Зачем:** три пункта ниже потолка триажа остались от одной задачи: функция строки старта не вызвана ни одним тестом, форма записи необязательного поля конфига стала неотличима от обязательного, два комментария описывают снятую подкоманду и не то число звеньев цепочки
|
|
- **Теги:** review-2026-08-23
|
|
|
|
Три пункта ниже потолка триажа, оставшиеся от задачи `config-test-headers-login`.
|
|
Наблюдаемое поведение сервиса ни один из них не меняет: правится защита от
|
|
регрессии, форма записи умолчаний и два неверных комментария.
|
|
|
|
Нашёл прогон ревью `config-test-headers-login` 2026-08-23.
|
|
|
|
## Затрагивает
|
|
|
|
- `internal/controller/http/substitute.go` — функция имён подставляемых
|
|
заголовков и её тест;
|
|
- `internal/config/config.go`, `defaultConfig()` — форма записи умолчаний
|
|
необязательного поля;
|
|
- `Dockerfile:49-50` — комментарий об исключении `cmd/devtools` из сборки;
|
|
- `internal/controller/http/mounts.go:54-56` — комментарий, перечисляющий звенья
|
|
цепочки слоёв приложения.
|
|
|
|
## Критерии приёмки
|
|
|
|
- Функцию имён подставляемых заголовков зовёт тест. **Оракул:**
|
|
`SubstitutedHeaderNames` не вызвана ни одним тестом (`go tool cover -func` →
|
|
0,0 %). Прогон настоящего бинарника печатает `headers=[Remote-User]` — имена,
|
|
не значения: дефекта сегодня нет, нет защиты от регрессии против требования
|
|
спеки «строка старта MUST не нести значений».
|
|
- Умолчания необязательных полей заданы в одном месте с прочими. **Оракул:**
|
|
умолчания `Debug` и `TestHeaders` заданы нулём типа, а не в `defaultConfig()`.
|
|
Нарушена `docs/conventions/config.md`, «Структура в коде»: «Умолчания задаются
|
|
в `defaultConfig()`… Новое поле требует правки обоих мест», и там же форма
|
|
обязательного поля — «умолчания нет ни в `defaultConfig()`, ни по нулевому
|
|
значению типа».
|
|
- Оба комментария описывают то, что есть. **Оракул:** комментарий
|
|
`Dockerfile:49-50` объясняет исключение `cmd/devtools` словами «оснастка
|
|
разработчика (подставной прокси)», а подкоманды больше нет; приёмочный шаг
|
|
искал следы по строке `devtools proxy` и эту не поймал.
|
|
`internal/controller/http/mounts.go:54-56` перечисляет три звена цепочки, тогда
|
|
как `AppChain` одевает четыре.
|
|
|
|
## Рамки
|
|
|
|
Поведение сервиса не меняется ни одним пунктом. Имя ключа конфига не трогается:
|
|
правится место, где задано его умолчание, а не сам ключ.
|