Ветка перебазирована на актуальный develop: PR #98 (#62) уже смержен, producer-only тесты удалены там.
Что изменено
tbank-local-reads (late portfolio after connection replacement): вместо delay(20) и локального GET (который не запускает upstream) реальный producer запускается через PortfolioService.request. Barrier started подтверждает, что upstream начат до замены соединения; late.done - барьер завершения вместо таймера.
tbank-portfolio-publish (новый): контрольный тест PortfolioRepository.publish на реальной SQLite-транзакции для running attempt текущей revision.
Что проверено
npm run verify и npm run test:e2e зелёные (на предыдущей базе; после rebase CI перезапущен).
Mutation-проверка: отключение claimed-fence в publish НЕ ловится tbank-local-reads.
Прямого теста на отказ publish при устаревшем attempt написать нельзя: FK tbankSyncWork -> tbankConnection и каскад из put не допускают состояния «работа есть, соединение с этим revision уже другое». Защита обеспечивается двумя слоями, доказать claimed отдельно не получилось. Нужна инъекция падения между шагами репозитория.
Не сделаны: sleep-синхронизации в value-history, metadata, catalog, operations-sync, portfolio.service.spec, и rollback fault после первой Portfolio write.
Поэтому PR не использует Closes.
Refs #63
Ветка перебазирована на актуальный `develop`: PR #98 (#62) уже смержен, producer-only тесты удалены там.
## Что изменено
- `tbank-local-reads` (late portfolio after connection replacement): вместо `delay(20)` и локального GET (который не запускает upstream) реальный producer запускается через `PortfolioService.request`. Barrier `started` подтверждает, что upstream начат до замены соединения; `late.done` - барьер завершения вместо таймера.
- `tbank-portfolio-publish` (новый): контрольный тест `PortfolioRepository.publish` на реальной SQLite-транзакции для running attempt текущей revision.
## Что проверено
- `npm run verify` и `npm run test:e2e` зелёные (на предыдущей базе; после rebase CI перезапущен).
- Mutation-проверка: отключение `claimed`-fence в `publish` НЕ ловится `tbank-local-reads`.
## Ограничения (issue #63 НЕ закрывается этим PR)
- Прямого теста на отказ `publish` при устаревшем attempt написать нельзя: FK `tbankSyncWork -> tbankConnection` и каскад из `put` не допускают состояния «работа есть, соединение с этим revision уже другое». Защита обеспечивается двумя слоями, доказать `claimed` отдельно не получилось. Нужна инъекция падения между шагами репозитория.
- Не сделаны: sleep-синхронизации в `value-history`, `metadata`, `catalog`, `operations-sync`, `portfolio.service.spec`, и rollback fault после первой Portfolio write.
- Поэтому PR не использует `Closes`.
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.
Refs #63
Ветка перебазирована на актуальный
develop: PR #98 (#62) уже смержен, producer-only тесты удалены там.Что изменено
tbank-local-reads(late portfolio after connection replacement): вместоdelay(20)и локального GET (который не запускает upstream) реальный producer запускается черезPortfolioService.request. Barrierstartedподтверждает, что upstream начат до замены соединения;late.done- барьер завершения вместо таймера.tbank-portfolio-publish(новый): контрольный тестPortfolioRepository.publishна реальной SQLite-транзакции для running attempt текущей revision.Что проверено
npm run verifyиnpm run test:e2eзелёные (на предыдущей базе; после rebase CI перезапущен).claimed-fence вpublishНЕ ловитсяtbank-local-reads.Ограничения (issue #63 НЕ закрывается этим PR)
publishпри устаревшем attempt написать нельзя: FKtbankSyncWork -> tbankConnectionи каскад изputне допускают состояния «работа есть, соединение с этим revision уже другое». Защита обеспечивается двумя слоями, доказатьclaimedотдельно не получилось. Нужна инъекция падения между шагами репозитория.value-history,metadata,catalog,operations-sync,portfolio.service.spec, и rollback fault после первой Portfolio write.Closes.