Files
specs/openspec/changes/archive/2026-10-17-quiet-user-feedback/proposal.md
T
ksv741 c5ec117328
Conventional commits / commits (pull_request) Successful in 11s
Specs security / security (pull_request) Successful in 8s
Specs verify / verify (pull_request) Successful in 10s
spec: archive quiet-user-feedback and sync canonical specs (#50)
Native archive применил 9 added и 12 modified требований без удалений.
Все 10 сценариев, которые удалили бы исходные MODIFIED-блоки, сохранены.
Новый canonical spec frontend-user-feedback внесён в AI_INDEX.

Completion Evidence фиксирует расхождение отметок задач 8.1-8.4 с фактом
и его устранение в WealthLedger/docs#51.
2026-10-17 22:16:29 +03:00

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
Изменение охватывает просмотр счетов, портфеля, операций, доходов, будущих
событий, инструментов и карт, поиск и настройки подключения.
Пользователю больше не нужно следить за обновлением данных и устранять
временные сбои загрузки вручную. Интерфейс становится спокойнее, а сообщения
помогают понять результат собственного действия или необходимый следующий шаг.
Финансовый смысл данных, понятность ошибок сохранения и защита личной
информации сохраняются.