AskaEth
af39efd23b
fix(presenter,app-iced,i18n): M132 缺 MSA client id 上屏成「未配置 + 怎么补」
缺 client id 原来整条链路只给 `LoginFailure::Other`:界面画「Sign-in failed /
完整原因在启动器日志里 / Code: other」,用户得翻日志才知道要设 `ULL_MSA_CLIENT_ID`。
落点定在**账户页登录面板**,不是启动流程:这个失败只发生在 `microsoft_auth()`(两条
登录流的入口);没配 id 的发布版建不出微软账户,`identity::resolve` 那条启动路径用户
撞不到(只有「有 id 的构建里登录过、之后 id 被摘掉」才可达)。
- presenter:新增 `LoginFailure::MsaNotConfigured`(`msa_not_configured`)。`microsoft_auth`
改为回 `AuthResult`,`AuthError::Unsupported`(`from_env` 唯一的产出点,零网络)单独成码,
其余失败照旧走 `classify`。诊断原文仍只进日志。
- i18n:账户域新增 `AccountLoginNotConfigured`(标题)/ `AccountFailureMsaNotConfigured`
(正文:设 `ULL_MSA_CLIENT_ID=<id>` 或构建时注入,改完重启),golden 同步。
- app-iced:`failure_title_key` 给这一类专属标题;正文按码查表;这一类**不给「重试」**
(进程内的环境变量改不了,重试必然是同一个错)。
- 测试:`a_missing_client_id_tells_the_user_what_to_configure` 断言 UI 模型里出现「未配置」
+ 变量名 + `<id>` 占位 + `msa_not_configured`,且没有那句「去翻日志」;反向锚
`a_network_failure_does_not_look_like_a_missing_config` 与
`only_a_missing_client_id_becomes_the_config_gap_code` 钉住别的失败不许跟着变。
为什么这一类可以上屏:上屏的是 catalog 固定文案(无凭据、无 token、无内部细节),
`DevicePanel::Failed` 里没有 `message`/`detail` 字段,原文在类型上就画不出来;
理由是它的原因本身就是用户的下一步。M117/M119 的「诊断不上屏」约定不动。
2026-11-05 20:08:52 +08:00
..
2026-11-05 14:08:37 +08:00
2026-11-05 14:08:37 +08:00
2026-11-05 20:08:52 +08:00
2026-11-05 18:09:00 +08:00
2026-11-05 19:09:53 +08:00
2026-11-05 06:35:03 +08:00
2026-11-05 20:08:52 +08:00
2026-11-05 14:08:37 +08:00
2026-11-05 20:08:52 +08:00