Merge origin/main into feat/channel-monitor-v2-ops-ui

Resolves three conflicts, all of the "both branches appended to the same
block" shape. Every one is resolved as a union of both sides; nothing from
either parent is dropped.

- handler/admin/setting_handler_update.go: keep ChannelMonitorHideThroughput
  (V2) alongside GrokDefaultTextModel / GrokCrossClientModelMapEnabled /
  GrokDefaultBaseURLMode (#5408). UpdateSettings writes every key on each
  save, so dropping either side would reset those settings to zero values.
- service/domain_constants.go: keep SettingKeyChannelMonitorHideThroughput
  and the three SettingKeyGrok* constants.
- repository/migrations_runner.go: keep the 195 checksum rule (V2) and the
  218/219/220 rules (#5408).
This commit is contained in:
shaw
2026-08-09 12:11:35 +08:00
352 changed files with 25184 additions and 2128 deletions
+14 -2
View File
@@ -371,6 +371,10 @@ func TestAPIContracts(t *testing.T) {
"video_price_720p": null,
"video_price_1080p": null,
"web_search_price_per_call": null,
"search_price_per_1k": null,
"audio_tts_price_per_million_chars": null,
"audio_stt_price_per_hour": null,
"audio_realtime_price_per_min": null,
"allow_image_generation": false,
"allow_batch_image_generation": false,
"batch_image_discount_multiplier": 0,
@@ -880,6 +884,9 @@ func TestAPIContracts(t *testing.T) {
"invitation_code_enabled": false,
"home_content": "",
"hide_ccs_import_button": false,
"grok_default_text_model": "grok-4.5",
"grok_default_base_url_mode": "cli",
"grok_cross_client_model_map_enabled": true,
"purchase_subscription_enabled": false,
"purchase_subscription_url": "",
"table_default_page_size": 20,
@@ -971,6 +978,7 @@ func TestAPIContracts(t *testing.T) {
"payment_alipay_mobile_precreate_deep_link": false,
"balance_low_notify_enabled": false,
"account_quota_notify_enabled": false,
"account_scheduling_thresholds": {"anthropic":100,"grok":100,"openai":100},
"subscription_expiry_notify_enabled": true,
"balance_low_notify_threshold": 0,
"balance_low_notify_recharge_url": "",
@@ -1157,6 +1165,9 @@ func TestAPIContracts(t *testing.T) {
"doc_url": "",
"home_content": "",
"hide_ccs_import_button": false,
"grok_default_text_model": "grok-4.5",
"grok_default_base_url_mode": "cli",
"grok_cross_client_model_map_enabled": true,
"purchase_subscription_enabled": false,
"purchase_subscription_url": "",
"table_default_page_size": 20,
@@ -1276,6 +1287,7 @@ func TestAPIContracts(t *testing.T) {
"payment_alipay_mobile_precreate_deep_link": false,
"balance_low_notify_enabled": false,
"account_quota_notify_enabled": false,
"account_scheduling_thresholds": {"anthropic":100,"grok":100,"openai":100},
"subscription_expiry_notify_enabled": true,
"balance_low_notify_threshold": 0,
"balance_low_notify_recharge_url": "",
@@ -2251,10 +2263,10 @@ func (stubUserSubscriptionRepo) UpdateStatus(ctx context.Context, subscriptionID
func (stubUserSubscriptionRepo) UpdateNotes(ctx context.Context, subscriptionID int64, notes string) error {
return errors.New("not implemented")
}
func (stubUserSubscriptionRepo) ActivateWindows(ctx context.Context, id int64, start time.Time) error {
func (stubUserSubscriptionRepo) ActivateWindows(ctx context.Context, id int64, dailyStart, periodicStart time.Time) error {
return errors.New("not implemented")
}
func (stubUserSubscriptionRepo) ResetUsageWindows(ctx context.Context, id int64, resetDaily, resetWeekly, resetMonthly bool, newWindowStart time.Time) error {
func (stubUserSubscriptionRepo) ResetUsageWindows(ctx context.Context, id int64, resetDaily, resetWeekly, resetMonthly bool, dailyStart, periodicStart time.Time) error {
return errors.New("not implemented")
}
func (stubUserSubscriptionRepo) ResetDailyUsage(ctx context.Context, id int64, expectedWindowStart *time.Time, newWindowStart time.Time) error {