Files
transcriber/tasks/items/speechkit-error-text-leak.md
T
av 8739b18a9f tasks: очередь расставлена от базы к деталям
- порядок беклога и роадмапа назначен слоями: проверки, которым можно
  верить → долги входа → владелец записи и контракт API → конвейер под
  тестами → приложение и возможности поверх; у каждого движения записана
  причина;
- заведены восемь задач под пункты «Завершения», которых не закрывала ни
  одна запись, — цель any-audio-source была без задач вовсе;
- у четырёх задач сняты критерии, требовавшие того, что делает задача ниже
  по очереди; исправлены ссылки на несуществующий repo/sqlite и на
  отменённую разведку об очереди.
2026-08-12 20:48:53 +03:00

2.6 KiB
Raw Blame History

🔬 Адрес объекта в тексте отказа SpeechKit

  • Тип: research
  • Категория: Очередь — Тот же род утечки в журнал, но вне темы входа — идёт следом за ней.
  • Зачем: Текст отказа операции приходит от Yandex и уезжает в журнал и в колонку error_text: если он несёт URI объекта, из журнала снова собирается ссылка на чужую запись.

Гипотеза ревью задачи pocketbase-storage 2026-08-12, оставшаяся без оракула: поднять настоящий отказ Yandex нечем, а прогон на реальных ключах запрещён. Собственные цепочки отказов задача оборвала — чтение из хранилища и выгрузка в Object Storage больше не называют ключ, — но текст, пришедший чужими руками, идёт в журнал и в задачу как есть.

Вопрос

Несёт ли текст отказа операции распознавания адрес объекта, который мы отдали SpeechKit, и в каких случаях? Если несёт — чем его отсечь, не потеряв причину отказа: разбором по образцу, перечнем известных кодов отказа или отказом писать чужой текст вовсе.

Куда ляжет ответ

  • Наблюдение с командой и условиями — записка в docs/research/, рядом с pocketbase-defaults.md.
  • Если адрес приходит — норма в спеку storage, требование «Файл отдаётся ссылкой», и строка в docs/security.md, раздел «Из чего строятся пути и ключи»; сама правка — отдельной задачей.
  • Если не приходит — строка в ту же записку, чтобы гипотезу не поднимали заново.

Рамки

Реальные ключи Yandex и боевые данные не трогаем. Отказ придётся вызывать дешёвым способом: битый объект, объект вне бакета, отозванный доступ — что из этого доступно, решается по ходу. Цена прогона в деньгах называется до запуска.