spec: complete persist-tbank-data implementation
Conventional commits / commits (pull_request) Successful in 12s
Specs security / security (pull_request) Successful in 7s
Specs verify / verify (pull_request) Successful in 11s
Specs security / security (push) Successful in 7s
Specs verify / verify (push) Successful in 9s
Conventional commits / commits (pull_request) Successful in 12s
Specs security / security (pull_request) Successful in 7s
Specs verify / verify (pull_request) Successful in 11s
Specs security / security (push) Successful in 7s
Specs verify / verify (push) Successful in 9s
Record the approved proposal, delta specifications, design and 27 verified implementation tasks. Keep the change active; archiving and main-spec synchronization are deferred.
This commit was merged in pull request #16.
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
## Why
|
||||
|
||||
Повторные открытия инвестиционных экранов зависят от скорости и доступности
|
||||
T-Bank, а перезапуск приложения теряет уже загруженную историю. Пользователь
|
||||
согласовал [ADR 017](../../../../docs/adr/017-local-tbank-reads-and-background-sync.md):
|
||||
показывать сохранённые данные сразу и обновлять их в фоне только по запросу.
|
||||
|
||||
## What Changes
|
||||
|
||||
- Все экраны T-Bank — счета, портфель, операции, доходы, инструменты,
|
||||
текущие цены, свечи и выплаты — повторно используют постоянно сохранённые
|
||||
данные, в том числе после перезапуска. Обычный ответ не ждёт брокера;
|
||||
целевой ориентир до 500 мс ещё должен быть подтверждён измерениями.
|
||||
- Запрос экрана запускает обновление отсутствующих или устаревших данных:
|
||||
портфель, текущие цены и незавершённая дневная свеча — 1 минута;
|
||||
текущий месяц операций и список счетов — 5 минут;
|
||||
инструменты и календари выплат — сутки. Само течение времени работу не запускает.
|
||||
- Полные прошлые месяцы операций и завершённые свечи сохраняются.
|
||||
Пропуски догружаются при запросах; ручное обновление перечитывает показанный
|
||||
период и зависимости текущего экрана, а не весь накопленный архив.
|
||||
- При первой загрузке сначала доступны нужный экрану период и сравнения
|
||||
доходов, затем догружается вся доступная история счёта. История бумаг
|
||||
текущего портфеля загружается заранее в рамках этой работы; остальных —
|
||||
при открытии инструмента. Начатая работа может завершиться после ухода.
|
||||
- Пользователь различает свежесть, полноту, загрузку и ошибку обновления.
|
||||
Неполный период не считается окончательным финансовым результатом или
|
||||
подтверждением отсутствия операций. Ошибка сохраняет прежние данные.
|
||||
- Личные данные доступны только своему пользователю в границах текущего
|
||||
подключения. Старое подключение не может опубликовать поздний результат.
|
||||
Существующие проверки доступа и ошибки интеграции сохраняются.
|
||||
|
||||
«Полнота истории счёта» используется в смысле
|
||||
[глоссария](../../../../docs/glossary.md#полнота-истории-счёта): все доступные
|
||||
исполненные операции периода на момент успешной сверки, включая полный пустой
|
||||
период. Полнота не означает свежесть и не исключает поздние исправления.
|
||||
Стабильность ID операции — принятое допущение проекта, не гарантия T-Bank;
|
||||
повторно полученные поля операции могут изменяться.
|
||||
|
||||
**Non-goals:** периодическая синхронизация, автоматический поиск исправлений
|
||||
полной старой истории, обнаружение сменившихся ID, история стоимости портфеля,
|
||||
предзагрузка всего каталога, архив без подключения, новые сценарии отключения
|
||||
и закрытых счетов. Эта сессия создаёт planning artifacts; реализация не выполняется.
|
||||
|
||||
## Capabilities
|
||||
|
||||
### New Capabilities
|
||||
|
||||
- [specs/tbank-data-sync/spec.md](specs/tbank-data-sync/spec.md): постоянное локальное чтение, запросы
|
||||
синхронизации, интервальная полнота, восстановление, общие данные инструментов,
|
||||
границы подключения и проверяемые критерии быстродействия.
|
||||
|
||||
### Modified Capabilities
|
||||
|
||||
- [specs/brokerage-accounts/spec.md](specs/brokerage-accounts/spec.md): локальный список, сохранённые сводки,
|
||||
состояния загрузки и ошибок без синхронного ожидания брокера.
|
||||
- [specs/portfolio-view/spec.md](specs/portfolio-view/spec.md): постоянный последний полный снимок,
|
||||
минутная свежесть и ручное обновление.
|
||||
- [specs/brokerage-account-ledger/spec.md](specs/brokerage-account-ledger/spec.md): локальная пагинация и фильтрация,
|
||||
полнота периода вместо обязательного перечитывания RAM-кэша.
|
||||
- [specs/brokerage-account-income-analytics/spec.md](specs/brokerage-account-income-analytics/spec.md): полнота выбранного периода
|
||||
и сравнений, сохранение результата, идентичность повторно загруженных операций.
|
||||
- [specs/brokerage-account-upcoming-events/spec.md](specs/brokerage-account-upcoming-events/spec.md): прогноз из сохранённых
|
||||
источников с видимой полнотой и ошибкой обновления.
|
||||
- [specs/frontend-data-resilience/spec.md](specs/frontend-data-resilience/spec.md): различимые состояния серверного
|
||||
сохранённого результата и клиентского кэша на всех экранах T-Bank.
|
||||
|
||||
## Impact
|
||||
|
||||
Изменение затрагивает пользователей всех инвестиционных экранов, серверное
|
||||
хранение и получение данных, публичный контракт состояний, интерфейс обновления
|
||||
и объясняющую документацию. Финансовые правила, валютная точность, значение
|
||||
прогнозов и изоляция пользователей сохраняются. Основные specs и чужие active
|
||||
changes не изменяются до отдельного завершения lifecycle этого change.
|
||||
Reference in New Issue
Block a user