堆叠说明:本 PR base=feature/rdm-audit-capability-gate(父 PR #418,先合父);父合入后本分支 make task-sync 并把 base 改回 main。
Why
Increment 3 of the 2026-10-12 diagnostic: the change-password modal lacked form semantics (no form/autocomplete/username association, Enter dead, 401 collapsed to one message) and SettingInput masked all free-text config values.
What
Bump modules/frontend pin to the semantics head (frontend PR #66): form onSubmit + htmlFor/id + readonly username + autocomplete trio + humanChangePasswordError reuse; settingInputAttrs typed inputs (secrets only as password).
scripts/e2e.sh phase 4 now also runs the new changepw-form spec.
Evidence (SELF receipts in the task card; CI is the authoritative gate)
make test PASS on this head (frontend 116 + knip, ui 108 + knip, backend/core/libs/governance/boundaries/pins).
任务卡(主记录,证据与阶段表在其中):`.task/feature-rdm-audit-capability-gate-changepw-form.md`
**堆叠说明**:本 PR base=feature/rdm-audit-capability-gate(父 PR #418,先合父);父合入后本分支 make task-sync 并把 base 改回 main。
### Why
Increment 3 of the 2026-10-12 diagnostic: the change-password modal lacked form semantics (no form/autocomplete/username association, Enter dead, 401 collapsed to one message) and SettingInput masked all free-text config values.
### What
- Bump `modules/frontend` pin to the semantics head (frontend PR #66): form onSubmit + htmlFor/id + readonly username + autocomplete trio + humanChangePasswordError reuse; settingInputAttrs typed inputs (secrets only as password).
- `scripts/e2e.sh` phase 4 now also runs the new `changepw-form` spec.
### Evidence (SELF receipts in the task card; CI is the authoritative gate)
- `make test` PASS on this head (frontend 116 + knip, ui 108 + knip, backend/core/libs/governance/boundaries/pins).
- `bash scripts/e2e.sh` PASS: RDM combo 4/4 + plain-base & changepw-form 2/2.
### Refs
2026-10-12 diagnostic report increment 3; parent Dev PR #418; frontend PR #66.
Why: establish the authorized task workspace and its initial baseline.
Evidence: preserved precheck receipt in .task/feature-rdm-audit-capability-gate-changepw-form.md; R0=b6307db015da4a3718baadb242c52cb66b024f74.
Impact: task metadata only; the feature workspace starts at 250285eebb.
Refs: .task/feature-rdm-audit-capability-gate-changepw-form.md
Why: increment 3 of the 2026-10-12 diagnostic - the change-password modal
lacked form semantics (no form/autocomplete/username association) and
SettingInput masked all free-text config values.
Evidence: frontend 8db7093 (vitest 24 files / 116 tests incl.
settingInputAttrs matrix; knip; tsc -b && vite build); full e2e and make
test receipts follow on this head.
Impact: modules/frontend pin follows; e2e.sh phase 4 also runs the new
changepw-form spec; task card records scope, authorization and stages.
Refs: 2026-10-12 diagnostic report, increment 3; stacked on PR #418.
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.
任务卡(主记录,证据与阶段表在其中):
.task/feature-rdm-audit-capability-gate-changepw-form.md堆叠说明:本 PR base=feature/rdm-audit-capability-gate(父 PR #418,先合父);父合入后本分支 make task-sync 并把 base 改回 main。
Why
Increment 3 of the 2026-10-12 diagnostic: the change-password modal lacked form semantics (no form/autocomplete/username association, Enter dead, 401 collapsed to one message) and SettingInput masked all free-text config values.
What
modules/frontendpin to the semantics head (frontend PR #66): form onSubmit + htmlFor/id + readonly username + autocomplete trio + humanChangePasswordError reuse; settingInputAttrs typed inputs (secrets only as password).scripts/e2e.shphase 4 now also runs the newchangepw-formspec.Evidence (SELF receipts in the task card; CI is the authoritative gate)
make testPASS on this head (frontend 116 + knip, ui 108 + knip, backend/core/libs/governance/boundaries/pins).bash scripts/e2e.shPASS: RDM combo 4/4 + plain-base & changepw-form 2/2.Refs
2026-10-12 diagnostic report increment 3; parent Dev PR #418; frontend PR #66.