1. 10 Jul, 2025 4 commits
    • Merge branch 'alpha' into refactor_error · 1437ceaa
      # Conflicts:
      #	controller/channel.go
      #	middleware/distributor.go
      #	model/channel.go
      #	model/user.go
      #	model/user_cache.go
      #	relay/common/relay_info.go
      CaIon committed
    • refactor: Introduce standardized API error · 4a9ca420
      This commit refactors the application's error handling mechanism by introducing a new standardized error type, `types.NewAPIError`. It also renames common JSON utility functions for better clarity.
      
      Previously, internal error handling was tightly coupled to the `dto.OpenAIError` format. This change decouples the internal logic from the external API representation.
      
      Key changes:
      - A new `types.NewAPIError` struct is introduced to serve as a canonical internal representation for all API errors.
      - All relay adapters (OpenAI, Claude, Gemini, etc.) are updated to return `*types.NewAPIError`.
      - Controllers now convert the internal `NewAPIError` to the client-facing `OpenAIError` format at the API boundary, ensuring backward compatibility.
      - Channel auto-disable/enable logic is updated to use the new standardized error type.
      - JSON utility functions are renamed to align with Go's standard library conventions (e.g., `UnmarshalJson` -> `Unmarshal`, `EncodeJson` -> `Marshal`).
      CaIon committed
  2. 08 Jul, 2025 2 commits
  3. 07 Jul, 2025 5 commits
  4. 06 Jul, 2025 9 commits
  5. 05 Jul, 2025 4 commits
  6. 04 Jul, 2025 5 commits
  7. 03 Jul, 2025 9 commits
    • 🎨 refactor(EditTagModal): tidy imports & enhance state-sync on open · f45caf29
      Motivation
      • Remove unused UI components to keep the bundle lean and silence linter warnings.
      • Ensure every time the side-sheet opens it reflects the latest tag data, avoiding stale form values (e.g., model / group mismatches).
      
      Key Changes
      1. UI Imports
         – Dropped `Input`, `Select`, `TextArea` from `@douyinfe/semi-ui` (unused in Form-based version).
      2. State Reset & Form Sync
         – On `visible` or `tag` change:
           • Refresh model & group options.
           • Reset `inputs` to clean defaults (`originInputs`) carrying the current `tag`.
           • Pre-fill Form through `formApiRef` to keep controlled fields aligned.
      3. Minor Cleanup
         – Added inline comment clarifying local state reset purpose.
      
      Result
      Opening the “Edit Tag” side-sheet now always displays accurate data without residual selections, and build output is cleaner due to removed dead imports.
      t0ng7u committed
    • refactor(EditChannel&EditToken): refactor Channel & Token edit pages with Semi… · 56dce5a7
       refactor(EditChannel&EditToken): refactor Channel & Token edit pages with Semi Form and UX enhancements
      
      Overview
      • Migrated both `EditChannel.js` and `EditToken.js` to fully leverage Semi UI `Form.*` components, removing legacy `Input/Select/TextArea` + manual labels.
      • Unified data-loading strategy: when the drawer becomes visible we load (or reset) data via `props.visible + id` effect and `formApi.setValues()`, guaranteeing fields are always populated; form resets on close.
      • Fixed blank-form bug when opening the same record twice.
      
      Key improvements
      1. Validation
         • `type`, `models` always required.
         • `key` required only while creating (not on edit).
      2. Batch key creation
         • Checkbox moved into `extraText`; hidden when editing or when channel type = 41.
      3. Layout & UI
         • `Row / Col` (12 + 12) for “Priority” and “Weight”.
         • Placeholders revised; model selector now shows creation hint; removed obsolete banner.
         • Help / extraText used for long hints, template buttons (`model_mapping`, `status_code_mapping`, `param_override`, etc.), and API address notice.
         • Added `showClear`, `min`, rounded card class names for consistency.
      4. Reusable helpers
         • `batchAllowed`, `batchExtra` utilities.
         • `getInitValues()` + centralized `inputs`→form synchronization.
      5. Token editor aligned to the same pattern (`props.visiable` watcher).
      
      Result
      Cleaner code, consistent UX, instant field population on every open, and clearer validation/error feedback across both editors.
      t0ng7u committed
    • 🔌 feat(api): extend endpoint type support & expose in pricing UI · dd9a1534
      * backend
        - constant/endpoint_type.go
          • Add EndpointTypeMidjourney, EndpointTypeSuno, EndpointTypeKling, EndpointTypeJimeng.
        - common/endpoint_type.go
          • Map Midjourney / MidjourneyPlus, SunoAPI, Kling, Jimeng channel types to the new endpoint types.
      
      * frontend
        - ModelPricing.js
          • Add “Supported Endpoint Type” column.
          • Implement renderSupportedEndpoints with `stringToColor` for consistent tag colors.
      
      These changes allow `/api/pricing` and model lists to return accurate
      `supported_endpoint_types` covering all non-OpenAI providers and display
      them clearly in the UI.
      
      No breaking changes.
      t0ng7u committed
    • Merge pull request #1314 from vickyyd/main · 5cb4c4e6
      修复使用gemini-balance作为上游时,测试gemini2.5pro模型时出现的错误问题
      Calcium-Ion committed
    • Merge pull request #1325 from feitianbubu/pr/fix-ali-embedding-lost-prompt-token · 62e82256
      fix: ali embedding lose prompt_tokens
      Calcium-Ion committed
    • Merge pull request #1326 from QuantumNous/refactor_constant · bb00bd0f
       feat: refactor environment variable initialization
      Calcium-Ion committed
    • feat: refactor environment variable initialization and introduce new constant… · f14f4eaf
       feat: refactor environment variable initialization and introduce new constant types for API and context keys
      CaIon committed
  8. 02 Jul, 2025 2 commits