Files

48 lines
8.5 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
## 1. Backend connection generation and cache isolation
- [x] 1.1 [backend] По выбранному в утверждённом Solution Assessment варианту расширить internal connection access context opaque generation из digest persisted encrypted payload средствами Node runtime; generation не сохранять отдельно, не включать в API, logs или errors и закрепить regression proof смены identity при каждом successful PUT, включая тот же plaintext token.
- **Covers:** `N/A` — internal generation не создаёт самостоятельного observable behavior, но является выбранной в утверждённом Design технической основой строгой cache isolation без schema или API migration.
- **Verification:** Targeted backend tests подтверждают одинаковую generation для одной persisted connection record, новую generation после successful replacement и отсутствие public/logged token-derived identifier.
- [x] 1.2 [backend] Включить current connection generation в Account Ledger page cache boundary, сохранив connection/account access checks до reuse, и закрепить regression proof, что cached и поздно завершившиеся страницы прежней generation недоступны Operations и производным Income Summary/Analytics после replace или delete.
- **Covers:** `frontend-query-coherence` — `Requirement: Frontend сохраняет когерентность кэша T-Bank connection`
- **Verification:** Targeted Account Ledger и Income tests моделируют cached hit и late completion вокруг successful PUT/DELETE и подтверждают только current-generation reuse при неизменных TTL/LRU limits.
- [x] 1.3 [backend] Ограничить Portfolio cache hit и cached fallback текущей persisted connection generation, разрешая cache reuse только после connection resolution, и закрепить regression proof для replace/delete и старого in-flight completion без ослабления current-generation fallback.
- **Covers:** `frontend-query-coherence` — `Requirement: Frontend сохраняет когерентность кэша T-Bank connection`
- **Verification:** Targeted Portfolio tests подтверждают current-generation hit/fallback, отсутствие hit без connection и недоступность cached либо late previous-generation snapshot после successful PUT/DELETE.
- [x] 1.4 [backend] Выполнить canonical backend gate после generation-scoped cache implementation и обязательного concurrency/regression coverage.
- **Covers:** `N/A` — gate не добавляет самостоятельного observable behavior, а подтверждает affected backend delivery из утверждённого Design.
- **Verification:** `nvm use --silent && npm run verify` из `backend`.
## 2. Frontend connection boundary
- [x] 2.1 [frontend] Реализовать в `tbank-connection` единую операцию commit подтверждённого status и native reset всех generated GET query из `/api/v1/brokerage-accounts` subtree; перевести successful PUT и DELETE на эту операцию и добавить regression proof для root, parameterized и in-flight query без очистки несвязанного cache.
- **Covers:** `frontend-query-coherence` — `Requirement: Frontend сохраняет когерентность кэша T-Bank connection`
- **Verification:** `nvm use --silent && npm run test:run -- src/features/tbank-connection`; observable assertions подтверждают новый status, отсутствие данных предыдущей границы для create/replace/delete, отмену позднего старого browser response и сохранение несвязанного query.
- [x] 2.2 [frontend] Дополнить regression coverage сохранения текущей границы при failed connection mutation, Client Cached Snapshot при обычной ошибке фонового refetch и полной независимой очистки status и financial cache при logout.
- **Covers:** `frontend-query-coherence` — `Requirement: Frontend сохраняет когерентность кэша T-Bank connection`
- **Verification:** `nvm use --silent && npm run test:run -- src/features/tbank-connection src/features/auth/model/auth.test.tsx src/entities/brokerage-account/api/useBrokerageAccounts.test.tsx src/entities/portfolio/api/usePortfolio.test.tsx`; observable assertions покрывают failure, current-generation background snapshot и logout scenarios.
- [x] 2.3 [frontend] Выполнить canonical frontend gate после implementation и regression coverage.
- **Covers:** `N/A` — gate не добавляет самостоятельного observable behavior, а подтверждает affected frontend delivery из утверждённого Design.
- **Verification:** `nvm use --silent && npm run verify` из `frontend`.
## 3. As-built documentation
- [x] 3.1 [docs] После подтверждённой backend и frontend delivery обновить as-built описания T-Bank connection, Portfolio и Account Ledger cache semantics: successful mutation создаёт общую frontend/backend generation boundary, failed mutation и current-generation Client Cached Snapshot сохраняются, а logout остаётся отдельной полной session cleanup.
- **Covers:** `N/A` — документация не создаёт самостоятельного поведения, но поставляет обязательный affected docs outcome для реализованной cache boundary по утверждённому Design.
- **Verification:** Scoped review затронутых feature/cache documents подтверждает current-state generation isolation, frontend reset и lifecycle cases без копирования Proposal, Specs, Design или Tasks.
- [x] 3.2 [docs] Выполнить canonical docs gate после as-built обновления.
- **Covers:** `N/A` — gate проверяет обязательную affected docs delivery и не меняет observable product behavior.
- **Verification:** `nvm use --silent && npm run verify` из `docs`.
## 4. Cross-area readiness and canonical traceability
- [x] 4.1 [workspace] Семантически сверить delivered backend, frontend и docs outcomes с утверждёнными Requirement и Design, включая create/replace/delete, failed mutation, cached и in-flight ordering, current-generation background snapshot, logout и отсутствие storage/API contract changes.
- **Covers:** `N/A` — cross-area verification координирует affected repositories и подтверждает approved scope, но не владеет repository implementation.
- **Verification:** Scenario-to-evidence review для `frontend-query-coherence` и Delivery Map не оставляет непокрытых scenarios, unchecked affected delivery или незапланированных schema/OpenAPI diffs.
- [x] 4.2 [specs] После repository delivery и semantic review отметить в canonical Tasks только действительно завершённые items, сохранив traceability утверждённых Requirement, Design и affected areas.
- **Covers:** `N/A` — versioned SDD traceability является обязательным specs outcome утверждённого delivery, но не добавляет observable product behavior.
- **Verification:** Scoped review `tasks.md` сопоставляет каждый checked item с repository evidence и не оставляет завершённую работу отмеченной без подтверждения.
- [x] 4.3 [specs] Выполнить canonical strict change gate перед передачей в independent Validation.
- **Covers:** `N/A` — structural gate подтверждает affected specs delivery и не заменяет semantic verification реализации.
- **Verification:** `openspec validate harden-tbank-connection-cache-boundary --type change --strict --store wealth-ledger-specs` из `specs` под Node 22.