# 019. Часовой обход и онлайн-справочник инструментов **Status:** Accepted. Заменяет request-driven, manual-refresh и no-periodic-walk части [ADR 017](017-local-tbank-reads-and-background-sync.md) и дополняет [ADR 018](018-minimal-runtime-coordination.md). Правило «справочные сведения запрашиваются онлайн» дополнено исключением для сектора и бренда актива позиции — [ADR 022](022-stored-instrument-classification.md). ## Decision - Личные T-Bank данные текущего подключения обновляются владельцами источников через durable hourly walk; его результат ограничен этой connection boundary. Обычный GET и retry читают только сохранённый результат и не запускают personal work. - Только первое открытие неподтверждённого исторического интервала operations и первого неоткрытого диапазона candles может получить соответственно этот интервал или диапазон. Это не manual sync; повторное чтение не расширяет и не запускает такую работу заново. - Portfolio, operations, forecasts и события сохраняют собственные complete результаты и время последнего успешного чтения. Результат ресурса (freshness, completeness, `lastSuccessfulAt`, availability) независим от resource-relevant последней часовой попытки: поздняя partial/failed попытка не заменяет сохранённый complete result. При его отсутствии `data: null`. - Detail, company, catalog search и ticker lookup получают ответ онлайн через существующие integration clients. Их ошибки не заменяют сохранённые финансовые данные или подписи snapshot. - Старые справочные строки не являются источником актуальности и удаляются только отдельной совместимой миграцией после проверки FK и свечей. - Клиент повторяет открытые инвестиционные GET не чаще одного раза в 30 минут; retry повторяет чтение и не создаёт screen sync work. Наблюдение последней попытки, включая Accounts `sync`, не является командой. ## Consequences Карточки инструментов зависят от доступности публичного upstream в момент чтения. Финансовые экраны сохраняют последний успешный snapshot, а статус последнего hourly walk показывается отдельно. OpenAPI backend остаётся единственным исполняемым источником HTTP-контракта; frontend использует опубликованный snapshot.