Fixes the two remaining account-chain breakages from the 2026-10-14 backend contract change (backend 8dfc223/b9c0a34):
Forced password gate now reads the server-derived passwordChangeMode and requires the current password for current_required sessions (initial-password first login); grant_setup (activation/recovery key redeem) stays current-free.
Admin user panel gains the recovery proposal panel (create/list/revoke) replacing the 410 key-issuing entry; owner-side confirmation UI lands in Settings → Account (MyAccountSettings) with in-place grant redeem.
Stacked on #94 (admin create contract migration). Evidence: npm test 300 passed, tsc build ok, knip 54<=55 (SELF in commit body). Dev-side pin bump follows after #94/#583 merge.
Fixes the two remaining account-chain breakages from the 2026-10-14 backend contract change (backend 8dfc223/b9c0a34):
1. Forced password gate now reads the server-derived passwordChangeMode and requires the current password for current_required sessions (initial-password first login); grant_setup (activation/recovery key redeem) stays current-free.
2. Admin user panel gains the recovery proposal panel (create/list/revoke) replacing the 410 key-issuing entry; owner-side confirmation UI lands in Settings → Account (MyAccountSettings) with in-place grant redeem.
Stacked on #94 (admin create contract migration). Evidence: npm test 300 passed, tsc build ok, knip 54<=55 (SELF in commit body). Dev-side pin bump follows after #94/#583 merge.
Why: the forced password gate still submitted an empty current password
after the backend began requiring it (current_required), locking every
account seeded with an initial password out of the workbench, and the
admin user panel had no client for the owner-confirmed recovery
proposal contract that replaced one-time key issuing (HTTP 410).
Evidence: npm test 300 passed; tsc -b && vite build ok; knip issues
54 <= baseline 55 (SELF).
Impact: mode-aware ChangePasswordGate with current-password input,
admin recovery proposal panel, owner-side account settings section,
recovery proposal client methods; no backend changes.
Refs: backend 8dfc223, b9c0a34; frontend #94
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Fixes the two remaining account-chain breakages from the 2026-10-14 backend contract change (backend 8dfc223/b9c0a34):
Stacked on #94 (admin create contract migration). Evidence: npm test 300 passed, tsc build ok, knip 54<=55 (SELF in commit body). Dev-side pin bump follows after #94/#583 merge.