Why: rdm.role.list rejection left the roles table spinning on 加载中… with the raw 400 receipt in the banner (2026-10-13 8788 dev lockout repro).
Evidence: vitest test/rdmroles-reject.test.ts 5/5; full suite 31 files 215 tests green; check-knip 43<=43 (SELF, task worktree 0159f00).
Impact: rolesListPlaceholder drives the placeholder row (failure row once rejected); describeRoleListError maps domain-admin denial to a readable message naming rdm.perm.transfer; other errors pass through. No design tokens touched.
Refs: Dev task feature/rdm-admin-lockout-recovery (R3).
Why: rdm.role.list rejection left the roles table spinning on 加载中… with the raw 400 receipt in the banner (2026-10-13 8788 dev lockout repro).
Evidence: vitest test/rdmroles-reject.test.ts 5/5; full suite 31 files 215 tests green; check-knip 43<=43 (SELF, task worktree 0159f00).
Impact: rolesListPlaceholder drives the placeholder row (failure row once rejected); describeRoleListError maps domain-admin denial to a readable message naming rdm.perm.transfer; other errors pass through. No design tokens touched.
Refs: Dev task feature/rdm-admin-lockout-recovery (R3).
Why: when rdm.role.list is rejected (e.g. the operator lost the RDM
domain-admin ledger to an acceptance bootstrap), the roles table spun on
'加载中…' forever and the banner dumped the raw 400 receipt JSON.
Evidence: vitest test/rdmroles-reject.test.ts (SELF, run below); manual
repro on 8788 dev 2026-10-13 before the ledger fix.
Impact: placeholder row comes from rolesListPlaceholder (failure row when
a fetch rejected), domain-admin denials map via describeRoleListError to
a readable message naming the rdm.perm.transfer channel; other errors
pass through. No style tokens touched (design-guard clean).
Refs: Dev task feature/rdm-admin-lockout-recovery (R3)
weichen
merged commit dcd2699933 into main2026-10-13 01:35:39 +00:00
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.
Why: rdm.role.list rejection left the roles table spinning on 加载中… with the raw 400 receipt in the banner (2026-10-13 8788 dev lockout repro).
Evidence: vitest test/rdmroles-reject.test.ts 5/5; full suite 31 files 215 tests green; check-knip 43<=43 (SELF, task worktree
0159f00).Impact: rolesListPlaceholder drives the placeholder row (failure row once rejected); describeRoleListError maps domain-admin denial to a readable message naming rdm.perm.transfer; other errors pass through. No design tokens touched.
Refs: Dev task feature/rdm-admin-lockout-recovery (R3).