diff --git a/server-rs/crates/module-runtime/src/membership/catalog.rs b/server-rs/crates/module-runtime/src/membership/catalog.rs index 12cde7e7a..8d0bce005 100644 --- a/server-rs/crates/module-runtime/src/membership/catalog.rs +++ b/server-rs/crates/module-runtime/src/membership/catalog.rs @@ -146,6 +146,11 @@ pub fn resolve_runtime_profile_membership_plan_row( /// 只比较 `candidate` 与其余每一行:这样任何单次改写都不能制造新的倒挂,而目录原本单调时 /// 写完后仍严格单调;同时历史脏目录不会把后台彻底锁死,后台仍能逐档修正。 /// +/// **前置条件**:`existing` 必须覆盖除 `candidate.plan` 外的全部在售档位。本函数只校验 +/// `candidate` 相对现存行的单调性,无法发现「缺失档位」导致的倒挂(例如漏传某一行时, +/// 月价 / 年价 / 每期泥点的反转关系会静默通过,之后才在报价或目录读取时暴露)。当前唯一 +/// 调用方传入完整目录表,新增调用方时必须保持这一约定。 +/// /// `model_access` 与 `concurrent_job_limit` 本期只落字段、只用于展示与人工判断,服务端不做拦截, /// 因此这里不校验它们随 rank 单调;若将来据其做准入判定,需要在此补充倒挂校验。 pub fn validate_runtime_profile_membership_plan_row_against_catalog(