TbankSyncService.request и dispatch (orchestration экрана): контроллер использует только status; зависимости membership, portfolio, metadata, discovery, sources, candles убраны из сервиса.
CatalogDiscoveryService.request, refresh, drain и producer-состояние (очередь, observers, completions, logger). read больше не запускает producer; параметр observe у read удалён (вызовы из search/detail/byTicker передают только observe-ветки).
Producer-only тесты в tbank-catalog-discovery.e2e-spec.ts (coalescing, late publication, forced retry, recovery, refresh-stability). Оставшиеся тесты переписаны на прямой seed через prisma, без producer.
Неактуальные записи в eslint-suppressions.json (7 строк).
Не тронуто (по границам issue)
Status/sourceStatus, public sync=observe, shared repository.read/publishSource/readSources/work, instrument schema/FK, hourly/candle/ledger owners.
npm run test:e2e: 20/20 SQLite suites, 22 tests в сумме по выводу - зелёные.
npm run test:openapi-contract: 3/3.
Ограничения
repository.reserve/publish/finish (catalog) и TbankSyncRepository.reserve/progress остаются в репозиториях: им нет вызывающих в production, но их удаление относится к follow-up, а не к этому PR, чтобы не расширять shared-owner scope.
Closes #62
## Что удалено
- `TbankSyncService.request` и `dispatch` (orchestration экрана): контроллер использует только `status`; зависимости `membership, portfolio, metadata, discovery, sources, candles` убраны из сервиса.
- `CatalogDiscoveryService.request`, `refresh`, `drain` и producer-состояние (очередь, observers, completions, `logger`). `read` больше не запускает producer; параметр `observe` у `read` удалён (вызовы из `search/detail/byTicker` передают только observe-ветки).
- Orphan DTO: `TbankSyncAcceptedDto`, `HourlySyncSectionDto`.
- Producer-only тесты в `tbank-catalog-discovery.e2e-spec.ts` (coalescing, late publication, forced retry, recovery, refresh-stability). Оставшиеся тесты переписаны на прямой seed через prisma, без producer.
- Неактуальные записи в `eslint-suppressions.json` (7 строк).
## Не тронуто (по границам issue)
Status/sourceStatus, public sync=observe, shared `repository.read/publishSource/readSources/work`, instrument schema/FK, hourly/candle/ledger owners.
## Проверки
- `npm run verify`: 40 suites, 268 tests, lint, typecheck app/test, coverage, nest build - зелёные.
- `npm run test:e2e`: 20/20 SQLite suites, 22 tests в сумме по выводу - зелёные.
- `npm run test:openapi-contract`: 3/3.
## Ограничения
- `repository.reserve/publish/finish` (catalog) и `TbankSyncRepository.reserve/progress` остаются в репозиториях: им нет вызывающих в production, но их удаление относится к follow-up, а не к этому PR, чтобы не расширять shared-owner scope.
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.
Closes #62
Что удалено
TbankSyncService.requestиdispatch(orchestration экрана): контроллер использует толькоstatus; зависимостиmembership, portfolio, metadata, discovery, sources, candlesубраны из сервиса.CatalogDiscoveryService.request,refresh,drainи producer-состояние (очередь, observers, completions,logger).readбольше не запускает producer; параметрobserveуreadудалён (вызовы изsearch/detail/byTickerпередают только observe-ветки).TbankSyncAcceptedDto,HourlySyncSectionDto.tbank-catalog-discovery.e2e-spec.ts(coalescing, late publication, forced retry, recovery, refresh-stability). Оставшиеся тесты переписаны на прямой seed через prisma, без producer.eslint-suppressions.json(7 строк).Не тронуто (по границам issue)
Status/sourceStatus, public sync=observe, shared
repository.read/publishSource/readSources/work, instrument schema/FK, hourly/candle/ledger owners.Проверки
npm run verify: 40 suites, 268 tests, lint, typecheck app/test, coverage, nest build - зелёные.npm run test:e2e: 20/20 SQLite suites, 22 tests в сумме по выводу - зелёные.npm run test:openapi-contract: 3/3.Ограничения
repository.reserve/publish/finish(catalog) иTbankSyncRepository.reserve/progressостаются в репозиториях: им нет вызывающих в production, но их удаление относится к follow-up, а не к этому PR, чтобы не расширять shared-owner scope.60f4ca6b80to344e2291b6refactor: remove unreachable catalog producer and sync screen orchestration (WealthLedger/backend#62)to refactor: remove unreachable catalog producer and sync orchestration (WealthLedger/backend#62)8ff8656d7fto9717565bc3