Удалён публичный GET /api/v1/tbank-sync/{id} (контроллер, сервис, TbankSyncStatusDto, TbankSyncRepository.read, screenIntent). Читал только legacy screen: строки, которые больше не пишутся.
Удалён публичный query sync=observe на всех investment read-маршрутах (stocks, bonds, income-analytics, upcoming-events). Параметр больше не валидируется: whitelist ValidationPipe его отбрасывает, ответ не меняется. Внутренние observe-пути, которые используют живые процессы, сохранены.
Удалён мёртвый CatalogDiscoveryService observe-ветки и CatalogDiscoveryRepository-зависимость; BrokerageOperationsService.collectRanges всегда планирует загрузку на обычном чтении.
Тесты переписаны на наблюдаемый контракт: параметр игнорируется, status не публикуется в OpenAPI, sync не объявлен ни на одном маршруте.
eslint-suppressions.json: удалены подавления для удалённых файлов (--prune-suppressions).
Совместимость (breaking)
Owner разрешил удаление без окна совместимости: access logs и список внешних потребителей недоступны, поэтому «нет внешних потребителей» не утверждается. Rollback: предыдущий backend image/commit; миграции БД нет, данные не удалены.
npm run test:openapi-contract: PASS. git diff --check: PASS.
Frontend PR, который перегенерирует src/shared/api/spec/openapi.json (сейчас содержит /api/v1/tbank-sync/{id}), нужен отдельно. ClosesWealthLedger/backend#196.
## Изменения
- Удалён публичный `GET /api/v1/tbank-sync/{id}` (контроллер, сервис, `TbankSyncStatusDto`, `TbankSyncRepository.read`, `screenIntent`). Читал только legacy `screen:` строки, которые больше не пишутся.
- Удалён публичный query `sync=observe` на всех investment read-маршрутах (stocks, bonds, income-analytics, upcoming-events). Параметр больше не валидируется: whitelist ValidationPipe его отбрасывает, ответ не меняется. Внутренние `observe`-пути, которые используют живые процессы, сохранены.
- Удалён мёртвый `CatalogDiscoveryService` observe-ветки и `CatalogDiscoveryRepository`-зависимость; `BrokerageOperationsService.collectRanges` всегда планирует загрузку на обычном чтении.
- Тесты переписаны на наблюдаемый контракт: параметр игнорируется, status не публикуется в OpenAPI, `sync` не объявлен ни на одном маршруте.
- `eslint-suppressions.json`: удалены подавления для удалённых файлов (`--prune-suppressions`).
## Совместимость (breaking)
Owner разрешил удаление без окна совместимости: access logs и список внешних потребителей недоступны, поэтому «нет внешних потребителей» не утверждается. Rollback: предыдущий backend image/commit; миграции БД нет, данные не удалены.
## Проверки
- `npm run verify`: PASS (45 suites / 331 тест, lint, typecheck, build).
- `node test/sqlite.cjs --all`: PASS (21 suite).
- `npm run test:openapi-contract`: PASS. `git diff --check`: PASS.
Frontend PR, который перегенерирует `src/shared/api/spec/openapi.json` (сейчас содержит `/api/v1/tbank-sync/{id}`), нужен отдельно. Closes WealthLedger/backend#196.
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.
Изменения
GET /api/v1/tbank-sync/{id}(контроллер, сервис,TbankSyncStatusDto,TbankSyncRepository.read,screenIntent). Читал только legacyscreen:строки, которые больше не пишутся.sync=observeна всех investment read-маршрутах (stocks, bonds, income-analytics, upcoming-events). Параметр больше не валидируется: whitelist ValidationPipe его отбрасывает, ответ не меняется. Внутренниеobserve-пути, которые используют живые процессы, сохранены.CatalogDiscoveryServiceobserve-ветки иCatalogDiscoveryRepository-зависимость;BrokerageOperationsService.collectRangesвсегда планирует загрузку на обычном чтении.syncне объявлен ни на одном маршруте.eslint-suppressions.json: удалены подавления для удалённых файлов (--prune-suppressions).Совместимость (breaking)
Owner разрешил удаление без окна совместимости: access logs и список внешних потребителей недоступны, поэтому «нет внешних потребителей» не утверждается. Rollback: предыдущий backend image/commit; миграции БД нет, данные не удалены.
Проверки
npm run verify: PASS (45 suites / 331 тест, lint, typecheck, build).node test/sqlite.cjs --all: PASS (21 suite).npm run test:openapi-contract: PASS.git diff --check: PASS.Frontend PR, который перегенерирует
src/shared/api/spec/openapi.json(сейчас содержит/api/v1/tbank-sync/{id}), нужен отдельно. Closes WealthLedger/backend#196.