Нарезка задач под целевое состояние: 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 снята
целиком и оставлена честной строкой до итога разведки. Открытые вопросы
архитектуры, границы паспорта и триггеры метки ревью приведены в
соответствие.
This commit is contained in:
av
2026-08-10 21:36:54 +03:00
parent 4d1c2bf44c
commit 115b3796e8
19 changed files with 536 additions and 160 deletions
+37
View File
@@ -0,0 +1,37 @@
# ✨ Сделать экран списка своих записей и чтения текста
- **Тип:** feature
- **Категория:** Ядро
- **Зачем:** Расшифровка сегодня доходит одним сообщением и теряется в переписке; вернуться к ней через неделю нечем.
- **Теги:** goal:web-access
Двигает пункты 3 и 4 «Завершения» цели: список своих записей открывается и
листается, а готовый текст читается и копируется целиком.
Берётся после `upload-and-status-screen`.
## Затрагивает
- новый экран списка и экран одной записи;
- постраничное чтение из контракта API;
- копирование текста в буфер обмена;
- показ записи, которая ещё в работе, — тем же состоянием, что на экране
загрузки.
## Критерии приёмки
- Список показывает записи вошедшего, новые сверху, и листается дальше первой
страницы. Оракул — тест экрана на подставном API с двумя страницами.
- Текст готовой записи открывается целиком, без деления на части. Оракул — тест
на записи с текстом длиннее предела сообщения Telegram: на экране весь текст.
- Текст копируется одним действием. Оракул — тест: после действия в буфере обмена
тот же текст.
- Запись в работе показывается состоянием и доходит до текста без перезагрузки
экрана. Оракул — тест: подставной API отвечает `transcribe`, затем `done`;
экран переходит к тексту сам.
## Рамки
Поиска по тексту, переименования и удаления записей не делаем. Правки текста не
делаем — это граница из [паспорта](../../docs/passport.md): расшифровку отдаём как
есть.