fix: surface durable hourly attempt in accounts and income meta (WealthLedger/backend#58) #91

Closed
codex-bot wants to merge 2 commits from fix/58-hourly-resource-metadata into develop
Owner

Closes WealthLedger/backend#58

Что изменено

  • hourlyAttempt принимает один раздел или список разделов (relevance без второй status registry).
  • Accounts resource: meta.lastAttempt теперь из durable hourly projection по разделам membership+portfolio (все счёта connection); top-level sync сохранён.
  • Income ranges (collectRanges): добавлено lastAttempt: hourlyAttempt(hourly, 'operations', accountId) — тот же контур, что и у operations resource.
  • Income analytics top-level: lastAttempt переиспользуется из operations meta (current.meta.lastAttempt); source work остаётся техническим наблюдением и не подменяет hourly attempt.
  • Fallback маппера без изменений: отсутствие hourly attempt отличается от успешной попытки (none с null timestamps), failed source work больше не называется membership у Income.

Verification

  • Новый SQLite HTTP тест: seeded partial hourly row с проблемами portfolio/operations → Accounts meta.lastAttempt даёт state/time и только portfolio-problem, Income — только operations-problem (section relevance).
  • tbank-income-local: ожидание после repo.fail без hourly изменено на none (нет состоявшейся попытки обхода), data/timestamp assertions прежние.
  • Suites: local-reads, income-local, hourly-lifecycle, upcoming-events, portfolio-structure, tbank-connection, app — все exit 0.
  • Полный npm run verify — exit 0.

Guarantees

  • Source payload, lastSuccessfulAt/freshness неизменны; metadata read не создаёт RPC/work (только read-only hourly projection).
  • Privacy/revision fencing прежняя: replacement/logout/foreign account не раскрывает old-generation attempt (TbankSyncRepository.hourly проверяет current connection).
Closes WealthLedger/backend#58 ## Что изменено - `hourlyAttempt` принимает один раздел или список разделов (relevance без второй status registry). - Accounts resource: `meta.lastAttempt` теперь из durable hourly projection по разделам `membership`+`portfolio` (все счёта connection); top-level `sync` сохранён. - Income ranges (`collectRanges`): добавлено `lastAttempt: hourlyAttempt(hourly, 'operations', accountId)` — тот же контур, что и у operations resource. - Income analytics top-level: `lastAttempt` переиспользуется из operations meta (`current.meta.lastAttempt`); source work остаётся техническим наблюдением и не подменяет hourly attempt. - Fallback маппера без изменений: отсутствие hourly attempt отличается от успешной попытки (`none` с null timestamps), failed source work больше не называется `membership` у Income. ## Verification - Новый SQLite HTTP тест: seeded `partial` hourly row с проблемами `portfolio`/`operations` → Accounts meta.lastAttempt даёт state/time и только portfolio-problem, Income — только operations-problem (section relevance). - `tbank-income-local`: ожидание после `repo.fail` без hourly изменено на `none` (нет состоявшейся попытки обхода), data/timestamp assertions прежние. - Suites: local-reads, income-local, hourly-lifecycle, upcoming-events, portfolio-structure, tbank-connection, app — все exit 0. - Полный `npm run verify` — exit 0. ## Guarantees - Source payload, `lastSuccessfulAt`/freshness неизменны; metadata read не создаёт RPC/work (только read-only hourly projection). - Privacy/revision fencing прежняя: replacement/logout/foreign account не раскрывает old-generation attempt (`TbankSyncRepository.hourly` проверяет current connection).
codex-bot added 1 commit 2026-10-14 16:20:49 +03:00
fix: surface durable hourly attempt in accounts and income meta (WealthLedger/backend#58)
Backend verify / commits (pull_request) Successful in 33s
Backend verify / security (pull_request) Successful in 12s
Backend verify / verify (pull_request) Successful in 5m45s
d47dfee208
codex-bot added 1 commit 2026-10-14 17:03:02 +03:00
Merge branch 'develop' into fix/58-hourly-resource-metadata
Backend verify / commits (pull_request) Failing after 37s
Backend verify / security (pull_request) Skipped
Backend verify / verify (pull_request) Skipped
8cc63b3ba5
codex-bot closed this pull request 2026-10-14 18:00:46 +03:00

Pull request closed

This pull request cannot be reopened because the branch was deleted.
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WealthLedger/backend#91