Delta-блоки писались против редакции canonical specs до часовой синхронизации. MODIFIED заменяет требование целиком, поэтому они удаляли бы 10 принятых сценариев при archive. Нормативное поведение зафиксировано по реализации в develop: тихое чтение клиента (frontend 5b30bb8) и видимое состояние источника из meta (frontend 3c226f8, WealthLedger/main#22) совместимы. Запрет относится к индикации собственного чтения и ручному повтору, а не к показу времени, устаревания и исхода часовой попытки.
103 lines
10 KiB
Markdown
103 lines
10 KiB
Markdown
## Why
|
|
|
|
Пользователь WealthLedger хочет видеть свои финансы, а не обслуживать получение
|
|
данных. Сейчас сообщения «Источник не удалось обновить», «Сохранённые данные
|
|
не изменены», время последней загрузки и действия «Обновить»/«Повторить»
|
|
перекладывают на него контроль технической работы приложения. Эти элементы
|
|
повторяются на разных экранах и отвлекают от содержимого.
|
|
|
|
Простого удаления надписей недостаточно: восстановление после временного сбоя
|
|
не должно зависеть от исчезнувшей кнопки. Нужен единый принцип:
|
|
тихое чтение и обновление, самостоятельное восстановление и понятный результат
|
|
явных действий пользователя.
|
|
|
|
## What Changes
|
|
|
|
- На экранах просмотра приложение сохраняет доступные данные при фоновом
|
|
обновлении и временном сбое, не показывает технические предупреждения,
|
|
индикаторы фоновой работы, отметки времени получения и элементы ручного
|
|
обновления или повторной загрузки. Это относится к счетам, портфелю, операциям,
|
|
доходам, событиям, инструментам, поиску, картам и чтению состояния подключения.
|
|
Те же сообщения не переносятся во всплывающие уведомления или подсказки.
|
|
- После временных сбоев приложение самостоятельно возвращается к нормальной
|
|
работе, не требуя от пользователя повторять загрузку или перезагружать страницу.
|
|
- Первичное ожидание сохраняет понятную структуру будущего содержимого. При
|
|
затянувшейся недоступности вместо бесконечной загрузки показывается спокойное
|
|
локальное состояние «Пока недоступно» без технического повтора. После
|
|
восстановления содержимое появляется автоматически. Сбой одного блока не
|
|
скрывает остальные доступные блоки.
|
|
- Отсутствие данных, подтверждённая пустота и неполный финансовый результат
|
|
остаются различимыми. Неизвестные суммы не становятся нулями, незавершённый
|
|
расчёт не выдаётся за окончательный, а незагруженный список — за отсутствие
|
|
операций. Неполнота передаётся состоянием конкретного результата без отчёта
|
|
о процессе синхронизации. Даты операций, выплат и выбранных периодов сохраняются.
|
|
- Редкие краткие уведомления подтверждают завершённые действия пользователя,
|
|
когда результат иначе легко пропустить. Очевидные изменения экрана не
|
|
сопровождаются дублирующим уведомлением. Фоновая загрузка не порождает
|
|
уведомлений об успехе или ошибке, а повтор одного события — каскад сообщений.
|
|
- Ошибки ввода и неуспешное сохранение остаются у соответствующего поля или
|
|
формы с сохранением ввода. Действия, необходимые от пользователя, например
|
|
вход или восстановление подключения, остаются понятными и доступными.
|
|
Исчезающее уведомление не является единственным сообщением о таком препятствии.
|
|
- Обновление данных не сбрасывает выбранные счёт, инструмент, период, фильтры
|
|
и не прерывает работу пользователя. Личные данные остаются доступны только
|
|
тому, кто имеет право их просматривать.
|
|
|
|
Ожидаемый результат: пользователь видит устойчивое финансовое содержимое,
|
|
не управляет загрузкой и получает обратную связь только там, где она помогает
|
|
понять результат его действия или необходимый следующий шаг.
|
|
|
|
Non-goals:
|
|
|
|
- Скрывать неуспешные изменения данных или выдавать их за сохранённые.
|
|
- Менять финансовые расчёты, валютный смысл, даты событий и правила доступа.
|
|
- Добавлять центр уведомлений, историю сообщений или уведомления вне приложения.
|
|
- Обещать актуальность данных в реальном времени.
|
|
|
|
## Capabilities
|
|
|
|
### New Capabilities
|
|
|
|
- `specs/frontend-user-feedback/spec.md`: единая политика редких уведомлений
|
|
о действиях пользователя, локальных ошибок и отсутствия технического шума
|
|
на всех экранах приложения, включая карты и инструменты.
|
|
|
|
### Modified Capabilities
|
|
|
|
- `specs/frontend-data-resilience/spec.md`: тихое сохранение доступного
|
|
результата и самостоятельное восстановление вместо предупреждений
|
|
и ручного повтора; защита границ личных данных сохраняется.
|
|
- `specs/frontend-loading-presentation/spec.md`: отсутствие индикации фонового
|
|
обновления при доступных данных и переход от первичного ожидания к устойчивому
|
|
локальному состоянию недоступности; явные действия сохраняют обратную связь.
|
|
- `specs/frontend-ui-resilience/spec.md`: ожидаемые состояния не требуют
|
|
предупреждения об устаревании и ручного повтора; навигация после
|
|
аварийной ошибки и действия восстановления доступа остаются доступными.
|
|
- `specs/brokerage-accounts/spec.md`: тихое отображение сохранённого списка,
|
|
автоматическое восстановление временных ошибок и отсутствие ручной загрузки.
|
|
- `specs/portfolio-view/spec.md`: показ портфеля без времени получения,
|
|
предупреждений об обновлении и кнопок повтора, с автоматическим восстановлением
|
|
и сохранением корректного смысла доступных финансовых значений.
|
|
- `specs/brokerage-account-ledger/spec.md`: локальное тихое восстановление
|
|
последних операций и журнала без технических действий пользователя.
|
|
- `specs/brokerage-account-upcoming-events/spec.md`: сохранение доступных событий
|
|
при временной ошибке и локальное автоматическое восстановление вместо ручного
|
|
повтора и технической ошибки блока.
|
|
- `specs/brokerage-account-income-analytics/spec.md`: локальная недоступность
|
|
незавершённого расчёта и автоматическое восстановление дохода и его сводки
|
|
без выдачи неполного результата за окончательный.
|
|
- `specs/tbank-connection/spec.md`: автоматическое восстановление чтения статуса
|
|
без кнопки повтора; ошибки создания, замены и удаления подключения сохраняют
|
|
явную обратную связь и введённые данные.
|
|
|
|
## Impact
|
|
|
|
Изменение охватывает просмотр счетов, портфеля, операций, доходов, будущих
|
|
событий, инструментов и карт, поиск и настройки подключения.
|
|
|
|
Пользователю больше не нужно следить за обновлением данных и устранять
|
|
временные сбои загрузки вручную. Интерфейс становится спокойнее, а сообщения
|
|
помогают понять результат собственного действия или необходимый следующий шаг.
|
|
Финансовый смысл данных, понятность ошибок сохранения и защита личной
|
|
информации сохраняются.
|