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

3.4 KiB

Why

Приём кладёт в журнал имя файла, которое дал отправитель, на каждой принятой записи. Имя записи из семейного архива — такое же содержимое личной переписки, как и сам текст расшифровки; инвариант приватности объявляет такую запись критической и необратимой, потому что строка уже уехала в журнал контейнера.

Доходит это имя до сервиса сегодня только по HTTP: из Telegram приходит путь, выданный самим Telegram, а не имя человека. Строка журнала при этом общая для обоих входов, и запрет пишется на неё, а не на транспорт.

What Changes

  • Журнал приёма перестаёт нести имя, данное отправителем. Правка ложится на общий шаг заведения задачи, через который идут оба входа.
  • Прослеживаемость приёма сохраняется: идентификатор записи, её расширение и размер в байтах в журнале остаются, по ним путь записи собирается отбором.
  • Запрет становится проверяемым, и проверяется он на успехе и на отказе: приём прогоняется с записью, чьё имя содержит опознаваемую строку, и журнал этой строки не содержит.
  • Метка метрики перестаёт нести кусок имени. Расширение — хвост после последней точки — берётся из имени отправителя и уезжало меткой на страницу метрик, которая отдаётся кому угодно. Теперь оно приводится к перечню известных форматов, всё прочее становится одним общим значением. Решение принято контрольной точкой уже после ревью кода, которое построило этот путь.

Capabilities

New Capabilities

Новых нет.

Modified Capabilities

  • intake: приём получает требование о том, чего его журнал нести не вправе, и о том, что в нём остаётся ради прослеживаемости.

Impact

  • internal/service/transcribe.go, общий шаг заведения задачи — журнальные строки приёма и обе метки, несущие расширение;
  • internal/metrics — приведение расширения к перечню известных форматов;
  • проверка приёма: новый прогон с опознаваемым именем и разбором перехваченного журнала;
  • docs/conventions/logging.md уже запрещает имена файлов пользователя — правки не требует, разве что строкой о том, чем имя заменено.