- 09 Aug, 2025 22 commits
-
-
CaIon committed
-
CaIon committed
-
CaIon committed
-
CaIon committed
-
CaIon committed
-
- Users table (UsersColumnDefs.js): - Remove unused quota calculations from the status renderer - Keep status Tag minimal; tooltip shows request count only - No functional changes - Tokens table (TokensColumnDefs.js): - Simplify chats menu parsing from localStorage; remove redundant flags/loops - Remove unused variables and console statements - Keep error handling via showError; preserve existing operations behavior - General: - Codebase tidying only; no UI/logic changes beyond cleanup - Lint passes successfully
t0ng7u committed -
✨ - Tokens/Users tables: - Replaced status Switch with explicit Enable/Disable buttons in the operation column - Unified button styles with Channels/Models (Disable: danger + small; Enable: default + small) - Status column now shows a small Tag only; standardized labels (Enabled/Disabled/etc.); removed usage info - New "Remaining/Total Quota" column: - Wrapped in a white Tag; shows Remaining/Total with a progress bar - Replaced Tooltip with Popover; contents use Typography.Paragraph with copyable values - Copyable content excludes percentages (only numeric quota values are copied) - Added padding to Popover content for better readability - Tokens specifics: - For unlimited quota, show a white Tag "Unlimited quota" with a Popover that displays copyable "Used quota" - Cleanup: - Removed Switch imports/handlers and unused code paths - Eliminated console logs and redundant flags; simplified chats parsing - Removed quota calculations from status renderers Files: - web/src/components/table/tokens/TokensColumnDefs.js - web/src/components/table/users/UsersColumnDefs.js
t0ng7u committed -
🐛 Replace legacy single-column unique indexes with composite unique indexes on (name, deleted_at) and introduce a safe index drop utility to eliminate duplicate-key errors and noisy MySQL 1091 warnings. WHAT • model/model_meta.go - Model.ModelName → `uniqueIndex:uk_model_name,priority:1` - Model.DeletedAt → `index; uniqueIndex:uk_model_name,priority:2` • model/vendor_meta.go - Vendor.Name → `uniqueIndex:uk_vendor_name,priority:1` - Vendor.DeletedAt → `index; uniqueIndex:uk_vendor_name,priority:2` • model/main.go - Add `dropIndexIfExists(table, index)`: • Checks `information_schema.statistics` • Drops index only when present (avoids Error 1091) - Invoke helper in `migrateDB` & `migrateDBFast` - Remove direct `ALTER TABLE … DROP INDEX …` calls WHY • Users received `Error 1062 (23000)` when re-creating a soft-deleted model/vendor because the old unique index enforced uniqueness on name alone. • Directly dropping nonexistent indexes caused MySQL `Error 1091` noise. HOW • Composite unique indexes `(model_name, deleted_at)` / `(name, deleted_at)` respect GORM soft deletes. • Safe helper ensures idempotent migrations across environments. RESULT • Users can now delete and re-add the same model or vendor without manual SQL. • Startup migration runs quietly across MySQL, PostgreSQL, and SQLite. • No behavior changes for existing data beyond index updates. TEST 1. Add model “deepseek-chat” → delete (soft) → re-add → success. 2. Add vendor “DeepSeek” → delete (soft) → re-add → success. 3. Restart service twice → no duplicate key or 1091 errors.t0ng7u committed -
✨ * Added full GNU Affero General Public License v3 header at the top of `JSONEditor.js`. * Removed unused `IconCode` and `IconRefresh` imports to eliminate dead code. * Set `closeIcon={null}` and applied `!rounded-md` class for `Banner`, improving visual consistency and preventing unintended dismissal. * Normalized whitespace and line-breaks for better readability and lint compliance.t0ng7u committed -
Merge pull request #1534 from HynoR/feat/je
同語 committed -
t0ng7u committed
-
🐛 Ensure models and vendors can be re-created after soft deletion by switching to composite unique indexes on (name, deleted_at) and cleaning up legacy single-column unique indexes on MySQL. Why - MySQL raised 1062 duplicate key errors when re-adding a soft-deleted model/vendor because the legacy unique index enforced uniqueness on the name column alone (uk_model_name / uk_vendor_name), despite soft deletes. - Users encountered errors such as: - Error 1062 (23000): Duplicate entry 'deepseek-chat' for key 'models.uk_model_name' - Error 1062 (23000): Duplicate entry 'DeepSeek' for key 'vendors.uk_vendor_name' How - Model indices: - model/model_meta.go: - Model.ModelName → gorm: uniqueIndex:uk_model_name,priority:1 - Model.DeletedAt → gorm: index; uniqueIndex:uk_model_name,priority:2 - Vendor indices: - model/vendor_meta.go: - Vendor.Name → gorm: uniqueIndex:uk_vendor_name,priority:1 - Vendor.DeletedAt → gorm: index; uniqueIndex:uk_vendor_name,priority:2 - Migration (automatic, idempotent): - model/main.go (migrateDB, migrateDBFast): - On MySQL, drop legacy single-column unique indexes if present: - ALTER TABLE models DROP INDEX uk_model_name; - ALTER TABLE vendors DROP INDEX uk_vendor_name; - Then run AutoMigrate to create composite unique indexes. - Missing-index errors are ignored to keep the migration safe to run multiple times. Result - Users can delete and re-add the same model/vendor name without manual SQL. - Migration runs automatically at startup; no user action required. - PostgreSQL and SQLite remain unaffected. Files changed - model/model_meta.go - model/vendor_meta.go - model/main.go (migrateDB, migrateDBFast) Testing - Create model "deepseek-chat" → delete (soft) → re-create → succeeds. - Create vendor "DeepSeek" → delete (soft) → re-create → succeeds. Backward compatibility - Data remains intact; only index definitions are updated. - Behavior is unchanged except for fixing the uniqueness constraint with soft deletes.t0ng7u committed -
CaIon committed
-
fix: Gemini embedding model only embeds the first text in a batch
Calcium-Ion committed -
feat: add video preview modal
Calcium-Ion committed -
fix(midjourney): 为 Midjourney 任务添加视频 URL 字段
Calcium-Ion committed -
fix: 当OIDC的AuthUrl带有param时,跳转参数拼接错误
Calcium-Ion committed -
feats:replace GLM-4v authentication headers to support customize api key
Calcium-Ion committed -
📱 * Integrate `useIsMobile` hook to detect mobile devices. * Pagination now automatically: * sets `size="small"` on mobile screens * enables `showQuickJumper` for quicker navigation on small screens * Desktop behaviour remains unchanged.
t0ng7u committed -
✨ This commit updates the quick-fill endpoint templates used in the model and pre-fill group editors: • `EditModelModal.jsx` • `EditPrefillGroupModal.jsx` Key changes 1. Added missing default endpoints defined in `common/endpoint_defaults.go`. - `openai-response` - `gemini` - `jina-rerank` 2. Ensured each template entry includes both `path` and `method` for clarity. Benefits • Provides one-click access to every built-in upstream endpoint, reducing manual input. • Keeps the UI definitions in sync with backend defaults, preventing mismatch errors.
t0ng7u committed -
🔧 Problem Choosing a different token-group in the pricing sidebar only updated the filter but did **not** refresh the displayed group ratio in both the Table (`@table/`) and Card (`@card/`) views. The callback used by the sidebar changed `filterGroup` yet left `selectedGroup` untouched, so ratio columns/cards kept showing the previous value. Solution • `PricingSidebar.jsx` – Accept new prop `handleGroupClick` (from `useModelPricingData`). – Forward this callback to `PricingGroups` (`setFilterGroup={handleGroupClick}`) while retaining `setFilterGroup` for reset logic. – Keeps both `filterGroup` filtering and `selectedGroup` state in sync via the single unified handler. Result Switching groups in the sidebar now simultaneously updates: 1. the model list filtering, and 2. the ratio information shown in both pricing Table and Card views. No UI/UX regression; linter passes.t0ng7u committed -
🎨 The sidebar’s admin section now displays “Channel Management” before “Model Management” to better reflect common user workflows and improve navigation clarity. Details: • Updated `web/src/components/layout/SiderBar.js` – Re-ordered items in `adminItems` array so `channel` precedes `models`. • No logic or route changes; this is purely a UI ordering adjustment. This change enhances usability for administrators by presenting frequently accessed channel settings first.
t0ng7u committed
-
- 08 Aug, 2025 18 commits
-
-
Yincmewy committed
-
HynoR committed
-
CaIon committed
-
CaIon committed
-
feat: 完善格式转换,修复gemini渠道和openai渠道在claude code中使用的问题
Calcium-Ion committed -
CaIon committed
-
t0ng7u committed
-
🔧 Changes 1. ModelPricingTable.jsx • Compute `autoChain` as the intersection of `autoGroups` and the model’s `enable_groups` (order preserved). • Display the chain banner only when `autoChain.length > 0`; banner shows the reduced path (e.g. `a → c → e`). • Dropped obsolete `selectedGroup` prop; all callers updated. 2. ModelDetailSideSheet.jsx / PricingPage.jsx • Removed forwarding of deleted `selectedGroup` prop. Outcome – “Auto group routing” appears only for models that actually participate in the chain, avoiding empty or irrelevant banners. – Codebase simplified by eliminating an unused prop.
t0ng7u committed -
fix: ensure last message is sent successfully
Calcium-Ion committed -
t0ng7u committed
-
🚀 Detailed changes Backend • `controller/pricing.go` now includes `auto_groups` in `/api/pricing` response, sourced from `setting.AutoGroups`. Frontend • `useModelPricingData.js` – Parses `auto_groups` and exposes `autoGroups` state. • `PricingPage.jsx` → `ModelDetailSideSheet.jsx` → `ModelPricingTable.jsx` – Thread `autoGroups` through component tree. • `ModelPricingTable.jsx` – Removes deprecated `getGroupDescription` / `Tooltip`. – Filters out `auto` when building price table rows. – Renders a descriptive banner: “auto 分组调用链路 → auto → group1 → …”, clarifying fallback order without showing prices. • Minor i18n tweak: adds `auto分组调用链路` key for the banner text. Why Users were confused by the “auto” tag appearing alongside regular groups with no price. This change: 1. Makes the routing chain explicit. 2. Keeps the pricing table focused on billable groups. No breaking API changes; existing clients can ignore the new `auto_groups` field.
t0ng7u committed -
CaIon committed
-
CaIon committed
-
CaIon committed
-
- Updated the model list to include various gpt-5 variants. - Enhanced the ConvertOpenAIRequest function to handle gpt-5 model temperature settings based on specific model prefixes. - Adjusted default cache and model ratios for new gpt-5 models.
CaIon committed -
feat: sync gpt-5 model ratio and support new reasoning effort
Calcium-Ion committed -
fix: 修复通配符处理对判断可用渠道的破坏
Calcium-Ion committed -
HynoR committed
-