8.5 KiB
8.5 KiB
1. Backend connection generation and cache isolation
- 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.
- Covers:
- 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.
- Covers:
- 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.
- Covers:
- 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.
- Covers:
2. Frontend connection boundary
- 2.1 [frontend] Реализовать в
tbank-connectionединую операцию commit подтверждённого status и native reset всех generated GET query из/api/v1/brokerage-accountssubtree; перевести 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.
- Covers:
- 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.
- Covers:
- 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.
- Covers:
3. As-built documentation
- 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.
- Covers:
- 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.
- Covers:
4. Cross-area readiness and canonical traceability
- 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.
- Covers:
- 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 и не оставляет завершённую работу отмеченной без подтверждения.
- Covers:
- 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.
- Covers: