Blocked-by: #13881 —— 终态 C 所等的用户级语言列(sys_user.locale)已由维护者 2026-09-01 在 #13881 裁 A(一等列),不再是「被暂缓」而是已裁待落地;本卡等它落地后才有实施面。
观察(来自 objectstack#14319 / PR #14600,PM 裁 A now / C later)
#14600 让由请求触发、且请求者即收件人的 auth 邮件(验证 / 重置 / magic link / 换邮箱通知)先按 Accept-Language 选语言;邀请邮件被刻意排除:那个请求是邀请人的,用邀请人的浏览器语言给被邀请人发信会把同一缺陷搬到隔壁座位(英文管理员静默给中文工作区的新人发英文邀请)。被邀请人的语言在邀请时刻是真未知。
终态 C
等用户级语言列(per-user language)落地后,邀请邮件按被邀请人存储的语言选模板;在此之前保持部署默认。
若维护者把 2026-09-02 裁决里的「等」读作含邀请,PR #14600 里那处带注释的调用点改一个参数即可(B)。 —— 分诊注:B 不再是候选。#13881 的裁决第 3 项把解析链定死为「收件人 locale → 部署默认」,而 B 走的是邀请人方向,与之相反。⛔ 不要在 #13881 落地前改那个调用点。
Re-check:grep -n "invitation" packages/plugins/plugin-auth/src/auth-manager.ts | head,以及更直接的一条 —— packages/plugins/plugin-auth/src/auth-email-locale.test.ts:8 自述「no sys_user.locale column」。
Generated by Claude Code
Blocked-by: #13881 —— 终态 C 所等的用户级语言列(
sys_user.locale)已由维护者 2026-09-01 在 #13881 裁 A(一等列),不再是「被暂缓」而是已裁待落地;本卡等它落地后才有实施面。观察(来自 objectstack#14319 / PR #14600,PM 裁 A now / C later)
#14600 让由请求触发、且请求者即收件人的 auth 邮件(验证 / 重置 / magic link / 换邮箱通知)先按
Accept-Language选语言;邀请邮件被刻意排除:那个请求是邀请人的,用邀请人的浏览器语言给被邀请人发信会把同一缺陷搬到隔壁座位(英文管理员静默给中文工作区的新人发英文邀请)。被邀请人的语言在邀请时刻是真未知。终态 C
等用户级语言列(per-user language)落地后,邀请邮件按被邀请人存储的语言选模板;在此之前保持部署默认。
若维护者把 2026-09-02 裁决里的「等」读作含邀请,PR #14600 里那处带注释的调用点改一个参数即可(B)。—— 分诊注:B 不再是候选。#13881 的裁决第 3 项把解析链定死为「收件人 locale → 部署默认」,而 B 走的是邀请人方向,与之相反。⛔ 不要在 #13881 落地前改那个调用点。Re-check:
grep -n "invitation" packages/plugins/plugin-auth/src/auth-manager.ts | head,以及更直接的一条 ——packages/plugins/plugin-auth/src/auth-email-locale.test.ts:8自述「nosys_user.localecolumn」。Generated by Claude Code