Files
transcriber/openspec/changes/archive/2026-08-11-no-user-filename-in-log/proposal.md
T
av bd6001cd8d имя файла отправителя убрано из журнала приёма
- расширение приводится к перечню известных форматов прежде метки метрики:
  страница метрик открыта, и хвост имени уезжал на неё дословно
- проверки приёма перехватывают все три потока журнала и читают реестр метрик,
  каждая падает при снятии того, что сторожит
2026-08-11 16:37:58 +03:00

47 lines
3.4 KiB
Markdown

## Why
Приём кладёт в журнал имя файла, которое дал отправитель, на каждой принятой
записи. Имя записи из семейного архива — такое же содержимое личной переписки,
как и сам текст расшифровки; инвариант приватности объявляет такую запись
критической и необратимой, потому что строка уже уехала в журнал контейнера.
Доходит это имя до сервиса сегодня только по HTTP: из Telegram приходит путь,
выданный самим Telegram, а не имя человека. Строка журнала при этом общая для
обоих входов, и запрет пишется на неё, а не на транспорт.
## What Changes
- Журнал приёма перестаёт нести имя, данное отправителем. Правка ложится на
общий шаг заведения задачи, через который идут оба входа.
- Прослеживаемость приёма сохраняется: идентификатор записи, её расширение и
размер в байтах в журнале остаются, по ним путь записи собирается отбором.
- Запрет становится проверяемым, и проверяется он на успехе и на отказе: приём
прогоняется с записью, чьё имя содержит опознаваемую строку, и журнал этой
строки не содержит.
- **Метка метрики перестаёт нести кусок имени.** Расширение — хвост после
последней точки — берётся из имени отправителя и уезжало меткой на страницу
метрик, которая отдаётся кому угодно. Теперь оно приводится к перечню
известных форматов, всё прочее становится одним общим значением. Решение
принято контрольной точкой уже после ревью кода, которое построило этот путь.
## Capabilities
### New Capabilities
Новых нет.
### Modified Capabilities
- `intake`: приём получает требование о том, чего его журнал нести не вправе, и
о том, что в нём остаётся ради прослеживаемости.
## Impact
- `internal/service/transcribe.go`, общий шаг заведения задачи — журнальные
строки приёма и обе метки, несущие расширение;
- `internal/metrics` — приведение расширения к перечню известных форматов;
- проверка приёма: новый прогон с опознаваемым именем и разбором перехваченного
журнала;
- `docs/conventions/logging.md` уже запрещает имена файлов пользователя — правки
не требует, разве что строкой о том, чем имя заменено.