chore(release): 0.2.0 #13
@@ -32,7 +32,7 @@ Confidence: High / Medium / Low. P0 по проверенной области
|
||||
- **Location:** [configureApp](../../../backend/src/main.ts), строка 28;
|
||||
[HttpExceptionFilter](../../../backend/src/common/filters/http-exception.filter.ts),
|
||||
`catch` / `validationErrors`.
|
||||
- **Convention:** [Errors](../../../backend/.ai/conventions/backend-error-handling.md),
|
||||
- **Convention:** [Errors](../../../backend/.ai/conventions/error-handling.md),
|
||||
[требование](../../../specs/openspec/specs/user-authentication/spec.md#requirement-стандартные-ответы-об-ошибках).
|
||||
- **Current state:** стандартный ValidationPipe формирует `message: string[]`;
|
||||
filter трактует его как `ValidationError[]`, возвращая пустой `errors`.
|
||||
@@ -50,8 +50,8 @@ Confidence: High / Medium / Low. P0 по проверенной области
|
||||
- **Location:** [BankCardsRepository](../../../backend/src/modules/banking/bank-cards/infrastructure/bank-cards.repository.ts),
|
||||
`card(active)` и `write`; callers в
|
||||
[BankOperationsService](../../../backend/src/modules/banking/bank-cards/application/bank-operations.service.ts).
|
||||
- **Convention:** [Data](../../../backend/.ai/conventions/backend-data.md),
|
||||
[application boundaries](../../../backend/.ai/conventions/backend-architecture.md#ответственность-и-направление-зависимостей).
|
||||
- **Convention:** [Data](../../../backend/.ai/conventions/data.md),
|
||||
[application boundaries](../../../backend/.ai/architecture.md#ответственность-и-направление-зависимостей).
|
||||
- **Current state:** repository импортирует application `conflict/missing`,
|
||||
решает запрет archived card и переводит общий P2002 в DuplicateCategory.
|
||||
- **Expected state:** repository владеет owner-filtered reads, transaction/retry
|
||||
@@ -68,7 +68,7 @@ Confidence: High / Medium / Low. P0 по проверенной области
|
||||
- **Location:** [BankCardForm](../../../frontend/src/entities/bank-card/ui/BankCardForm.tsx),
|
||||
[CategoryManager](../../../frontend/src/entities/bank-card/ui/CategoryManager.tsx);
|
||||
consumers — CardsPage и CardPage.
|
||||
- **Convention:** [FSD ownership](../../../frontend/.ai/conventions/frontend-architecture.md#выбор-владельца).
|
||||
- **Convention:** [FSD ownership](../../../frontend/.ai/architecture.md#выбор-владельца).
|
||||
- **Current state:** entity UI координирует создание/редактирование карты,
|
||||
idempotency intent, submit, version adoption, создание/редактирование категорий.
|
||||
- **Expected state:** самостоятельные пользовательские workflows имеют feature
|
||||
@@ -84,7 +84,7 @@ Confidence: High / Medium / Low. P0 по проверенной области
|
||||
- **Location:** [CardPage.view](../../../frontend/src/pages/card/ui/CardPage.view.tsx),
|
||||
[CardsPage.view](../../../frontend/src/pages/cards/ui/CardsPage.view.tsx),
|
||||
соответствующие `CardPage.vm.ts` / `CardsPage.vm.ts` рядом.
|
||||
- **Convention:** [Container/VM/view](../../../frontend/.ai/conventions/frontend-ui.md#container-vm-и-view).
|
||||
- **Convention:** [Container/VM/view](../../../frontend/.ai/conventions/ui.md#container-vm-и-view).
|
||||
- **Current state:** VM отдаёт query objects; views выбирают initial/cached/error
|
||||
states через `data/isLoading/isError/isPlaceholderData` и вызывают `refetch`.
|
||||
- **Expected state:** VM выбирает presentation states и retry callbacks,
|
||||
@@ -100,8 +100,7 @@ Confidence: High / Medium / Low. P0 по проверенной области
|
||||
|
||||
- **Location:** [AppShell](../../../frontend/src/shared/ui/AppShell.tsx),
|
||||
`items`, `useLocation`, `Outlet`, nav rendering; public export в shared/ui.
|
||||
- **Convention:** [FSD](../../../frontend/.ai/conventions/frontend-architecture.md),
|
||||
[mental model](../../../frontend/.ai/architecture.md).
|
||||
- **Convention:** [FSD и устройство](../../../frontend/.ai/architecture.md).
|
||||
- **Current state:** shared owner содержит конкретные `/accounts`, `/cards`,
|
||||
`/stocks`, `/bonds`, `/settings` и application navigation.
|
||||
- **Expected state:** navigation/composition принадлежит app; shared сохраняет
|
||||
@@ -118,7 +117,7 @@ Confidence: High / Medium / Low. P0 по проверенной области
|
||||
[AccountsPageError](../../../frontend/src/pages/accounts/ui/components/AccountsPageError.view.tsx),
|
||||
[StocksPage.view](../../../frontend/src/pages/stocks/ui/StocksPage.view.tsx),
|
||||
[BondsPage.view](../../../frontend/src/pages/bonds/ui/BondsPage.view.tsx).
|
||||
- **Convention:** [Frontend errors](../../../frontend/.ai/conventions/frontend-data.md#errors),
|
||||
- **Convention:** [Frontend errors](../../../frontend/.ai/conventions/data.md#errors),
|
||||
[pattern convergence](../../conventions/code-health.md#search--reuse--converge).
|
||||
- **Current state:** несколько owners повторяют `TBANK_NOT_CONNECTED` /
|
||||
`INVALID_TBANK_TOKEN` comparisons; presentation/retry actions различаются.
|
||||
@@ -136,8 +135,8 @@ Confidence: High / Medium / Low. P0 по проверенной области
|
||||
`call` (throw Error); [TbankTokenService](../../../backend/src/integrations/tbank/tbank-token.service.ts),
|
||||
`translateInvalidToken`; [InstrumentMetadataService](../../../backend/src/integrations/tbank/instrument-metadata.service.ts),
|
||||
invalid-token catch.
|
||||
- **Convention:** [Errors](../../../backend/.ai/conventions/backend-error-handling.md),
|
||||
[Integrations](../../../backend/.ai/conventions/backend-integrations.md).
|
||||
- **Convention:** [Errors](../../../backend/.ai/conventions/error-handling.md),
|
||||
[Integrations](../../../backend/.ai/conventions/integrations.md).
|
||||
- **Current state:** low-level client бросает `Error('INVALID_TBANK_TOKEN')`,
|
||||
два consumers сравнивают строку сообщения для выбора recovery/HTTP mapping.
|
||||
- **Expected state:** один явный local typed/code outcome на integration boundary,
|
||||
|
||||
@@ -63,7 +63,7 @@ checkout; сегодня проверка `.ai` выполнена локаль
|
||||
| Backend ValidationPipe → filter reproduction | Подтверждён BE-001: invalid CredentialsDto → 400/VALIDATION_ERROR, `errors: []` |
|
||||
| `git diff --check` в root/frontend/backend/docs/specs | PASS |
|
||||
|
||||
Semantic review: маршруты UI-only, API/contract, auth, tests-only, helper/package,
|
||||
Semantic review первого прохода: маршруты UI-only, API/contract, auth, tests-only, helper/package,
|
||||
Prisma, logging и migration достигают нужных owners; ссылки compatibility
|
||||
не дублируют таблицы routing. Общие policy имеют root owner, stack-specific
|
||||
исключения остались локальными. Проверены новые файлы и отсутствие production,
|
||||
@@ -73,3 +73,16 @@ Application build/coverage/e2e целиком не запускались: из
|
||||
root tracking не меняет production behavior. Existing dependency checks и
|
||||
воспроизведение BE-001 подтверждают только указанные границы, не отсутствие
|
||||
всех semantic/security проблем. Full gates выполняются при будущих code slices.
|
||||
|
||||
## Упрощение структуры после review
|
||||
|
||||
Conventions frontend/backend именуются без repo-префиксов. Устройство и правила
|
||||
архитектуры объединены в единственный `.ai/architecture.md` каждого repo.
|
||||
Routing и карта источников объединены в `AGENTS.md`; прежние CONVENTIONS/SOURCES
|
||||
и отдельные architecture conventions удалены без compatibility-заглушек.
|
||||
Активные ссылки обновлены; в audit изменены только ссылки, findings сохранены.
|
||||
Исторические архивы specs остаются источниками своего времени.
|
||||
|
||||
Повторная проверка: existing markdownlint-cli2 с docs config по root/frontend/backend
|
||||
AGENTS, README и `.ai/**/*.md` — 27 файлов, 0 ошибок, включая относительные ссылки
|
||||
и якоря. `git diff --check` — PASS. Production-код и dependencies не менялись.
|
||||
|
||||
Reference in New Issue
Block a user