architecture/cross-cutting/data-freshness.md — семантика итога рядом со словарём lastAttempt
integrations/tbank.md — раздел «Состояние и ошибки»: причины жизненного цикла, начатые обращения не отменяются
Verification
Команда / результат / ограничения: npm run verify (markdownlint + relative links + git diff --check) — exit 0; страницы не противоречат canonical spec hourly-investment-sync и поведению meta. Ограничение: Mermaid-рендер в gate не входит, диаграммы не менялись.
Breaking Changes (если есть)
Нет.
## Summary
AS-IS обновления по docs-impact change `harden-hourly-sync-lifecycle`: вывод итога hourly-попытки из фактических результатов шагов, ограниченное ожидание шага, закрытие брошенной попытки; `INTERRUPTED`/`DEADLINE` — внутренняя диагностика жизненного цикла, не ошибки T-Bank.
## Linked Issue
Refs WealthLedger/backend#56 (координатор). Связанные PR: WealthLedger/backend#77 (реализация), WealthLedger/specs — change `harden-hourly-sync-lifecycle`.
## Changes
- `architecture/cross-cutting/data-freshness.md` — семантика итога рядом со словарём `lastAttempt`
- `integrations/tbank.md` — раздел «Состояние и ошибки»: причины жизненного цикла, начатые обращения не отменяются
## Verification
- Команда / результат / ограничения: `npm run verify` (markdownlint + relative links + git diff --check) — exit 0; страницы не противоречат canonical spec `hourly-investment-sync` и поведению `meta`. Ограничение: Mermaid-рендер в gate не входит, диаграммы не менялись.
## Breaking Changes (если есть)
Нет.
CRITICAL integrations/tbank.md:100-104 — документ утверждает, что INTERRUPTED и DEADLINE не раскрываются в hourly-read, но в backend #77hourly() возвращает progress.sections, а hourlyAttempt() переносит эти errorCode в meta.problems — причины могут попасть в API-ответ. Нужно согласовать доку с фактическим контрактом или изменить код.
WARNING architecture/cross-cutting/data-freshness.md:32-38 — формулировка гарантирует, что незавершённый обязательный шаг не даст полного успеха, но dispatchOperations() при null-результате operations.request() не добавляет dispatchProblem и не создаёт durable step — попытка может завершиться succeeded при пропущенном шаге.
INFO architecture/cross-cutting/data-freshness.md:29-30 — описаны none/running/succeeded/partial/failed; pending в фактическом hourly-контракте нет, retry описан для RPC, а не состояния попытки — стоит уточнить, чтобы не смешивать lifecycle attempt и retry отдельных вызовов.
## Итог: Request Changes
- CRITICAL `integrations/tbank.md:100-104` — документ утверждает, что INTERRUPTED и DEADLINE не раскрываются в hourly-read, но в backend #77 `hourly()` возвращает `progress.sections`, а `hourlyAttempt()` переносит эти errorCode в `meta.problems` — причины могут попасть в API-ответ. Нужно согласовать доку с фактическим контрактом или изменить код.
- WARNING `architecture/cross-cutting/data-freshness.md:32-38` — формулировка гарантирует, что незавершённый обязательный шаг не даст полного успеха, но `dispatchOperations()` при null-результате `operations.request()` не добавляет dispatchProblem и не создаёт durable step — попытка может завершиться succeeded при пропущенном шаге.
- INFO `architecture/cross-cutting/data-freshness.md:29-30` — описаны none/running/succeeded/partial/failed; pending в фактическом hourly-контракте нет, retry описан для RPC, а не состояния попытки — стоит уточнить, чтобы не смешивать lifecycle attempt и retry отдельных вызовов.
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.
Summary
AS-IS обновления по docs-impact change
harden-hourly-sync-lifecycle: вывод итога hourly-попытки из фактических результатов шагов, ограниченное ожидание шага, закрытие брошенной попытки;INTERRUPTED/DEADLINE— внутренняя диагностика жизненного цикла, не ошибки T-Bank.Linked Issue
Refs WealthLedger/backend#56 (координатор). Связанные PR: WealthLedger/backend#77 (реализация), WealthLedger/specs — change
harden-hourly-sync-lifecycle.Changes
architecture/cross-cutting/data-freshness.md— семантика итога рядом со словарёмlastAttemptintegrations/tbank.md— раздел «Состояние и ошибки»: причины жизненного цикла, начатые обращения не отменяютсяVerification
npm run verify(markdownlint + relative links + git diff --check) — exit 0; страницы не противоречат canonical spechourly-investment-syncи поведениюmeta. Ограничение: Mermaid-рендер в gate не входит, диаграммы не менялись.Breaking Changes (если есть)
Нет.
Итог: Request Changes
integrations/tbank.md:100-104— документ утверждает, что INTERRUPTED и DEADLINE не раскрываются в hourly-read, но в backend #77hourly()возвращаетprogress.sections, аhourlyAttempt()переносит эти errorCode вmeta.problems— причины могут попасть в API-ответ. Нужно согласовать доку с фактическим контрактом или изменить код.architecture/cross-cutting/data-freshness.md:32-38— формулировка гарантирует, что незавершённый обязательный шаг не даст полного успеха, ноdispatchOperations()при null-результатеoperations.request()не добавляет dispatchProblem и не создаёт durable step — попытка может завершиться succeeded при пропущенном шаге.architecture/cross-cutting/data-freshness.md:29-30— описаны none/running/succeeded/partial/failed; pending в фактическом hourly-контракте нет, retry описан для RPC, а не состояния попытки — стоит уточнить, чтобы не смешивать lifecycle attempt и retry отдельных вызовов.