Files
specs/openspec/changes/archive/2026-10-09-persist-tbank-data/proposal.md
T
ksv741 329d66e767
Specs security / security (push) Successful in 8s
Specs verify / verify (push) Successful in 11s
spec: finalize wealth-ledger SDD migration
2026-10-09 21:14:22 +03:00

74 lines
7.1 KiB
Markdown

## 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.