- 13 Aug, 2025 1 commit
-
-
wzxjohn committed
-
- 12 Aug, 2025 20 commits
-
-
🐛 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 -
🔍 * 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 -
t0ng7u committed
-
🐛 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 -
CaIon committed
-
CaIon committed
-
CaIon committed
-
CaIon committed
-
feat: add jimeng video official api
IcedTangerine committed -
CaIon committed
-
CaIon committed
-
fix: 注册时发送邮件验证码没有等待时间
Calcium-Ion committed -
CaIon committed
-
feat: add responses support for cloudflare
Calcium-Ion committed -
- Added a check for MySQL charset/collation to ensure compatibility with Chinese characters during database initialization. - Updated SQLite busy timeout from 5000ms to 30000ms for improved performance. - Removed commented-out PostgreSQL migration logic for clarity.
CaIon committed -
同語 committed
-
docs(web_api): 修复 Markdown 表格格式
同語 committed -
🚫 - Add new Forbidden page at /forbidden (`web/src/pages/Forbidden/index.js`) - Use Semi-UI Empty with IllustrationNoAccess (250x250) - Update i18n description to: '您无权访问此页面,请联系管理员~' - Align visual style with existing 404 page - Introduce `AdminRoute` in `web/src/helpers/auth.js` - Use `UserContext`/localStorage; redirect to `/forbidden` when `!user` or `user.role < 10` - Protect console/admin routes with `AdminRoute` and register `/forbidden` in `web/src/App.js` - Update `web/src/i18n/locales/en.json` - Add English translation for the new forbidden message - Remove legacy "没有权限" entry - Lint passes; no runtime errors observed
t0ng7u committed -
t0ng7u committed
-
🐛 - Switch Collapse from controlled (activeKey) to uncontrolled (defaultActiveKey) so user toggling works - Add a stable key to reset Collapse state when tab/category changes - Default all panels to collapsed via defaultActiveKey: [] - Preserve Panel itemKey for consistent behavior - No linter errors introduced Scope: web/src/components/table/channels/modals/ModelSelectModal.jsx
t0ng7u committed
-
- 11 Aug, 2025 17 commits
-
-
fix: zhipu_v4 thinking
Seefs committed -
nekohy committed
-
✨ CaIon committed -
✨ CaIon committed -
🍭 t0ng7u committed -
🍭 t0ng7u committed -
✨ - Truncate long labels via pure CSS and always show full text in a Tooltip - Ensure the right-side Tag is never truncated and remains fully visible - Simplify implementation: remove overflow detection and ResizeObserver - Use minimal markup with sbg-button/sbg-inner/sbg-label to enable shrinking - Add global rules to allow `.semi-button-content` to shrink and ellipsize Files: - web/src/components/common/ui/SelectableButtonGroup.jsx - web/src/index.css No API changes; visuals improved and code complexity reduced.
t0ng7u committed -
🤓 t0ng7u committed -
t0ng7u committed
-
✨ CaIon committed -
✨ CaIon committed -
# Conflicts: # relay/channel/openai/adaptor.go
CaIon committed -
Q.A.zh committed
-
✨ CaIon committed -
💄 Frontend - Models table (model management): - Render billing types with the same segmented list component (renderLimitedItems) used by tags and endpoints - Display quota_types as an array with capped items (maxDisplay: 3) and graceful fallback for unknown types - Pricing view (unchanged by request): - Revert to single-value quota_type rendering and sorter - Keep ratio display logic based on quota_type only Files - web/src/components/table/models/ModelsColumnDefs.js - web/src/components/table/model-pricing/view/table/PricingTableColumns.js Notes - This commit only adjusts the model management UI rendering; pricing views remain as-is
t0ng7u committed -
duyazhe committed
-
🚀 Backend - Add GetBoundChannelsByModelsMap to batch-fetch bound channels via a single JOIN (Distinct), compatible with SQLite/MySQL/PostgreSQL - Replace per-record enrichment with a single-pass enrichModels to avoid N+1 queries; compute unions for prefix/suffix/contains matches in memory - Change Model.QuotaType to QuotaTypes []int and expose quota_types in responses - Add GetModelQuotaTypes for cached O(1) lookups; exact models return a single-element array - Sort quota_types for stable output order - Remove unused code: GetModelByName, GetBoundChannels, GetBoundChannelsForModels, FindModelByNameWithRule, buildPrefixes, buildSuffixes - Clean up redundant comments, keeping concise and readable code Frontend - Models table: switch to quota_types, render multiple billing modes ([0], [1], [0,1], future values supported) - Pricing table: switch to quota_types; ratio display now checks quota_types.includes(0); array rendering for billing tags Compatibility - SQL uses standard JOIN/IN/Distinct; works across SQLite/MySQL/PostgreSQL - Lint passes; no DB schema changes (quota_types is a JSON response field only) Breaking Change - API field renamed: quota_type -> quota_types (array). Update clients accordingly.
t0ng7u committed
-
- 10 Aug, 2025 2 commits
-
-
🔧 🔧 chore(db): drop legacy single-column UNIQUE indexes to prevent duplicate-key errors after soft-delete Why Previous versions created single-column UNIQUE constraints (`models.model_name`, `vendors.name`). After introducing composite indexes on `(model_name, deleted_at)` and `(name, deleted_at)` for soft-delete support, those legacy constraints could still exist in user databases. When a record was soft-deleted and re-inserted with the same name, MySQL raised `Error 1062 … for key 'models.model_name'`. What • In `migrateDB` and `migrateDBFast` paths of `model/main.go`, proactively drop: – `models.uk_model_name` and fallback `models.model_name` – `vendors.uk_vendor_name` and fallback `vendors.name` • Keeps existing helper `dropIndexIfExists` to ensure the operation is MySQL-only and error-free when indexes are already absent. Result Startup migration now removes every possible legacy UNIQUE index, ensuring composite index strategy works correctly. Users can soft-delete and recreate models/vendors with identical names without hitting duplicate-entry errors.t0ng7u committed -
t0ng7u committed
-