Часовой проход (TbankHourlyScheduler.refreshAccounts) диспатчит portfolio-работы и сразу запускает operations, не дожидаясь публикации Portfolio. Для крупных счетов snapshot публикуется позже (≈7 с), чем завершается coverage операций (≈1 с), поэтому coverage.to < portfolio.fetchedAt и hasPerformanceCoverage даёт OPERATIONS_HISTORY_INCOMPLETE («История операций ещё не получена полностью») при полностью загруженной истории.
Пример dev: Брокерский счёт/ИИС — snapshot 05:51:02, coverage до 05:50:55.
Acceptance Criteria
В часовом проходе синхронизация операций счёта стартует после завершения его portfolio-работы, coverage покрывает fetchedAt snapshot.
Ошибка/таймаут portfolio не блокирует остальные секции (поведение problems сохраняется).
Тест воспроизводит порядок: coverage to ≥ portfolio fetchedAt после прохода.
## Проблема
Часовой проход (`TbankHourlyScheduler.refreshAccounts`) диспатчит portfolio-работы и сразу запускает operations, не дожидаясь публикации Portfolio. Для крупных счетов snapshot публикуется позже (≈7 с), чем завершается coverage операций (≈1 с), поэтому `coverage.to < portfolio.fetchedAt` и `hasPerformanceCoverage` даёт `OPERATIONS_HISTORY_INCOMPLETE` («История операций ещё не получена полностью») при полностью загруженной истории.
Пример dev: Брокерский счёт/ИИС — snapshot 05:51:02, coverage до 05:50:55.
## Acceptance Criteria
- [ ] В часовом проходе синхронизация операций счёта стартует после завершения его portfolio-работы, coverage покрывает `fetchedAt` snapshot.
- [ ] Ошибка/таймаут portfolio не блокирует остальные секции (поведение problems сохраняется).
- [ ] Тест воспроизводит порядок: coverage `to` ≥ portfolio `fetchedAt` после прохода.
Связано: WealthLedger/main#54, WealthLedger/main#55.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Проблема
Часовой проход (
TbankHourlyScheduler.refreshAccounts) диспатчит portfolio-работы и сразу запускает operations, не дожидаясь публикации Portfolio. Для крупных счетов snapshot публикуется позже (≈7 с), чем завершается coverage операций (≈1 с), поэтомуcoverage.to < portfolio.fetchedAtиhasPerformanceCoverageдаётOPERATIONS_HISTORY_INCOMPLETE(«История операций ещё не получена полностью») при полностью загруженной истории.Пример dev: Брокерский счёт/ИИС — snapshot 05:51:02, coverage до 05:50:55.
Acceptance Criteria
fetchedAtsnapshot.to≥ portfoliofetchedAtпосле прохода.Связано: WealthLedger/main#54, WealthLedger/main#55.