Files
specs/openspec/changes/quiet-user-feedback/proposal.md
T
codex-bot 5a7e319caf
Specs security / security (push) Successful in 9s
Specs verify / verify (push) Successful in 10s
spec: reconcile quiet-user-feedback with source-state requirements (#50)
Переносит change quiet-user-feedback в develop и согласует его delta-блоки с текущими canonical specs. Нормативное поведение: тихое чтение клиента и видимое состояние источника из meta.
2026-10-17 21:46:58 +03:00

10 KiB

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

Изменение охватывает просмотр счетов, портфеля, операций, доходов, будущих событий, инструментов и карт, поиск и настройки подключения.

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