- порядок беклога и роадмапа назначен слоями: проверки, которым можно верить → долги входа → владелец записи и контракт API → конвейер под тестами → приложение и возможности поверх; у каждого движения записана причина; - заведены восемь задач под пункты «Завершения», которых не закрывала ни одна запись, — цель any-audio-source была без задач вовсе; - у четырёх задач сняты критерии, требовавшие того, что делает задача ниже по очереди; исправлены ссылки на несуществующий repo/sqlite и на отменённую разведку об очереди.
2.4 KiB
2.4 KiB
🎯 Пользователь узнаёт о готовности текста, не держа приложение открытым
- Тип: goal
- Секция: Запланировано — Канал уведомлений выбирается в настройках, которые к этому месту уже есть.
- Зачем: Расшифровка занимает минуты, и всё это время человек либо смотрит на экран с опросом статуса, либо забывает вернуться.
- Теги: decomposed
Задача уходит в работу — человек закрывает приложение и получает сообщение, когда текст готов. Пользователь Telegram это уже имеет: бот отвечает сам. Пользователь веба — нет.
Каналов два: почта, адрес которой приходит вместе с входом через OIDC, и Telegram для того, кто связал свою учётную запись с ботом. Доставку берём внешнюю: apprise как отправитель, ntfy как один из каналов. Web Push с VAPID и собственным хранением подписок за целью не стоит — это отдельная инфраструктура ради того же результата.
Завершение
- Готовый текст доходит до пользователя веба сообщением, без открытого приложения.
- Отказ задачи доходит тем же путём и тем же человекочитаемым текстом, что видит пользователь Telegram.
- Канал и адрес уведомлений задаёт пользователь, а не общий конфиг: у каждого свой, и от уведомлений можно отказаться.
- Недоступность канала уведомлений не роняет задачу и не мешает ей завершиться: текст остаётся в приложении.
- Пользователь Telegram получает ответ по-прежнему ботом, а не вторым каналом.