Native archive применил 9 added и 12 modified требований без удалений; все 10 сценариев сохранены. Новый canonical spec frontend-user-feedback внесён в AI_INDEX.
45 lines
4.1 KiB
Markdown
45 lines
4.1 KiB
Markdown
# frontend-ui-resilience Specification
|
|
|
|
## Purpose
|
|
|
|
Обеспечивает безопасное восстановление frontend после непойманной ошибки маршрута, не смешивая runtime failures с ожидаемыми состояниями инвестиционных сценариев.
|
|
|
|
## Requirements
|
|
|
|
### Requirement: Frontend безопасно обрабатывает непойманные ошибки маршрута
|
|
Frontend SHALL показывать понятный fallback вместо аварийно завершившегося route content, когда на public или protected route возникает непойманная runtime-ошибка. Fallback MUST предоставлять пользователю безопасный путь навигации и MUST NOT показывать технические детали ошибки.
|
|
|
|
#### Scenario: Ошибка на protected route
|
|
- **WHEN** при отображении protected route возникает непойманная runtime-ошибка
|
|
- **THEN** frontend показывает fallback с навигацией к безопасному route для текущего auth state
|
|
|
|
#### Scenario: Ошибка на public route
|
|
- **WHEN** при отображении public route возникает непойманная runtime-ошибка
|
|
- **THEN** frontend показывает fallback с навигацией к public route без технических деталей ошибки
|
|
|
|
### Requirement: Frontend восстанавливается после навигации
|
|
Frontend SHALL сбрасывать состояние route error после перехода пользователя на другой route и MUST отображать новый route, если он не выбрасывает runtime-ошибку.
|
|
|
|
#### Scenario: Навигация после fallback
|
|
- **WHEN** пользователь переходит с fallback на другой route
|
|
- **THEN** frontend сбрасывает предыдущую runtime-ошибку и отображает целевой route
|
|
|
|
### Requirement: Ожидаемые finance states не становятся route failures
|
|
|
|
Frontend SHALL сохранять локальное отображение известных состояний Brokerage
|
|
Account, Portfolio и T-Bank connection. Эти состояния MUST NOT заменяться
|
|
глобальным fallback. Временная ошибка фонового чтения MUST сохранять доступный
|
|
результат без предупреждения об устаревании, технической ошибки и ручного
|
|
повтора. При отсутствии результата SHALL показываться локальная недоступность
|
|
с автоматическим восстановлением. Подтверждённая необходимость входа,
|
|
восстановления подключения или выбора доступного счёта MUST сохранять понятное
|
|
объяснение и соответствующее действие, не маскируясь сохранёнными личными данными.
|
|
|
|
#### Scenario: Portfolio Snapshot устарел
|
|
- **WHEN** frontend получает устаревший Portfolio Snapshot в действующей границе доступа
|
|
- **THEN** frontend отображает Portfolio без предупреждения об устаревании и без глобального fallback
|
|
|
|
#### Scenario: Ошибка T-Bank connection
|
|
- **WHEN** запрос T-Bank connection завершается известной ошибкой
|
|
- **THEN** frontend сохраняет локальное состояние: временный сбой чтения восстанавливается автоматически, а подтверждённая необходимость действия пользователя сопровождается этим действием вместо глобального fallback
|