fix(billing): settle tiered retries with final group (#6518)

This commit is contained in:
吴天一
2026-07-31 19:16:46 +08:00
committed by GitHub
parent 9724ef1b24
commit df43f80153
6 changed files with 209 additions and 8 deletions
+4 -3
View File
@@ -122,7 +122,7 @@ type RelayInfo struct {
// 必须在提交前锁定全额。
ForcePreConsume bool
// Billing 是计费会话,封装了预扣费/结算/退款的统一生命周期。
// 免费模型时为 nil
// 初始免费组可为 nil;若 auto 重试切换到付费组,会在发送前创建
Billing BillingSettler
// BillingSource indicates whether this request is billed from wallet quota or subscription.
// "" or "wallet" => wallet; "subscription" => subscription
@@ -163,8 +163,9 @@ type RelayInfo struct {
// It is surfaced onto the consume/task log's admin_info for auditing.
QuotaClamp *common.QuotaClamp
// TieredBillingSnapshot is a frozen snapshot of tiered billing rules
// captured at pre-consume time. Non-nil only when billing mode is "tiered_expr".
// TieredBillingSnapshot captures tiered billing rules at pre-consume time.
// Auto-group retries refresh its group-dependent fields before each attempt
// and again before settlement. Non-nil only when billing mode is "tiered_expr".
TieredBillingSnapshot *billingexpr.BillingSnapshot
BillingRequestInput *billingexpr.RequestInput