8000 Comparing v0.8.6.2...v0.8.6.3 · QuantumNous/new-api · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: QuantumNous/new-api
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.8.6.2
Choose a base ref
...
head repository: QuantumNous/new-api
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.8.6.3
Choose a head ref
  • 20 commits
  • 13 files changed
  • 4 contributors

Commits on May 19, 2025

  1. Configuration menu
    Copy the full SHA
    69420f7 View commit details
    Browse the repository at this point in the history

Commits on Jun 22, 2025

  1. Configuration menu
    Copy the full SHA
    75c71c3 View commit details
    Browse the repository at this point in the history

Commits on Jun 23, 2025

  1. 🎛️ feat(web): add “Conflict Rates” filter & highlight in Model Settin…

    …gs Visual Editor (#1286)
    
    Introduce the ability to quickly locate models with conflicting billing configurations.
    
    Key points
    • Added `hasConflict` flag to detect models that define both a fixed price (`ModelPrice`) and any ratio (`ModelRatio` or `CompletionRatio`).
    • Added “Show Only Conflict Rates” `Checkbox` to toolbar; filtering logic now supports keyword + conflict filtering.
    • Display a red `Tag` beside the model name when a conflict is detected for immediate visual feedback.
    • Kept `hasConflict` state in sync during add, update and delete operations.
    • Imported `Checkbox` and `Tag` from **@douyinfe/semi-ui**.
    • Minor UI tweaks (circle tag style, margin) for consistency.
    
    This enhancement helps administrators swiftly identify and resolve incompatible pricing rules, addressing the need discussed in issue #1286.
    t0ng7u committed Jun 23, 2025
    Configuration menu
    Copy the full SHA
    5367015 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    ffc22b8 View commit details
    Browse the repository at this point in the history
  3. 🐛 fix(ratio-sync): reset pagination when filter/search changes

    Add a `useEffect` hook in `UpstreamRatioSync.js` to automatically set
    `currentPage` to `1` whenever `ratioTypeFilter` or `searchKeyword`
    updates.
    This prevents the table from appearing empty when users switch to the
    “model_price” (fixed price) filter or perform a new search while on a
    later page.
    
    Additional changes:
    - Import `useEffect` from React.
    
    This enhancement delivers a smoother UX by ensuring the first page of
    results is always shown after any filtering action.
    t0ng7u committed Jun 23, 2025
    Configuration menu
    Copy the full SHA
    c281903 View commit details
    Browse the repository at this point in the history
  4. 🚀 chore(ui): Refactor UpstreamRatioSync with conflict-modal component…

    …, performance hooks & cleanup (#1286)
    
    WHAT’S NEW
    • Extracted reusable ConflictConfirmModal for clearer JSX hierarchy
    • Added detailed conflict detection & confirmation flow before syncing options
    • Refactored state-heavy callbacks (`selectValue`, `performSync`) with `useCallback` to avoid unnecessary renders
    • Introduced build-time constants (later removed unused export) and unified helper utilities
    • Ensured final ratios are rebuilt accurately before API `PUT`, fixing “value not updated” bug
    • Enhanced UI hints: warning icon on conflict, multiline billing info, mobile-friendly modal size
    • General code cleanup: removed dead variables, adopted early returns, improved comments
    
    WHY
    Improves maintainability, user clarity when billing-type collisions occur, and guarantees data consistency after synchronisation.
    t0ng7u committed Jun 23, 2025
    Configuration menu
    Copy the full SHA
    2591ca3 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    7c72545 View commit details
    Browse the repository at this point in the history
  6. 🚀 feat: add enabled/disabled channel filtering & optimize type-based …

    …pagination (#1289)
    
    WHAT’S NEW
    • Backend
      – Introduced `parseStatusFilter` helper to normalize `status` query across handlers.
      – `GET /api/channel` & `GET /api/channel/search` now accept `status=enabled|disabled` to return only enabled or disabled channels.
      – Tag-mode branch respects both `statusFilter` and `typeFilter`; SQL paths trimmed to one query + one lightweight `GROUP BY` for `type_counts`.
    
    • Frontend (`ChannelsTable.js`)
      – Added “Status Filter” `<Select>` (All / Enabled / Disabled) with localStorage persistence.
      – All data-loading and search requests now always append `type` (when not “all”) and `status` params, so filtering & pagination are handled entirely server-side.
      – Removed client-side post-filtering for type, preventing short pages and reducing CPU work.
      – Tabs’ type counts stay in sync via backend-provided `type_counts`.
    
    IMPROVEMENTS
    • Eliminated duplicated status-parsing logic; single source of truth eases future extension.
    • Reduced redundant queries, improved consistency of counts in UI.
    • Secured key leakage with `Omit("key")` unchanged; no perf regressions observed.
    
    Closes #1289
    t0ng7u committed Jun 23, 2025
    Configuration menu
    Copy the full SHA
    bc37177 View commit details
    Browse the repository at this point in the history
  7. 🧬merge: Add a button to copy the selected model in the channel (#1290)

    Merge pull request #1290 from JoeyLearnsToCode/feat-copy-models
    t0ng7u authored Jun 23, 2025
    Configuration menu
    Copy the full SHA
    75e3959 View commit details
    Browse the repository at this point in the history
  8. 🎨 feat(EditChannel): improve model selection UX, clipboard feedback &…

    … rounded styling (#1290)
    
    * Added a dedicated effect to merge origin and selected models, ensuring selected items always remain in the dropdown list.
    * Enhanced “Copy all models” button:
      * Shows info message when list is empty.
      * Displays success / error notification based on copy result.
    * Unified UI look-and-feel by applying `!rounded-lg` class to inputs, selects, banners and buttons.
    * i18n: added English translations for new prompts
      - "No models to copy"
      - "Model list copied to clipboard"
      - "Copy failed"
    t0ng7u committed Jun 23, 2025
    Configuration menu
    Copy the full SHA
    1ab75b8 View commit details
    Browse the repository at this point in the history
  9. 🐛 fix(channel): remove duplicate model names in “Edit Channel” model …

    …dropdown (#1292)
    
    • Unify the Select option structure as `{ key, label, value }`; add missing `key` to prevent duplicated rendering by Semi-UI.
    • Trim and deduplicate the `models` array via `Set` inside `handleInputChange`, ensuring state always contains unique values.
    • In the options-merging `useEffect`, use a `Map` keyed by `value` (after `trim`) to guarantee a unique `optionList` when combining backend data with currently selected models.
    • Apply the same structure and de-duplication when:
      – Fetching models from `/api/channel/models`
      – Adding custom models (`addCustomModels`)
      – Fetching upstream model lists (`fetchUpstreamModelList`)
    • Replace obsolete `text` field with `label` in custom option objects for consistency.
    
    No backend changes are required; the fix is entirely front-end.
    
    Closes #1292
    t0ng7u committed Jun 23, 2025
    Configuration menu
    Copy the full SHA
    c974b10 View commit details
    Browse the repository at this point in the history
  10. 🐛 fix: preserve group filter when switching channel type/status

    Ensure that the selected "group" filter (and other form search values) persist across
    type tab changes, status filter updates, pagination, and page-size changes.
    
    Changes include:
    • loadChannels: added `searchParams` argument and now appends keyword, group and model
      query strings to API calls.
    • refresh / page handlers / type tabs / status Select: now pass current form values
      to loadChannels, keeping filters intact.
    • searchChannels: maintains active type and status filters when issuing search requests.
    • Form.Select (searchGroup): triggers loadChannels when only group filter is active,
      preventing parameter loss.
    • Minor cleanup and comment adjustments.
    t0ng7u committed Jun 23, 2025
    Configuration menu
    Copy the full SHA
    a8ba2eb View commit details
    Browse the repository at this point in the history
  11. 💄 i18n: shorten channel search placeholder and update i18n

    Replaced the verbose placeholder “Search channel ID, name, key and API address ...”
    with a concise version “Channel ID, name, key, API address” in
    `ChannelsTable.js` and synchronized the corresponding i18n entries.
    
    This improves readability and keeps UI text consistent across languages.
    t0ng7u committed Jun 23, 2025
    Configuration menu
    Copy the full SHA
    6c31151 View commit details
    Browse the repository at this point in the history
  12. Configuration menu
    Copy the full SHA
    5a5e8ce View commit details
    Browse the repository at this point in the history
  13. ✨ fix(channels-table): preserve group filter when switching type or s…

    …tatus tabs
    
    Refactors `ChannelsTable.js` to ensure that the selected group filter is **never lost** when:
    
    1. Cycling between channel-type tabs.
    2. Changing the status dropdown (all / enabled / disabled).
    
    Key points:
    
    • `loadChannels` now detects active search filters (keyword / group / model) and transparently delegates to `searchChannels`, guaranteeing all parameters are sent in every request.
    • `searchChannels` accepts optional `typeKey` and `statusF` arguments, enabling reuse without code duplication.
    • Loading state handling is unified; no extra renders or side effects were introduced, keeping UI performance intact.
    • Duplicate logic removed and responsibilities clearly separated for easier future maintenance.
    t0ng7u committed Jun 23, 2025
    Configuration menu
    Copy the full SHA
    db1b11d View commit details
    Browse the repository at this point in the history
  14. 🚀 feat: Align search API with channel listing & fix sorting toggle

    1. Backend
       • `controller/channel.go`
         – Added pagination (`p`, `page_size`) support to `SearchChannels`.
         – Added independent `type` filter (keeps `type_counts` unaffected).
         – Returned `total`, `type_counts` to match `/api/channel/` response.
    
    2. Frontend
       • `ChannelsTable.js`
         – `loadChannels` / `searchChannels` now pass `p`, `page_size`, `id_sort`, `type`, `status` correctly.
         – Pagination, page-size selector and type tabs work for both normal list and search mode.
         – Switch for “ID sort” calls proper API and keeps UI state in sync.
         – Removed unnecessary `normalize` helper; `getFormValues` back to concise form.
    
    Result
    • Search mode and normal listing now share identical pagination and filtering behavior.
    • Type tabs show correct counts even after searching.
    • “ID Sort” toggle no longer inverses actual behaviour.
    t0ng7u committed Jun 23, 2025
    Configuration menu
    Copy the full SHA
    aeb393e View commit details
    Browse the repository at this point in the history
  15. ✨ fix: ensure table shows correct loading state on first render & dur…

    …ing search
    
    Frontend (`ChannelsTable.js`)
    1. Initialize `loading` state to `true` so the spinner is visible while the first data request is in-flight.
    2. Set `<Table>` prop `loading={loading || searching}` — the spinner now appears for both the initial load and any subsequent search requests.
    
    Result
    Users immediately see a loading indicator on page entry and whenever a search is running, improving perceived responsiveness.
    t0ng7u committed Jun 23, 2025
    Configuration menu
    Copy the full SHA
    de6e551 View commit details
    Browse the repository at this point in the history

Commits on Jun 24, 2025

  1. 🚀 feat: enhance model testing UI with bulk selection, copy & success-…

    …filter buttons (#1288)
    
    * ChannelsTable
      - Added row-level checkboxes to the model-testing table for multi-selection
      - Implemented cross-page “Select All / Deselect All” via rowSelection.onSelectAll
      - Introduced allSelectingRef to ignore redundant onChange after onSelectAll
      - Added “Copy Selected” button to copy chosen model names (comma-separated) using helpers.copy
      - Added “Select Successful” button to auto-tick all models that passed testing
      - Moved search bar and new action buttons into the modal title for better UX
      - Centralised page size constant MODEL_TABLE_PAGE_SIZE in channel.constants.js
      - Fixed pagination slicing and auto-page-switch logic during batch testing
    
    * channel.constants
      - Exported MODEL_TABLE_PAGE_SIZE (default 10) for unified pagination control
    
    This commit enables users to conveniently copy or filter successful models, fully supports cross-page bulk operations, and resolves previous selection inconsistencies.
    
    Refs: #1288
    t0ng7u committed Jun 24, 2025
    Configuration menu
    Copy the full SHA
    44495b1 View commit details
    Browse the repository at this point in the history
  2. 6D40
  3. 🎨 style(channels-table): standardize operation component size to small

    All operation-related UI controls in `ChannelsTable` (buttons, dropdowns,
    switches, inputs, tags, etc.) now explicitly use `size="small"`.
    
    Reasons & benefits:
    - Creates a more compact and consistent look across the table and modals.
    - Improves visual coherence between desktop and mobile views.
    - Purely presentational; no functional logic is affected.
    
    No database changes or API interactions are involved.
    t0ng7u committed Jun 24, 2025
    Configuration menu
    Copy the full SHA
    0c5d4ca View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    3f53e4f View commit details
    Browse the repository at this point in the history
Loading
0