docs: record backend refactor and close P1-12
This commit is contained in:
@@ -76,11 +76,11 @@ remediation change создаётся после выбора владельце
|
||||
| FE26-09 | Убрать механическое обязательное дробление каждого component. | [FE-G] F-07 | already-covered | done | 06.09.2026; [FE26-E]. [UI pattern](../../frontend/.ai/conventions/frontend-ui.md) сохраняет semantic ownership и допускает tightly-coupled renderers; это guidance, а не line-count gate. Конкретное разделение крупных modules учтено отдельно FE26-13. |
|
||||
| FE26-10 | Объединить protected query policy и endpoint query identity ownership. | [FE-G] F-08; [FE-S] F-05 | already-covered | done | 06.09.2026; [FE26-E]. [App defaults](../../frontend/src/app/ui/App.tsx), [T-Bank VM](../../frontend/src/features/tbank-connection/ui/TbankConnectionSection.vm.ts) и entity-owned options operations/portfolio; status использует общий authenticated query seam. |
|
||||
| FE26-11 | Централизовать test cleanup и auth reset. | [FE-S] F-02 | already-covered | done | 06.09.2026; [FE26-E]. [Test setup](../../frontend/src/test/setup.ts): RTL cleanup, auth reset, MSW handler reset в общем afterEach. |
|
||||
| FE26-12 | Убрать повтор server identity из Income view/model. | [FE-S] F-03 | confirmed | done | 06.09.2026; [FE26-E]. [Backend income service](../../backend/src/tbank/income-analytics.service.ts) передаёт instrumentKey; [Income VM](../../frontend/src/pages/account-income/ui/AccountIncomePage.vm.ts) проверяет и группирует готовую связь, не вычисляя identity. |
|
||||
| FE26-12 | Убрать повтор server identity из Income view/model. | [FE-S] F-03 | confirmed | done | 06.09.2026; [FE26-E]. [Backend income service](../../backend/src/modules/investments/income/income-analytics.service.ts) передаёт instrumentKey; [Income VM](../../frontend/src/pages/account-income/ui/AccountIncomePage.vm.ts) проверяет и группирует готовую связь, не вычисляя identity. |
|
||||
| FE26-13 | Выделить самостоятельные ответственности семи крупных TSX modules. | [FE-S] F-04 | already-covered | done | 06.09.2026; [FE26-E]. Income/Events/Accounts/Account state views, [route fallback](../../frontend/src/app/routes/RouteFallback.tsx), [guards](../../frontend/src/app/routes/RouteGuards.tsx), breadcrumbs и T-Bank loaded section выделены во frontend `c97f62b`. |
|
||||
| FE26-14 | Устранить повтор test client policy и нестабильный cache lifetime. | [FE-S] F-06 | confirmed | done | 06.09.2026; [FE26-E]. [Test query factory](../../frontend/src/test/query.tsx) используется оставшимися auth/T-Bank harnesses; [auth test](../../frontend/src/features/auth/model/auth.test.tsx) проверяет сохранение client и seeded cache при rerender. |
|
||||
| FE26-15 | Перенести компонентные стили из global CSS к владельцам. | [FE-S] F-08 | already-covered | done | 06.09.2026; [FE26-E]. [Global styles](../../frontend/src/shared/theme/styles.css) содержат базовые правила; AppShell, breadcrumbs и auth используют CSS Modules, StateView — Mantine props. |
|
||||
| FE26-16 | Исправить source connectedAt contract вместо String coercion. | [FE-S] F-09 | already-covered | done | 06.09.2026; [FE26-E]. [Backend DTO](../../backend/src/tbank/tbank-connection.dto.ts) задаёт nullable date-time string; [frontend consumer](../../frontend/src/features/tbank-connection/ui/TbankConnectionSectionLoaded.tsx) не скрывает неверный transport type через String. |
|
||||
| FE26-16 | Исправить source connectedAt contract вместо String coercion. | [FE-S] F-09 | already-covered | done | 06.09.2026; [FE26-E]. [Backend DTO](../../backend/src/modules/investments/tbank-connection/tbank-connection.dto.ts) задаёт nullable date-time string; [frontend consumer](../../frontend/src/features/tbank-connection/ui/TbankConnectionSectionLoaded.tsx) не скрывает неверный transport type через String. |
|
||||
| FE26-17 | Перенести auth validation и payment invariants из JSX к model owners. | [FE-S] F-10 | already-covered | done | 06.09.2026; [FE26-E]. [Auth validation](../../frontend/src/features/auth/model/validation.ts), [ledger display](../../frontend/src/entities/broker-operation/model/display.ts) владеют соответствующими правилами. |
|
||||
| FE26-18 | Удалить redundant position modes и test-only proxy exports. | [FE-S] F-11 | already-covered | done | 06.09.2026; [FE26-E]. [PositionCard](../../frontend/src/pages/account/ui/components/PositionCard.view.tsx) выводит mode из kind; [StateView](../../frontend/src/shared/ui/StateView.tsx) не экспортирует Mantine Button; page barrels сохраняют product surface. |
|
||||
|
||||
@@ -253,6 +253,27 @@ authority.
|
||||
|
||||
Terminal evidence добавляется сюда только после завершения соответствующего change.
|
||||
|
||||
### 2026-09-13 — P1-12: backend responsibilities
|
||||
|
||||
Статус: `done`. Backend commit `8ba0053`.
|
||||
|
||||
BankCards разделён на services карт, операций и категорий, сценарий сводки и
|
||||
конкретный repository. Общая transaction/retry boundary, ownership, idempotency,
|
||||
optimistic concurrency и ограничения возвратов сохранены. Stock/bond services
|
||||
разделены по каталогу, рынку и доходам; связные operations и T-Bank client
|
||||
сохранены. Business modules отделены от integrations; сложные modules используют
|
||||
слои ответственности, компактные остаются плоскими.
|
||||
|
||||
- `npm run verify` — passed: lint, app/test typecheck, 35 suites / 257 tests, build.
|
||||
- Восемь существующих HTTP/e2e suites выполнены временным runner
|
||||
`/tmp/wl-modular-http.cjs`: отдельная SQLite DB на suite, migrations с
|
||||
`RUST_LOG=info`, configured HTTP, 118 tests passed. OpenAPI совпадает с frontend
|
||||
snapshot. Общий e2e blocker и статус задачи 03 этим не закрываются.
|
||||
- Финальный перенос 47 файлов проверен сравнением 142 исходников/tests:
|
||||
различий кроме относительных путей и форматирования нет.
|
||||
- Formatter, docs `npm run verify`, lint backend conventions и `git diff --check`
|
||||
прошли. Новые dependencies и architecture tests не добавлены.
|
||||
|
||||
### 2026-09-13 — P1-11: реальная SQLite
|
||||
|
||||
P1-11 поставлена в backend commit `7fde3ec`. Дополнено доказательство
|
||||
@@ -294,7 +315,7 @@ WL-P2-03; статус общего e2e WL-P2-05 не меняется. Кома
|
||||
принадлежит Nest/class-transformer, ответные DTO описывают возвращаемые объекты.
|
||||
`declare` не генерирует поля со значением `undefined` и не подменяет проверку
|
||||
входных данных. Optional/nullable-типы, декораторы и валидация сохранены.
|
||||
В [TbankClient](../../backend/src/tbank/tbank.client.ts)
|
||||
В [TbankClient](../../backend/src/integrations/tbank/tbank.client.ts)
|
||||
`getOpenAccounts` и `getDividends` задают тип результата на `call<Response>`,
|
||||
как соседние RPC; тип параметра `.then` выводится из этого результата.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user