Files
specs/openspec/changes/archive/2026-08-24-align-api-contract-and-client-resilience/tasks.md
T

5.0 KiB
Raw Blame History

1. Auth success-status contract

  • 1.1 Добавить независимый от БД backend regression test, который читает Nest response-status metadata для register, login и refresh и проверяет 200; cookie/payload behavior не входит в его scope.
  • 1.2 Добавить явный runtime status 200 в три auth POST handlers, не меняя logout 204, error responses и session/cookie logic; добиться прохождения нового metadata regression test.
  • 1.3 Обновить существующие auth e2e success expectations с 201 на 200, включая явный successful login assertion; задокументировать, что suite остаётся deferred по WL-P2-05, а не считается passing gate.
  • 1.4 Запустить штатный frontend OpenAPI sync workflow после backend change; принять только artifacts, сгенерированные этим workflow, затем выполнить generated-artifact и runtime-contract checks.

2. Представление Client Cached Snapshot

  • 2.1 Добавить observable Accounts page regression coverage для существующего списка во время in-flight refetch и после его ошибки: список остаётся видимым, loading indicator неблокирующий, а retry локализованного warning вновь вызывает тот же query.
  • 2.2 Расширить Account page coverage для эквивалентных Portfolio refetch states, включая независимый render server isStale и client warnings об ошибке refresh.
  • 2.3 Отрефакторить Accounts и Account view models, чтобы blocking loading/error states выбирались только при отсутствии query data; раскрыть progress, failure и retry refresh рядом с данными Client Cached Snapshot без изменения query TTL, retry или refetch policies.
  • 2.4 Обновить Accounts и Account page presentations и localized copy для отображения неблокирующего progress и доступных client refresh warnings с retry, сохранив operations/events pagination вне scope.

3. Контролируемая ошибка refresh

  • 3.1 Добавить AuthProvider regression coverage для отклонённого cold-start refresh: он устанавливает ready, оставляет user/access token пустыми, очищает query cache и не создаёт необработанного отклонения Promise.
  • 3.2 Добавить coverage для protected 401, чей serialised refresh имеет транспортную ошибку: refresh возвращает контролируемую ошибку, локальный auth/cache очищен, а исходный unauthorized response сохранён для существующего route handling.
  • 3.3 Централизовать применение и очистку local auth state, направить cold start и refresh защищённого запроса через общий non-throwing refresh path и сохранить one-refresh-at-a-time behavior.

4. Устойчивая документация и состояние remediation

  • 4.1 Обновить feature documentation authentication, brokerage accounts и portfolio с фактически поставленными 200 auth responses и различием между server-side Portfolio fallback и Client Cached Snapshot refresh UX; limits и deferred Prisma evidence должны остаться точными.
  • 4.2 Поддерживать docs/development/audit-remediation.md согласованным с active status change и verification evidence; только после успешного archive записать terminal archive path, commits и checks, затем отметить WL-P2-04, WL-P2-07 и WL-P2-08 done вне этого task list.

5. Верификация перед archive

  • 5.1 Выполнить затронутые frontend и backend non-mutating lint, typecheck и unit-test gates под Node 22; выполнить frontend verify, когда его generated artifacts окончательны, и записать точные observed results.
  • 5.2 Выполнить bash specs/scripts/verify-runtime-openapi.sh, OpenSpec authority verifier, strict change/spec validation и git diff --check в каждом затронутом Git repository; устранить каждый blocking result.
  • 5.3 Провести независимый read-only review implementation, delta specs, generated-contract diff, error-state tests и документации; выполнить применимую opsx-verify procedure и устранить все blocking findings до archive.