Files
specs/openspec/changes/hourly-portfolio-sync-history/proposal.md
T
ksv741 b24a686188
Specs security / security (push) Successful in 7s
Specs verify / verify (push) Successful in 9s
Conventional commits / commits (pull_request) Successful in 10s
Specs security / security (pull_request) Successful in 7s
Specs verify / verify (pull_request) Successful in 9s
spec: define hourly portfolio sync history
2026-10-09 09:05:04 +03:00

6.5 KiB

Why

Сейчас актуализация инвестиционных данных зависит от открытия экранов и ручного действия. Неактивный кабинет не получает новые данные, а долгосрочную динамику стоимости счёта восстановить по последнему снимку невозможно. Нужны предсказуемое часовое обновление независимо от frontend и накопление пригодных для будущего графика оценок. Согласованный объём — issue #22.

What Changes

  • Обновлять доступные счета, состав и стоимость портфелей, актуальные операции и будущие события по бумагам портфеля раз в час силами backend; первое обновление выполнять после подключения. Сохранённые данные отдавать сразу, сохраняя последнее успешное состояние при ошибке и показывая результат последней попытки, включая частичный успех.
  • Накапливать оценку стоимости каждого счёта по валютам на фактическое время успешного получения полной оценки, без конвертации и подмены отсутствующей цены нулём. Сохранять историю при смене токена и отключении, скрывать её без подтверждённого доступа и продолжать при восстановлении доступа к тому же счёту.
  • Убрать ручную синхронизацию с T-Bank и обновление личных данных при открытии инвестиционных экранов. Открытые экраны перечитывают сохранённые данные каждые 30 минут. Сохранить первичную загрузку отсутствующих исторических интервалов и диапазонов свечей, но не перечитывать полностью загруженную старую историю автоматически.
  • Получать справочные данные инструмента и результаты поиска онлайн без отдельного долговременного хранения; сохранить подписи последнего снимка портфеля, события, котировки и свечи согласно их разным правилам актуализации.
  • Вне объёма: сам график и публичное чтение его точек, валютная конвертация, многопроцессное расписание, автоматическая повторная сверка уже полных старых интервалов операций и свечей, а также изменение действий для ручных банковских карт и повторного чтения после сетевой ошибки.

Capabilities

New Capabilities

  • specs/hourly-investment-sync/spec.md: независимый от открытых экранов часовой обход и наблюдаемый результат последней попытки.
  • specs/portfolio-value-history/spec.md: точная история оценки по счёту и валюте с учётом полноты и границы доступа.
  • specs/online-instrument-information/spec.md: получение справочных сведений и поиска онлайн без сохранённой самостоятельной копии, отдельно от котировок, свечей и событий.

Modified Capabilities

  • specs/portfolio-view/spec.md: чтение последнего снимка без запуска синхронизации, часовая свежесть, отсутствие ручной синхронизации и сохранение доступных подписей позиций.
  • specs/brokerage-accounts/spec.md: быстрое чтение сохранённых счетов и сводок, видимость частичных ошибок и периодическое перечитывание экрана.
  • specs/tbank-connection/spec.md: первая загрузка после подключения и сохранение скрытой истории стоимости при отключении/замене токена.
  • specs/brokerage-account-upcoming-events/spec.md: обновление прогноза по расписанию с сохранением последнего полного результата при сбое.
  • specs/frontend-data-resilience/spec.md: разделение повтора HTTP-чтения и запрещённой ручной синхронизации при часовом обновлении.
  • specs/brokerage-account-ledger/spec.md: первичная загрузка отсутствующего периода без повторной сверки уже полного исторического периода при открытии страницы.

Impact

Пользователь быстрее открывает инвестиционные экраны и видит время и возможную неполноту последней синхронизации; открытый экран получает новые сохранённые данные без команды обновления. Затронуты инвестиционные экраны, фоновое обновление и хранение личных данных, правила доступа после смены подключения, отображение ошибок и онлайн-получение информации об инструментах. Переход требует согласовать действующие требования, которые пока предписывают короткие сроки свежести и ручные повторы.