Files

8.5 KiB
Raw Permalink Blame History

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.
  • 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.
  • 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.
  • 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

  • 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.
  • 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.
  • 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

  • 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.
  • 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

  • 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.
  • 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 и не оставляет завершённую работу отмеченной без подтверждения.
  • 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.