spec: archive quiet-user-feedback and sync canonical specs (#50)
Specs security / security (push) Successful in 8s
Specs verify / verify (push) Successful in 10s

Native archive применил 9 added и 12 modified требований без удалений; все 10 сценариев сохранены. Новый canonical spec frontend-user-feedback внесён в AI_INDEX.
This commit was merged in pull request #52.
This commit is contained in:
2026-10-17 22:18:27 +03:00
parent 5a7e319caf
commit f0478c6d6b
26 changed files with 654 additions and 129 deletions
@@ -49,20 +49,25 @@
### Requirement: Account overview includes recent ledger events
Обзор счёта MUST показывать пять последних исполненных записей журнала этого счёта и действие перехода к его полному журналу. Каждая показанная запись MUST иметь ту же визуальную идентичность инструмента и семантику денежного движения, что и запись полного журнала. Исполненные купоны и дивиденды MUST иметь то же представление выплаты, что и на других экранах с купонами и дивидендами; остальные операции сохраняют представление записи журнала. Неуспешный или пустой запрос последних записей MUST оставаться локальным состоянием блока последних событий и MUST NOT заменять успешно отображённый обзор Portfolio.
Обзор счёта MUST показывать пять последних исполненных записей журнала этого
счёта и действие перехода к его полному журналу. Каждая запись MUST иметь ту же
визуальную идентичность инструмента и семантику денежного движения, что и запись
полного журнала. Неуспешный или пустой запрос MUST оставаться локальным состоянием
блока и MUST NOT заменять успешно отображённый Portfolio. При временном сбое
обновления блок MUST сохранять доступные записи без технического предупреждения
или ручного повтора. При отсутствии результата он SHALL показывать первичное
ожидание либо нейтральную недоступность, автоматически восстанавливая чтение.
Неподтверждённая пустота MUST NOT представляться отсутствием операций.
#### Scenario: Отображение последних событий
- **WHEN** загружается обзор счёта и его журнал содержит исполненные операции
- **THEN** обзор показывает не более пяти последних записей и ссылку на полный журнал, а купоны и дивиденды узнаваемы по тому же представлению выплаты
- **THEN** обзор показывает не более пяти последних записей и ссылку на полный журнал
#### Scenario: Последние записи недоступны
- **WHEN** обзор счёта успешно загружается, но запрос последних записей завершается ошибкой
- **THEN** обзор Portfolio остаётся доступным, а блок последних событий отображает собственное состояние восстановления
- **WHEN** обзор счёта успешно загружается, но запрос последних записей завершается временной ошибкой
- **THEN** Portfolio остаётся доступным, а блок сохраняет прежние записи либо показывает нейтральную недоступность без технического повтора и восстанавливается автоматически
#### Scenario: Последняя запись не содержит visual metadata инструмента
- **WHEN** одна из последних записей не имеет доступной presentation metadata инструмента
- **THEN** обзор показывает для неё понятный текстовый fallback и сохраняет дату, тип, инструмент и денежное изменение записи доступными для чтения
@@ -153,3 +158,22 @@
#### Scenario: Ошибка загрузки
- **WHEN** загрузка части отсутствующего периода завершается ошибкой
- **THEN** ранее подтверждённые операции сохраняются, а неполная часть не помечается полной
### Requirement: Журнал восстанавливает чтение без ручного обновления
Страница журнала SHALL сохранять записи текущей выборки при временном сбое
обновления и восстанавливать чтение автоматически по `frontend-data-resilience`.
Период, категории и выбранная страница MUST сохраняться; результат другой
выборки MUST NOT подменять текущую. Страница MUST NOT показывать время получения,
технические статусы или действия ручного повтора. Даты операций, фильтры,
действия их применения и переходы по страницам MUST оставаться доступными.
При отсутствии результата SHALL применяться первичное ожидание и нейтральная
недоступность, а не сообщение об отсутствии операций до подтверждения полноты.
#### Scenario: Обновление журнала временно не удалось
- **WHEN** для применённого периода и страницы уже есть записи, а обновление завершается временной ошибкой
- **THEN** записи и параметры просмотра сохраняются без предупреждения и кнопки повтора до автоматического восстановления
#### Scenario: Следующая страница ещё не получена
- **WHEN** пользователь перешёл к следующей странице, но её загрузка временно не удалась
- **THEN** область новой страницы показывает ожидание или нейтральную недоступность, не выдаёт прежние записи за новую страницу и восстанавливает чтение автоматически