Files
transcriber/internal/contract/error.go
T
av 8f7c3a057a удалён вход Telegram, владелец записи стал обязателен в схеме
- убраны клиент бота, транспорт обновлений, отправитель сообщений, сборка
  входа при старте, секция настроек и зависимость go-telegram-bot-api; из
  конвейера ушла доставка ответа отправителю — исход виден опросом готовности.
  Колонки адресата и значение источника остались в схеме: применённые шаги не
  переписываются
- шаг 202608140003 запрещает пустого владельца у аудиозаписи и у файла;
  существующие строки он не проверяет, и это принято сознательно — искать их
  надо запросом до выкладки
- ревью нашло два пред-существующих дефекта, оба закрыты: пустой второй ответ
  распознавателя стирал сохранённую расшифровку, а пустая расшифровка перестала
  быть заметной вместе с убранной доставкой. Попутно поднят golang.org/x/image
  до v0.45.0 — красный шаг vulns, воспроизводился и на чистом master
2026-08-15 07:24:35 +03:00

41 lines
1.3 KiB
Go

package contract
import (
"errors"
"fmt"
)
// ErrOwnerRequired — приём по HTTP дошёл до заведения задачи, а владельца ему не
// назвали. Значение сентинельное: нести отказу нечего, а имя учётной записи в
// него не кладётся никогда.
var ErrOwnerRequired = errors.New("owner is required to accept a record")
type JobNotFoundError struct {
State string
Message string
}
func (e *JobNotFoundError) Error() string {
return fmt.Sprintf("%s - %s", e.State, e.Message)
}
// LostAcquisitionError — захват задачи за время работы шага достался другому.
// Шаг, получивший его, завершается без записи результата: иначе два воркера
// пишут в одну запись по очереди, портя её результат, и счётчик отказов
// сбрасывает тот, кто уже не владелец.
type LostAcquisitionError struct {
JobID string
}
func (e *LostAcquisitionError) Error() string {
return fmt.Sprintf("%s: job acquisition lost", e.JobID)
}
type NoopJobError struct {
State string
}
func (e *NoopJobError) Error() string {
return fmt.Sprintf("%s: no op job occur", e.State)
}