Wire login recovery flow: redeem key entry and restricted set-password gate #76

Merged
weichen merged 1 commits from feature/svc-login-recovery-flow into main 2026-10-13 04:04:01 +00:00
Owner

Why: The 2026-10-13 login recovery contract (Dev docs/svc-deploy/2026-10-13-login-recovery-contract.md) makes username/password the default login, replaces the browser ask_ tab with a one-time recovery key entry, drops the current-password field from the forced set-password gate, and moves admin recovery to issued login keys.

Evidence: vitest 218 passed, npm run build OK, check-knip 43<=43, design-guard green (SELF, task worktree); changepw e2e updated to the new gate shape (two password inputs, return-to-login after success).

Impact: LoginPage gains a redeem-only key tab (no key persistence); ChangePasswordGate shows server-confirmed owner plus new/confirm only and returns to login after success (reloginRequired); App gates on sessionScope=set_password_only including refresh recovery; UsersPanel replaces reset password with issue/revoke login key UI showing plaintext once.

Task card: Dev .task/feature-svc-login-recovery-flow.md (main record). Backend companion: Agent-System-Backend#187.

Why: The 2026-10-13 login recovery contract (Dev docs/svc-deploy/2026-10-13-login-recovery-contract.md) makes username/password the default login, replaces the browser ask_ tab with a one-time recovery key entry, drops the current-password field from the forced set-password gate, and moves admin recovery to issued login keys. Evidence: vitest 218 passed, npm run build OK, check-knip 43<=43, design-guard green (SELF, task worktree); changepw e2e updated to the new gate shape (two password inputs, return-to-login after success). Impact: LoginPage gains a redeem-only key tab (no key persistence); ChangePasswordGate shows server-confirmed owner plus new/confirm only and returns to login after success (reloginRequired); App gates on sessionScope=set_password_only including refresh recovery; UsersPanel replaces reset password with issue/revoke login key UI showing plaintext once. Task card: Dev .task/feature-svc-login-recovery-flow.md (main record). Backend companion: Agent-System-Backend#187.
weichen added 1 commit 2026-10-13 03:44:42 +00:00
Why: The 2026-10-13 login contract makes username/password the default
login, replaces the browser ask_ tab with a one-time recovery key
entry, requires the forced set-password gate to drop the current
password field, and routes admin password recovery through admin-issued
login keys instead of direct password resets.

Evidence: vitest 218 passed, npm run build OK, check-knip 43<=43,
design-guard green (SELF, local run in task worktree).

Impact: LoginPage gains a redeem-only key tab (no key persistence);
ChangePasswordGate shows server-confirmed owner plus new/confirm only
and returns to the login page after success (reloginRequired); App
gates on sessionScope=set_password_only; UsersPanel replaces reset
password with issue/revoke login key UI showing plaintext once.

Refs: Dev task feature/svc-login-recovery-flow; backend companion
commit 467718a.
weichen merged commit 0655bc37e1 into main 2026-10-13 04:04:01 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: weichen/Agent-System-Frontend#76