spec: treat MOEX response without requested block as source failure (WealthLedger/specs#76) #77

Merged
codex-bot merged 1 commits from spec/76-moex-missing-block-failure into develop 2026-11-03 06:12:27 +03:00
Owner

Summary

Spec brokerage-account-upcoming-events приведена в соответствие с поведением backend после решения владельца (WealthLedger/backend#53): MOEX-ответ без запрошенного блока — сбой источника, а не «нет данных».

Linked Issue

Refs WealthLedger/specs#76; WealthLedger/backend#53 (AC 5), audit 2026-10-11: BE-003, BE-014.

Changes

  • Сценарий «MOEX отвечает без запрошенного блока»: отсутствие блока, некорректный блок или курсор = неуспех источника. Календарь не заменяется, сохраняются последний полный календарь и прогноз, meta обозначает неуспех последней попытки.
  • Новый сценарий «MOEX подтверждает отсутствие данных»: корректный блок без строк либо «инструмент не найден» = успешное отсутствие данных, без строк и без ошибки.
  • Остальные требования не менялись.

Причина: при часовом перечитывании календарей (backend#53) трактовка «нет блока → пусто» позволила бы урезанному ответу MOEX успешно затереть сохранённый полный календарь. Это соответствует MoexClient и существующим тестам moex.client.spec.ts (missing block — сбой, confirmed empty blocks и 404 — пустой успех).

Verification

  • openspec validate --all --strict --no-interactive --store wealth-ledger-specs с закреплённой версией 1.13.1: 28 passed, 0 failed.
  • lychee --offline --include-fragments: 0 errors. git diff --check: OK.
  • Ограничения: глобальный openspec 1.15.0 не проходит check:openspec (ожидается 1.13.1), поэтому npm run validate целиком локально не запускал, а прогнал его составные команды с 1.13.1. Provider semantics MOEX на live не проверялась (запрещено).

Breaking Changes (если есть)

Нет. Behavioral spec, API-контракт не меняется.

## Summary Spec `brokerage-account-upcoming-events` приведена в соответствие с поведением backend после решения владельца (WealthLedger/backend#53): MOEX-ответ без запрошенного блока — сбой источника, а не «нет данных». ## Linked Issue Refs WealthLedger/specs#76; WealthLedger/backend#53 (AC 5), audit 2026-10-11: BE-003, BE-014. ## Changes - Сценарий «MOEX отвечает без запрошенного блока»: отсутствие блока, некорректный блок или курсор = неуспех источника. Календарь не заменяется, сохраняются последний полный календарь и прогноз, `meta` обозначает неуспех последней попытки. - Новый сценарий «MOEX подтверждает отсутствие данных»: корректный блок без строк либо «инструмент не найден» = успешное отсутствие данных, без строк и без ошибки. - Остальные требования не менялись. Причина: при часовом перечитывании календарей (backend#53) трактовка «нет блока → пусто» позволила бы урезанному ответу MOEX успешно затереть сохранённый полный календарь. Это соответствует `MoexClient` и существующим тестам `moex.client.spec.ts` (`missing block` — сбой, `confirmed empty blocks` и 404 — пустой успех). ## Verification - `openspec validate --all --strict --no-interactive --store wealth-ledger-specs` с закреплённой версией 1.13.1: 28 passed, 0 failed. - `lychee --offline --include-fragments`: 0 errors. `git diff --check`: OK. - Ограничения: глобальный openspec 1.15.0 не проходит `check:openspec` (ожидается 1.13.1), поэтому `npm run validate` целиком локально не запускал, а прогнал его составные команды с 1.13.1. Provider semantics MOEX на live не проверялась (запрещено). ## Breaking Changes (если есть) Нет. Behavioral spec, API-контракт не меняется.
codex-bot added 1 commit 2026-11-02 23:08:36 +03:00
spec: treat MOEX response without requested block as source failure (WealthLedger/specs#76)
Conventional commits / commits (pull_request) Successful in 9s
Specs security / security (pull_request) Successful in 7s
Specs verify / verify (pull_request) Successful in 12s
705acbfb4b
codex-bot merged commit aa1a57ac20 into develop 2026-11-03 06:12:27 +03:00
codex-bot deleted branch spec/76-moex-missing-block-failure 2026-11-03 06:12:27 +03:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WealthLedger/specs#77