Skip to content

merge - #6405

Closed
krismileji wants to merge 33 commits into
QuantumNous:mainfrom
krismileji:main
Closed

merge#6405
krismileji wants to merge 33 commits into
QuantumNous:mainfrom
krismileji:main

Conversation

@krismileji

@krismileji krismileji commented Jul 22, 2026

Copy link
Copy Markdown

merge

Summary by CodeRabbit

  • New Features
    • Added an administrator-only Channel Monitor dashboard with channel, group, model, cost, performance, success-rate, history, and task views.
    • Added upstream monitoring for New API, Sub2API, and custom HTTP/fixed sources, including balance checks, cost conversion, alerts, and automatic updates.
    • Added smart scheduling, ratio policies, channel ordering, group membership management, and task notifications.
  • Bug Fixes
    • Improved relay retries, channel failover, error handling, and image-generation availability checks.
    • Retry-attempt logs are now hidden from standard user log views while remaining available for detailed administration.

krismileji and others added 30 commits July 12, 2026 12:34
@krismileji

Copy link
Copy Markdown
Author

merge

@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: e7747dc5-ac2c-4927-b957-c66c25302afc

📥 Commits

Reviewing files that changed from the base of the PR and between 1721144 and 576c44f.

📒 Files selected for processing (108)
  • .agents/downstream.md
  • AGENTS.md
  • controller/audit.go
  • controller/channel-test.go
  • controller/channel_monitor_cost.go
  • controller/channel_monitor_cost_test.go
  • controller/channel_monitor_group_membership.go
  • controller/channel_monitor_upstream_version.go
  • controller/channel_ratio_monitor.go
  • controller/channel_ratio_monitor_performance.go
  • controller/channel_ratio_monitor_performance_test.go
  • controller/channel_ratio_monitor_policy.go
  • controller/channel_ratio_monitor_schedule.go
  • controller/channel_ratio_monitor_schedule_test.go
  • controller/channel_ratio_monitor_settings.go
  • controller/channel_ratio_monitor_task.go
  • controller/channel_ratio_monitor_test.go
  • controller/relay.go
  • controller/relay_error_log_test.go
  • controller/relay_retry.go
  • controller/relay_retry_routing.go
  • controller/relay_retry_routing_test.go
  • controller/relay_retry_test.go
  • controller/system_task_handlers.go
  • model/ability.go
  • model/channel_cache.go
  • model/channel_monitor_cost.go
  • model/channel_monitor_group_membership.go
  • model/channel_monitor_group_membership_test.go
  • model/channel_monitor_performance.go
  • model/channel_monitor_performance_test.go
  • model/channel_monitor_success.go
  • model/channel_monitor_success_test.go
  • model/channel_ratio_monitor.go
  • model/channel_ratio_monitor_test.go
  • model/channel_selection_options.go
  • model/channel_selection_options_test.go
  • model/log.go
  • model/log_format_test.go
  • model/log_visibility_test.go
  • model/main.go
  • model/system_task.go
  • router/api-router.go
  • router/channel-monitor-router.go
  • service/channel_monitor_cost_conversion.go
  • service/channel_monitor_cost_conversion_test.go
  • service/channel_monitor_custom_upstream.go
  • service/channel_monitor_custom_upstream_test.go
  • service/channel_monitor_sub2api_auth.go
  • service/channel_monitor_sub2api_auth_test.go
  • service/channel_monitor_upstream_version.go
  • service/channel_monitor_upstream_version_test.go
  • service/channel_ratio_monitor.go
  • service/channel_ratio_monitor_test.go
  • service/channel_select.go
  • service/protected_fetch_client.go
  • service/protected_fetch_client_test.go
  • setting/operation_setting/status_code_ranges.go
  • setting/operation_setting/status_code_ranges_test.go
  • web/default/src/components/ui/combobox.tsx
  • web/default/src/features/channel-monitor/api.ts
  • web/default/src/features/channel-monitor/components/channel-monitor-channel-view.tsx
  • web/default/src/features/channel-monitor/components/channel-monitor-cost-conversion-fields.tsx
  • web/default/src/features/channel-monitor/components/channel-monitor-cost-history-dialog.tsx
  • web/default/src/features/channel-monitor/components/channel-monitor-custom-key-value-editor.tsx
  • web/default/src/features/channel-monitor/components/channel-monitor-custom-upstream-fields.tsx
  • web/default/src/features/channel-monitor/components/channel-monitor-fetch-status.tsx
  • web/default/src/features/channel-monitor/components/channel-monitor-group-view.tsx
  • web/default/src/features/channel-monitor/components/channel-monitor-model-performance-view.tsx
  • web/default/src/features/channel-monitor/components/channel-monitor-order-dialog.tsx
  • web/default/src/features/channel-monitor/components/channel-monitor-performance-value.tsx
  • web/default/src/features/channel-monitor/components/channel-monitor-settings-dialog.tsx
  • web/default/src/features/channel-monitor/components/channel-monitor-smart-schedule-cell.tsx
  • web/default/src/features/channel-monitor/components/channel-monitor-smart-schedule-fields.tsx
  • web/default/src/features/channel-monitor/components/channel-monitor-status-badge.tsx
  • web/default/src/features/channel-monitor/components/channel-monitor-success-detail-dialog.tsx
  • web/default/src/features/channel-monitor/components/channel-monitor-success-rate-value.tsx
  • web/default/src/features/channel-monitor/components/channel-monitor-task-history-dialog.tsx
  • web/default/src/features/channel-monitor/components/channel-ratio-history-dialog.tsx
  • web/default/src/features/channel-monitor/components/edit-channel-groups-dialog.tsx
  • web/default/src/features/channel-monitor/components/edit-channel-ratio-dialog.tsx
  • web/default/src/features/channel-monitor/components/edit-group-channels-dialog.tsx
  • web/default/src/features/channel-monitor/components/edit-group-ratio-dialog.tsx
  • web/default/src/features/channel-monitor/components/group-ratio-value.tsx
  • web/default/src/features/channel-monitor/components/ratio-change-badge.tsx
  • web/default/src/features/channel-monitor/components/sync-group-ratio-dialog.tsx
  • web/default/src/features/channel-monitor/components/upstream-config-dialog.tsx
  • web/default/src/features/channel-monitor/constants.ts
  • web/default/src/features/channel-monitor/icon.tsx
  • web/default/src/features/channel-monitor/index.tsx
  • web/default/src/features/channel-monitor/lib/cost-conversion.ts
  • web/default/src/features/channel-monitor/lib/custom-upstream.ts
  • web/default/src/features/channel-monitor/lib/error.ts
  • web/default/src/features/channel-monitor/lib/format.ts
  • web/default/src/features/channel-monitor/lib/schema.ts
  • web/default/src/features/channel-monitor/lib/sort.ts
  • web/default/src/features/channel-monitor/types.ts
  • web/default/src/features/channels/api.ts
  • web/default/src/features/channels/components/channels-dialogs.tsx
  • web/default/src/features/channels/components/channels-primary-buttons.tsx
  • web/default/src/features/channels/components/channels-provider.tsx
  • web/default/src/features/channels/components/dialogs/channel-batch-test-dialog.tsx
  • web/default/src/features/channels/components/dialogs/channel-test-dialog.tsx
  • web/default/src/features/usage-logs/lib/format.ts
  • web/default/src/hooks/use-sidebar-config.ts
  • web/default/src/hooks/use-sidebar-data.ts
  • web/default/src/routeTree.gen.ts
  • web/default/src/routes/_authenticated/channel-monitor/index.tsx

