tasks: спроектирован контракт приложения и переставлена голова очереди

- json-api-for-spa: адреса приложения уехали в своё пространство /app/,
  приём стал POST /app/audiorecords, опрос /api/status/:id убран, заведены
  список, карточка, текст, /app/me и /app/config; имя файла отправителя
  легло своей колонкой рядом с заголовком
- три действия над записью — правка заголовка, возврат в работу и журнал
  событий — собраны задачей audiorecord-actions
- голова очереди: контракт, каркас, экран загрузки, список, действия
- в прежних задачах поправлены адреса, рубежи конвейера и остатки Telegram
This commit is contained in:
av
2026-08-15 09:06:11 +03:00
parent d88e56efcb
commit 79ff12548f
16 changed files with 351 additions and 115 deletions
+7 -5
View File
@@ -18,12 +18,14 @@ ogg после конвертации и запись об объекте, —
- связь задачи с копией: сегодня `transcribe_jobs.file` — одно поле на одну
копию, и шаг схемы придётся добавлять;
- контракт HTTP API из `json-api-for-spa`адрес проигрываемой копии в ответе
о записи;
- контракт HTTP API из `json-api-for-spa`признак наличия аудио в ответе о
записи;
- экран одной записи из `records-list-screen`;
- отдачу файла хранилищем: `/api/files/...` отвечает на `Range` сам, но
`audio/ogg` не входит в перечень типов, которые хранилище отдаёт с
`Content-Disposition: inline`, — ogg-копия уходит вложением;
- `GET /app/audiorecords/{id}/audio` — свой адрес отдачи копии, с поддержкой
`Range`: ссылка хранилища в ответ не выходит, это норма `storage`. Отдачу
пишем сами, и оба свойства чужого адреса переходят к нам обязанностью — ответ
на `Range` и тип содержимого, при котором копия проигрывается, а не
скачивается вложением;
- периметр из [ADR-2026-08-12](../../docs/adr/ADR-2026-08-12-file-link-open-but-not-logged.md):
ссылка на файл открыта знанием записи, и экран делает её видимой странице;
- `docs/architecture.md` — какая копия считается проигрываемой.