Files
transcriber/tasks/items/record-file-name-readability.md
T
av 11269c1567 учёт: заведён урожай ревью входа по конфигу
- пять задач партии review-2026-08-23: многозначность Remote-Name и Remote-Email,
  мелочи входа, механизация правила о зависимостях конфига, снятие мёртвого
  читателя .env, управляющие знаки в расширении
- две существующие разведки дополнены находками того же прогона: адрес объекта в
  тексте отказа SpeechKit и выводимость имени копии из журнала
2026-08-23 14:03:52 +03:00

58 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🔬 Имя копии в каталоге записи без обращения к базе
- **Тип:** research
- **Категория:** Очередь — Разведка о той же раскладке каталога данных, и цена ответа растёт с каждой уложенной записью
- **Зачем:** Имена копий вида <ULID><ext> без базы не читаются: по каталогу на диске не сказать ни чья запись, ни какого она уровня, а раскладка объявлена необратимой, и цена решения растёт с каждой уложенной записью.
- **Теги:** review-2026-08-23
Копии записи лежат именами вида `<ULID><расширение>` в каталоге записи. По
каталогу на диске не сказать ни чья запись, ни какого уровня копия: имя читается
только вместе с базой.
Пока на боевом сервере записей нет вовсе (стадия «стройка»), это не мешает.
Цена растёт с каждой уложенной записью: раскладка каталога данных объявлена
необратимой, и переименование задним числом
стоит прохода по всему каталогу и по всем ссылкам в базе.
Разведка отвечает не «переименовать ли», а «нужна ли читаемость без базы вообще»
— и во что обойдётся её отсутствие, когда записи пойдут живым потоком.
Нашёл триаж ревью change `2026-08-23-storage-without-pocketbase`.
## Вопрос
Вопроса два, и оба об одном имени копии.
1. Нужно ли имени копии нести что-то, по чему запись узнаётся без обращения к
базе, и какой ценой это берётся сейчас против той, что придётся заплатить
потом?
2. Допустимо ли, что имя копии выводится из строки журнала арифметикой, и если
нет — чем платить за невыводимость, не потеряв порядок имён?
Второй вопрос пришёл прогоном ревью `config-test-headers-login` 2026-08-23, и
выводимость там уже установлена: `TestProbeStorageNameDerivesFromRecordID` даёт
на `record_id 01m0pwf0r1cp9v0zt83w79ccbn` имя копии
`01m0pwf0r1cp9v0zt83w79ccbp.mp3`, ровно `инкремент(record_id)+ext`, а
`TestProbeDerivationRate` — 49 из 50 приёмов подряд. Журнал несёт `record_id` и
`file_ext`, то есть имя собирается без обращения к каталогу данных, и инвариант
«Имя файла на диске задаёт сервис, а в журнал не идёт» соблюдён по букве, но не
по назначению. Триаж тест не воспроизводил. Спрашивается поэтому не факт, а его цена.
Первый вопрос от этого дешевеет: часть читаемости без базы уже есть — просто не
по назначению и не решением.
Оба вопроса решает одна разведка, и отдельной записи второй не получает —
решение владельца. Довод: раскладка каталога данных объявлена необратимой, и два
ответа порознь дали бы две необратимые правки одного каталога.
## Куда ляжет ответ
Записка `docs/research/`, а решение — в
[ADR о раскладке каталога данных](../../docs/adr/). Изменение самой раскладки
необратимо и берётся отдельной задачей после ответа.
## Рамки
Раскладка каталога данных этой разведкой не меняется — она объявлена
необратимой, и правка её решается человеком. Боевой каталог данных не трогать.