- паспорт: сервис объявлен архивом с бессрочным хранением записей и текстов, машинная вычитка расшифровки внутри границ, приложение — основной вход; добавлены две границы: не файловое хранилище общего назначения и не биллинг; - заведены цели upload-reliability, user-settings, usage-stats и тринадцать задач; очередь пересобрана — сперва починки, затем разведки о хранилище, затем доступ и владелец, и только потом экраны; - архитектура: четыре новых открытых вопроса — приём большого файла, учёт расхода, срок хранения, потолок шести часов.
28 lines
2.2 KiB
Markdown
28 lines
2.2 KiB
Markdown
# 🎯 Пользователь узнаёт о готовности текста, не держа приложение открытым
|
||
|
||
- **Тип:** goal
|
||
- **Секция:** Запланировано
|
||
- **Зачем:** Расшифровка занимает минуты, и всё это время человек либо смотрит на экран с опросом статуса, либо забывает вернуться.
|
||
|
||
Задача уходит в работу — человек закрывает приложение и получает сообщение,
|
||
когда текст готов. Пользователь Telegram это уже имеет: бот отвечает сам.
|
||
Пользователь веба — нет.
|
||
|
||
Каналов два: почта, адрес которой приходит вместе с входом через OIDC, и
|
||
Telegram для того, кто связал свою учётную запись с ботом. Доставку берём
|
||
внешнюю: apprise как отправитель, ntfy как один из каналов. Web Push с VAPID и
|
||
собственным хранением подписок за целью **не стоит** — это отдельная
|
||
инфраструктура ради того же результата.
|
||
|
||
## Завершение
|
||
|
||
1. Готовый текст доходит до пользователя веба сообщением, без открытого
|
||
приложения.
|
||
2. Отказ задачи доходит тем же путём и тем же человекочитаемым текстом, что
|
||
видит пользователь Telegram.
|
||
3. Канал и адрес уведомлений задаёт пользователь, а не общий конфиг: у каждого
|
||
свой, и от уведомлений можно отказаться.
|
||
4. Недоступность канала уведомлений не роняет задачу и не мешает ей завершиться:
|
||
текст остаётся в приложении.
|
||
5. Пользователь Telegram получает ответ по-прежнему ботом, а не вторым каналом.
|