1. 31 Jul, 2025 8 commits
  2. 30 Jul, 2025 14 commits
  3. 29 Jul, 2025 3 commits
  4. 27 Jul, 2025 8 commits
  5. 26 Jul, 2025 7 commits
    • 🔍 fix: select search filter · 90cf9efd
      Summary
      • Introduced a unified `selectFilter` helper that matches both `option.value` and `option.label`, ensuring all `<Select>` components support intuitive search (fixes channel “type” dropdown not filtering).
      • Replaced all usages of the old `modelSelectFilter` with `selectFilter` in:
        • `EditChannelModal.jsx`
        • `SettingsPanel.js`
        • `EditTokenModal.jsx`
        • `EditTagModal.jsx`
      • Removed the deprecated `modelSelectFilter` export from `utils.js` (no backward-compat alias).
      • Updated documentation comments accordingly.
      
      Why
      The old filter only inspected `option.value`, causing searches to fail when `label` carried the meaningful text (e.g., numeric IDs for channel types). The new helper searches both fields, covering all scenarios and unifying the API across the codebase.
      
      Notes
      No functional regressions expected; all components have been migrated.
      t0ng7u committed
    • refactor: pricing filters for dynamic counting & cleaner logic · 017f32b9
      This commit introduces a unified, maintainable solution for all model-pricing filter buttons and removes redundant code.
      
      Key points
      • Added `usePricingFilterCounts` hook
        - Centralises filtering logic and returns:
          - `quotaTypeModels`, `endpointTypeModels`, `dynamicCategoryCounts`, `groupCountModels`
        - Keeps internal helpers private (removed public `modelsAfterCategory`).
      
      • Updated components to consume the new hook
        - `PricingSidebar.jsx`
        - `FilterModalContent.jsx`
      
      • Improved button UI/UX
        - `SelectableButtonGroup.jsx` now respects `item.disabled` and auto-disables when `tagCount === 0`.
        - `PricingGroups.jsx` counts models per group (after all other filters) and disables groups with zero matches.
        - `PricingEndpointTypes.jsx` enumerates all endpoint types, computes filtered counts, and disables entries with zero matches.
      
      • Removed obsolete / duplicate calculations and comments to keep components lean.
      
      The result is consistent, real-time tag counts across all filter groups, automatic disabling of unavailable options, and a single source of truth for filter computations, making future extensions straightforward.
      t0ng7u committed
    • feat: add claude code channel · 1389cc7a
      Seefs committed
    • 💄 style(ui): show "Force Format" toggle only for OpenAI channels · bbc3ae6e
      Previously, the "Force Format" switch was displayed for every channel type
      although it only applies to OpenAI (type === 1).
      This change wraps the switch in a conditional so it renders exclusively when
      the selected channel type is OpenAI.
      
      Why:
      - Prevents user confusion when configuring non-OpenAI channels
      - Keeps the UI clean and context-relevant
      
      Scope:
      - web/src/components/table/channels/modals/EditChannelModal.jsx
      
      No backend logic affected.
      t0ng7u committed