Files
MailUI4Agents/client/electron
JianFeeeee bea26b885a 跨端: 修 harmony-admin 的**陈旧判据**(点名了一个已被拆掉的 builder)
`harmony-admin` 在我这轮之前就是红的,我之前把它归到"与本轮无关"——
这次认真看了,它报的是**真问题的一种**,但**报错了对象**:

    断言:SecuritySection 必须在 Scroll 内部
    实际:SettingsPage.ets 里**已经没有** `SecuritySection` 了

2026-09-21 我按 WebUI `AccountPage` 把 `SecuritySection` 拆成了两段:
    · `PasswordSection` —— 修改密码
    · `LoginSection`   —— 登录状态 / 退出登录
两段**都在** Scroll 里(`SettingsPage.ets:637/681/695/699`),
只是名字变了 ⇒ 判据守着一个**历史名字**,与它要守护的东西脱钩了。

## 改成钉行为,而不是放宽

这条判据当初抓到的危害是具体的:账号列表 `layoutWeight(1)` 占满剩余高度,
后面的 section 被挤出可视区,而「退出登录」正好在最下面 ⇒ **退不出去**。
这个危害跟"那个 builder 叫什么名字"无关 ⇒ 判据应该钉**可滚入口**:

    ProfileSection / PasswordSection / LoginSection / AdminSection
    四类内容各自都要在 Scroll 里

并单独再钉一次 `LoginSection` —— 「退不出去」是这条判据的立身之本,
不该混在四元组里被一次循环顺手覆盖。

## 变异验证(证明不是放宽)

把 `this.LoginSection()` 从 Scroll 里挪出去(模拟原 bug 的形状):
    ⇒ `pass 29 / fail 1`,报「★ LoginSection 必须在 Scroll **内部**」
恢复:`pass 30 / fail 0`

★ 教训:判据里的**标识符**是判据的**实现细节**,不是判据的**意图**。
  重构改名(拆 builder)不算放宽,但判据必须跟着意图走 ——
  否则它就从"守卫"退化成"考古"。
2026-09-21 21:15:33 +08:00
..