Files
codex-bot f0478c6d6b
Specs security / security (push) Successful in 8s
Specs verify / verify (push) Successful in 10s
spec: archive quiet-user-feedback and sync canonical specs (#50)
Native archive применил 9 added и 12 modified требований без удалений; все 10 сценариев сохранены. Новый canonical spec frontend-user-feedback внесён в AI_INDEX.
2026-10-17 22:18:27 +03:00

8.6 KiB

MODIFIED Requirements

Requirement: Realized analytics never presents an incomplete result as complete

Система MUST формировать итог выбранного периода, его trend buckets, instrument breakdown и drill-down только после успешного получения всех необходимых cursor pages исполненных операций этого периода. Каждое comparison MUST дополнительно требовать полного результата соответствующего периода сравнения. Ошибка любой необходимой страницы MUST NOT возвращать частичные totals, comparisons, buckets или breakdown как полный результат. При временной недоступности клиент MUST сохранять предыдущий полный результат той же выборки либо показывать нейтральную недоступность соответствующего расчёта без технических сообщений и ручного повтора. Восстановление SHALL выполняться автоматически по frontend-data-resilience.

Доступные независимые части MUST оставаться видимыми; неполное сравнение MUST обозначаться как недоступное без нулевой базы и окончательной разницы. Успешный полный период без подходящих выплат MUST возвращать нулевой результат и отображаться с объяснением пустого состояния. Неизвестный результат MUST NOT подменяться таким нулевым результатом.

Scenario: Все страницы операций успешно получены

  • WHEN для расчёта требуется несколько cursor pages и каждая страница успешно получена
  • THEN система формирует результат по всем подходящим Ledger Entries со всех страниц

Scenario: Одна из страниц операций недоступна

  • WHEN получение любой необходимой cursor page завершается временной ошибкой
  • THEN страница сохраняет предыдущий полный результат той же выборки либо показывает нейтральную недоступность расчёта без ручного повтора и не выдаёт частичный результат за полный

Scenario: В периоде нет купонов и дивидендов

  • WHEN все необходимые операции успешно получены, но среди них нет подходящих coupon или dividend Ledger Entries
  • THEN страница показывает нулевой результат и объясняет, что за выбранный период купоны и дивиденды не найдены

Scenario: Основной период готов, сравнение пока нет

  • WHEN выбранный период полностью рассчитан, а необходимый период сравнения ещё не получен
  • THEN основной доход остаётся доступным, сравнение обозначается как недоступное без нулевой базы, частичной разницы и сообщения о синхронизации

Requirement: Account overview has an independent current-month income summary

Обзор выбранного Brokerage Account MUST показывать компактный source-currency summary «Получено купонами и дивидендами» за период от первого дня текущего месяца по Europe/Moscow до сегодняшнего дня включительно и действие перехода на страницу «Пассивный доход». Summary MUST всегда использовать этот current-month период и MUST NOT наследовать последний пользовательский период страницы аналитики. Пустой или неуспешный расчёт MUST оставаться локальным состоянием блока и MUST NOT заменять успешно отображённый Portfolio или другие блоки обзора. Временная ошибка обновления MUST сохранять доступную сводку той же выборки без предупреждения и ручного повтора. При отсутствии результата SHALL показываться нейтральная недоступность после первичного ожидания с автоматическим восстановлением.

Scenario: Обзор показывает доход текущего месяца

  • WHEN обзор Brokerage Account загружен и current-month analytics успешно рассчитана
  • THEN он показывает отдельные source-currency итоги с начала текущего месяца по сегодняшний день и переход к полной аналитике

Scenario: Пользовательский период не влияет на обзор

  • WHEN User ранее применил на странице аналитики период, отличный от текущего месяца
  • THEN summary обзора по-прежнему рассчитывается от первого дня текущего месяца по сегодняшний день

Scenario: Current-month summary недоступен

  • WHEN Portfolio обзора успешно загружен, но расчёт current-month summary завершается временной ошибкой
  • THEN Portfolio и остальные блоки остаются доступными, а summary сохраняет предыдущий результат той же выборки либо показывает нейтральную недоступность без ручного повтора

ADDED Requirements

Requirement: Доход обновляется без технических сообщений

Страница дохода MUST сохранять применённый период, черновик фильтров и доступный результат при фоновом обновлении. Временная ошибка SHALL восстанавливаться автоматически без кнопок обновления и повтора, времени получения данных и уведомлений об их загрузке. Изменение периода MUST NOT подписывать прежний результат новыми датами. Ошибки пользовательского периода MUST оставаться у полей и MUST NOT запускать автоматический повтор ошибочного ввода. Подтверждённая потеря доступа MUST скрывать личные результаты.

Scenario: Доход обновляется при редактировании периода

  • WHEN пользователь редактирует черновик дат, а фоновое обновление применённого периода завершилось
  • THEN черновик и фокус сохраняются, результат относится к прежнему применённому периоду и техническое уведомление не появляется

Scenario: Новый период пока недоступен

  • WHEN пользователь применил другой допустимый период, но его расчёт ещё не получен
  • THEN страница показывает ожидание или недоступность нового результата, не выдаёт прежние суммы за доход нового периода и восстанавливается автоматически