Walkthrough

This PR adds a channel-monitoring system spanning backend persistence, upstream integrations, scheduled tasks, HTTP APIs, and a protected frontend. It also refactors relay retries, records retry attempts separately, adds downstream-fork guidance, and updates related routing and UI infrastructure.

Changes

Channel monitoring backend

Layer / File(s) Summary
Monitoring data and upstream services
model/channel_monitor_*.go, service/channel_monitor_*.go
Adds monitoring models, metrics, cost conversion, custom upstream support, Sub2API authentication, upstream version retrieval, and persistence tests.
Monitoring controllers and execution
controller/channel_monitor*.go, controller/channel_ratio_monitor*.go
Adds overview, cost, performance, success, upstream, policy, scheduling, settings, membership, task, and notification controllers with extensive tests.
Monitoring persistence and routing wiring
model/main.go, router/*, model/channel_selection_options.go, service/channel_select.go
Adds migrations, routes, scheduled task registration, and excluded-channel selection support.

Relay retry and logging

Layer / File(s) Summary
Relay retry budgets and channel routing
controller/relay*.go
Adds dedicated retry budgets, excluded-channel routing, retry-aware channel selection, and final retry handling.
Retry-attempt log persistence
model/log.go, model/main.go, setting/operation_setting/*
Stores retry-attempt markers, hides retry logs from user queries, normalizes relay error display, and updates ClickHouse/retry status handling.

Channel monitor frontend

Layer / File(s) Summary
Frontend contracts and API access
web/default/src/features/channel-monitor/types.ts, web/default/src/features/channel-monitor/api.ts, web/default/src/features/channel-monitor/lib/*, web/default/src/routes/_authenticated/channel-monitor/*
Defines frontend data contracts, validation, formatting, API wrappers, sidebar entries, and a super-admin route.
Monitoring page and dialogs
web/default/src/features/channel-monitor/index.tsx, web/default/src/features/channel-monitor/components/*
Adds channel, group, model, cost, performance, success, upstream, scheduling, task, order, and history interfaces.
Channel frontend support
web/default/src/features/channels/*, web/default/src/components/ui/combobox.tsx
Centralizes channel APIs and dialog state, adds channel testing/action dialogs, and adjusts combobox trigger rendering.

Repository guidance

Layer / File(s) Summary
Downstream contribution rules
.agents/downstream.md, AGENTS.md
Documents downstream-fork conventions and makes the downstream rules a required contributor instruction.

Estimated code review effort: 5 (Critical) | ~120 minutes

Possibly related PRs

Poem

A rabbit hops through channels bright,
Sorting ratios left and right.
Retries learn which paths to spare,
Costs and metrics fill the air.
Chinese logs softly bloom—
Smart schedules make room!

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
⚔️ Resolve merge conflicts
  • Resolve merge conflict in branch main

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Warning

⚠️ This pull request shows signs of AI-generated slop (description_diff_mismatch). It has been flagged by CodeRabbit slop detection and should be reviewed carefully.

@krismileji

Copy link
Copy Markdown
Author

merge

@krismileji krismileji closed this Jul 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant