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

69 lines
5.0 KiB
Markdown
Raw 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. Auth success-status contract
- [x] 1.1 Добавить независимый от БД backend regression test, который читает
Nest response-status metadata для `register`, `login` и `refresh` и
проверяет `200`; cookie/payload behavior не входит в его scope.
- [x] 1.2 Добавить явный runtime status `200` в три auth POST handlers, не
меняя logout `204`, error responses и session/cookie logic; добиться
прохождения нового metadata regression test.
- [x] 1.3 Обновить существующие auth e2e success expectations с `201` на
`200`, включая явный successful login assertion; задокументировать, что
suite остаётся deferred по WL-P2-05, а не считается passing gate.
- [x] 1.4 Запустить штатный frontend OpenAPI sync workflow после backend
change; принять только artifacts, сгенерированные этим workflow, затем
выполнить generated-artifact и runtime-contract checks.
## 2. Представление Client Cached Snapshot
- [x] 2.1 Добавить observable Accounts page regression coverage для
существующего списка во время in-flight refetch и после его ошибки: список
остаётся видимым, loading indicator неблокирующий, а retry локализованного
warning вновь вызывает тот же query.
- [x] 2.2 Расширить Account page coverage для эквивалентных Portfolio refetch
states, включая независимый render server `isStale` и client warnings об
ошибке refresh.
- [x] 2.3 Отрефакторить Accounts и Account view models, чтобы blocking
loading/error states выбирались только при отсутствии query data; раскрыть
progress, failure и retry refresh рядом с данными Client Cached Snapshot без
изменения query TTL, retry или refetch policies.
- [x] 2.4 Обновить Accounts и Account page presentations и localized copy для
отображения неблокирующего progress и доступных client refresh warnings с
retry, сохранив operations/events pagination вне scope.
## 3. Контролируемая ошибка refresh
- [x] 3.1 Добавить AuthProvider regression coverage для отклонённого
cold-start refresh: он устанавливает `ready`, оставляет user/access token
пустыми, очищает query cache и не создаёт необработанного отклонения Promise.
- [x] 3.2 Добавить coverage для protected `401`, чей serialised refresh имеет
транспортную ошибку: refresh возвращает контролируемую ошибку, локальный
auth/cache очищен, а исходный unauthorized response сохранён для
существующего route handling.
- [x] 3.3 Централизовать применение и очистку local auth state, направить
cold start и refresh защищённого запроса через общий non-throwing refresh
path и сохранить one-refresh-at-a-time behavior.
## 4. Устойчивая документация и состояние remediation
- [x] 4.1 Обновить feature documentation authentication, brokerage accounts и
portfolio с фактически поставленными `200` auth responses и различием между
server-side Portfolio fallback и Client Cached Snapshot refresh UX; limits и
deferred Prisma evidence должны остаться точными.
- [x] 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
- [x] 5.1 Выполнить затронутые frontend и backend non-mutating lint, typecheck
и unit-test gates под Node 22; выполнить frontend `verify`, когда его
generated artifacts окончательны, и записать точные observed results.
- [x] 5.2 Выполнить `bash specs/scripts/verify-runtime-openapi.sh`, OpenSpec
authority verifier, strict change/spec validation и `git diff --check` в
каждом затронутом Git repository; устранить каждый blocking result.
- [x] 5.3 Провести независимый read-only review implementation, delta specs,
generated-contract diff, error-state tests и документации; выполнить
применимую `opsx-verify` procedure и устранить все blocking findings до
archive.