注释澄清认证错误形状读取不校验 status 是有意为之

- isClientAuthError 文档写明 status 故意不校验:无调用方读它,纳入校验会把可用文案换成兜底文案
- 需要 status 参与判断时先补校验再用
This commit is contained in:
2026-10-01 16:06:12 +08:00
parent 8b50db9893
commit 90d37481a4
@@ -8,6 +8,11 @@ export type { ClientAuthError };
*
* 不在名单里的 `type` 也算"形状合法":新变体会落到 [`clientAuthErrorKind`] 的 `fault`,
* 由调用方交给错误池——这是故意的,见 ADR 的"未识别变体上调"。
*
* **`status` 故意不校验**:`authServiceUnavailable` / `unexpectedRejection` 在生成类型里带必填
* `status`,但全仓没有调用方读它(这两个变体只走 `fault` 分支显示 `message`)。把 `status`
* 纳入校验只会让"缺 `status` 但 `message` 可用"的拒绝落回非结构化分支,把 Rust 的文案换成
* 调用方兜底文案——诊断信息更少、行为更差。将来真要用 `status` 做判断时,先补校验再用。
*/
export function isClientAuthError(value: unknown): ClientAuthError | null {
if (!value || typeof value !== 'object') return null;