From 759bcf98a8ea5a84324de834b7a99995ccafcb08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Mon, 5 Oct 2026 17:53:23 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3(=E4=BC=9A=E5=91=98=E5=A5=91?= =?UTF-8?q?=E7=BA=A6):=20=E6=BE=84=E6=B8=85=20status=20=E5=85=9C=E5=BA=95?= =?UTF-8?q?=E5=8F=AA=E4=BD=9C=E7=94=A8=E4=BA=8E=20Rust=20=E5=AE=A2?= =?UTF-8?q?=E6=88=B7=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ProfileMembershipResponse.status 注释改为“Rust 反序列化未知取值按 active 兜底,TS 侧不归一化” - 同步重新生成 ts-rs 绑定,避免 Web 消费方误以为前端也会 fail-open --- .../shared/src/contracts/generated/ProfileMembershipResponse.ts | 2 +- server-rs/crates/shared-contracts/src/runtime.rs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/shared/src/contracts/generated/ProfileMembershipResponse.ts b/packages/shared/src/contracts/generated/ProfileMembershipResponse.ts index fa5fd8db4..0dd646fd0 100644 --- a/packages/shared/src/contracts/generated/ProfileMembershipResponse.ts +++ b/packages/shared/src/contracts/generated/ProfileMembershipResponse.ts @@ -5,7 +5,7 @@ import type { ProfileMembershipStatusToken } from "./ProfileMembershipStatusToke export type ProfileMembershipResponse = { /** - * 会员状态 token:`normal` / `active`;未知取值按 `active` 兜底。 + * 会员状态 token:`normal` / `active`;Rust 客户端反序列化时未知取值按 `active` 兜底,TS 侧不做运行期归一化。 */ status: ProfileMembershipStatusToken, /** diff --git a/server-rs/crates/shared-contracts/src/runtime.rs b/server-rs/crates/shared-contracts/src/runtime.rs index 03a7bc41b..d04269aa8 100644 --- a/server-rs/crates/shared-contracts/src/runtime.rs +++ b/server-rs/crates/shared-contracts/src/runtime.rs @@ -558,7 +558,7 @@ pub struct ProfileMembershipPlanResponse { ) )] pub struct ProfileMembershipResponse { - /// 会员状态 token:`normal` / `active`;未知取值按 `active` 兜底。 + /// 会员状态 token:`normal` / `active`;Rust 客户端反序列化时未知取值按 `active` 兜底,TS 侧不做运行期归一化。 #[serde(deserialize_with = "deserialize_forward_compat_membership_status")] pub status: ProfileMembershipStatusToken, /// 当前档位 token;非会员与已到期都是 `normal`;未知取值按 `max` 兜底。