Files
transcriber/tasks/ROADMAP.md
T
av 115b3796e8 Нарезка задач под целевое состояние: PWA, вход, хранилище
Роадмап: web-access переименована под приложение, которое ставится на
телефон; заведена цель ready-notification — уведомление о готовности
без открытого приложения.

Беклог: десять задач. Многопользовательская цепочка (oidc-login,
record-ownership, telegram-account-link), веб (json-api-for-spa,
spa-skeleton, upload-and-status-screen, records-list-screen,
installable-pwa), уведомления через apprise и ntfy, разведка выбора
фреймворка. Очередь: долги, хранилище, вход, приложение.

Решение сменилось с htmx на SPA, поэтому conventions/web-ui.md снята
целиком и оставлена честной строкой до итога разведки. Открытые вопросы
архитектуры, границы паспорта и триггеры метки ревью приведены в
соответствие.
2026-08-10 21:36:54 +03:00

40 lines
4.0 KiB
Markdown

# Роадмап
Состояние проекта: что приложение **уже умеет** и чего ещё не умеет.
Цель — возможность приложения: файл типа `goal` (🎯) в
`items/`. Её задачи здесь **не перечисляются** — перечень даёт
`tasks.py list --goal <слаг>`.
- **Запланировано** — очередь значима и обосновывается прозой;
- **Направления** — очереди нет, тянутся долго;
- **Сопровождение** — чем держат проект: инструмент,
процесс, эксплуатация. Не возможности приложения, и отдельно —
чтобы не читаться как обещание продукта;
- **Готово** — достигнутое: строку пишет
`tasks.py close <цель> --implemented`, ссылки на файл в ней нет —
файл удаляется, поведение живёт в спеках. Стоит последней: копится.
Секции **канонические** и переименованию проектом не подлежат:
у каждой свой смысл, и в достигнутое пишет сам `close`. Порядок
тоже канонический. Английский
вариант — Planned | Directions | Operations | Done, один язык на весь
индекс.
## Запланировано
- [🎯 Записи загружаются и читаются в приложении, которое ставится на телефон](items/web-access.md) — Сегодня записи принимает только бот и голый HTTP API без интерфейса: отдать сервис человеку, у которого нет Telegram, нечем.
- [🎯 Сервисом пользуются несколько человек, и записи одного не видны другому](items/multi-user.md) — У задачи нет владельца, а HTTP API открыт наружу без аутентификации: пригласить второго человека сейчас значит открыть ему чужие расшифровки.
- [🎯 Пользователь узнаёт о готовности текста, не держа приложение открытым](items/ready-notification.md) — Расшифровка занимает минуты, и всё это время человек либо смотрит на экран с опросом статуса, либо забывает вернуться.
## Направления
- [🎯 Принимается запись любого формата, включая дорожку из видео](items/any-audio-source.md) — Конвертер вызывается одной командой ffmpeg, проверенной на голосовых Telegram; что он берёт помимо них, никто не мерил.
- [🎯 Запись длиной в несколько часов доходит до текста](items/long-recordings.md) — Потолок не замерен ни на одном звене: Telegram не отдаёт больше 20 МиБ, а границы модели deferred-general неизвестны.
## Сопровождение
## Готово
- 2025-08-14 `telegram-transcription` — Голосовое сообщение из Telegram возвращается текстом. Основной вход сервиса: бот принимает голосовое, аудиофайл и документ с аудио и отвечает расшифровкой.
- 2025-08-08 `api-transcription` — Запись, отданная по HTTP, возвращается текстом. Программный вход: файл отдаётся формой, готовность и текст забираются опросом статуса задачи.