1. 16 Aug, 2025 3 commits
  2. 15 Aug, 2025 25 commits
  3. 14 Aug, 2025 6 commits
  4. 13 Aug, 2025 1 commit
    • 🐛 fix(tokens): correct main Chat button navigation to prevent 404 · f1afe914
      The primary "Chat" button on the tokens table navigated to a 404 page
      because it passed incorrect arguments to onOpenLink (using a raw
      localStorage value instead of the parsed chat value).
      
      Changes:
      - Build chatsArray with an explicit `value` for each item.
      - Use the first item's `name` and `value` for the main button, matching
        the dropdown behavior.
      - Preserve existing error handling when no chats are configured.
      
      Impact:
      - Main "Chat" button now opens the correct link, consistent with the
        dropdown action.
      - No API/schema changes, no UI changes.
      
      File:
      - web/src/components/table/tokens/TokensColumnDefs.js
      
      Verification:
      - Manually verified primary button and dropdown both navigate correctly.
      - Linter passes with no issues.
      t0ng7u committed
  5. 12 Aug, 2025 5 commits
    • 🐛 fix: Always update `searchValue` during IME composition to enable Chinese input in model search · b699bf00
      Summary:
      • Removed early return in `handleChange` that blocked controlled value updates while an Input Method Editor (IME) was composing text.
      • Ensures that Chinese (and other IME-based) characters appear immediately in the “Fuzzy Search Model Name” field.
      • No change to downstream filtering logic—`searchValue` continues to drive model list filtering as before.
      
      Files affected:
      web/src/hooks/model-pricing/useModelPricingData.js
      t0ng7u committed
    • 🔍 fix(pricing): synchronize search term with sidebar filters & reset behavior · b6c353ec
      * Add `searchValue` to every dependency array in `usePricingFilterCounts`
        to ensure group/vendor/tag counts and disabled states update dynamically
        while performing fuzzy search.
      
      * Refactor `PricingTopSection` search box into a controlled component:
        - Accept `searchValue` prop and bind it to `Input.value`
        - Extend memo dependencies to include `searchValue`
        This keeps the UI in sync with state changes triggered by `handleChange`.
      
      * Guarantee that `resetPricingFilters` clears the search field by
        leveraging the new controlled input.
      
      As a result, sidebar counters/disabled states now react to search input,
      and the “Reset” button fully restores default filters without leaving the
      search term visible.
      t0ng7u committed
    • 🐛 fix: group-ratio display & deduplicate price logic in model-pricing views · e6925309
      Summary
      • Ensure “Group Ratio” shows correctly when “All” groups are selected.
      • Eliminate redundant price calculations in both card and table views.
      
      Details
      1. PricingCardView.jsx
         • Removed obsolete renderPriceInfo function.
         • Calculate priceData once per model and reuse for header price string and footer ratio block.
         • Display priceData.usedGroupRatio as the group ratio fallback.
      
      2. PricingTableColumns.js
         • Introduced WeakMap-based cache (getPriceData) to compute priceData only once per row.
         • Updated ratioColumn & priceColumn to reuse cached priceData.
         • Now displays priceData.usedGroupRatio, preventing empty cells for “All” group.
      
      Benefits
      • Correct visual output for group ratio across all views.
      • Reduced duplicate calculations, improving render performance.
      • Removed dead code, keeping components clean and maintainable.
      t0ng7u committed