- 23 Jun, 2025 2 commits
-
-
🐛 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 -
🎛 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
-
- 22 Jun, 2025 12 commits
-
-
🍭 t0ng7u committed -
t0ng7u committed
-
✨ Summary • Added per-table “Compact / Adaptive” view toggle to all major table components (Tokens, Channels, Logs, MjLogs, TaskLogs, Redemptions, Users). • Persist user preference in a single localStorage entry (`table_compact_modes`) instead of scattered keys. Details 1. utils.js • Re-implemented `getTableCompactMode` / `setTableCompactMode` to read & write a shared JSON object. • Imported storage-key constant from `constants`. 2. hooks/useTableCompactMode.js • Hook now consumes the unified helpers and listens to `storage` events via the shared key constant. 3. constants • Added `TABLE_COMPACT_MODES_KEY` to `common.constant.js` and re-exported via `constants/index.js`. 4. Table components • Integrated `useTableCompactMode('<tableName>')`. • Dynamically remove `fixed: 'right'` column and horizontal `scroll` when in compact mode. • UI: toggle button placed at card title’s right; responsive layout on small screens. 5. UI polish • Replaced all lucide-react `List`/`ListIcon` usages with Semi UI `IconDescend` for consistency. • Restored correct icons where `Hash` was intended (TaskLogsTable). Benefits • Consistent UX for switching list density across the app. • Cleaner localStorage footprint with easier future maintenance.t0ng7u committed -
feat: support user-group-specific for mj and task
Calcium-Ion committed -
CaIon committed
-
CaIon committed
-
CaIon committed
-
✨ This commit enhances the “Copy Selected Tokens to Clipboard” feature in `TokensTable.js` by introducing a user-friendly modal that lets users choose how they want to copy tokens. Changes made • Replaced direct copy logic with a `Modal.info` dialog. • Modal displays the prompt “Please choose your copy mode”. • Added two buttons in a custom footer: – **Name + Secret**: copies `tokenName sk-tokenKey`. – **Secret Only**: copies `sk-tokenKey`. • Each button triggers the copy operation and closes the dialog. • Maintains existing validations (e.g., selection check, clipboard feedback). Benefits • Gives users clear control over copy format, reducing manual editing. • Aligns UI with Semi UI’s best practices via custom modal footer. No backend/API changes are involved; all updates are limited to the front-end UI logic.
t0ng7u committed -
t0ng7u committed
-
🗑 • Back-end • model/token.go • Add `BatchDeleteTokens(ids []int, userId int)` – transactional DB removal + async Redis cache cleanup. • controller/token.go • Introduce `TokenBatch` DTO and `DeleteTokenBatch` handler calling the model layer; returns amount deleted. • router/api-router.go • Register `POST /api/token/batch` route (user-scoped). • Front-end (TokensTable.js) • Replace per-token deletion loops with single request to `/api/token/batch`. • Display dynamic i18n message: “Deleted {{count}} tokens!”. • Add modal confirmation: • Title “Batch delete token”. • Content “Are you sure you want to delete the selected {{count}} tokens?”. • UI/UX tweaks • Responsive button group (flex-wrap, mobile line-break). • Clear `selectedKeys` after refresh / successful deletion to avoid ghost selections. • i18n • Ensure placeholder style matches translation keys (`{{count}}`). This commit delivers efficient, scalable token management and an improved user experience across devices.t0ng7u committed -
creamlike1024 committed
-
creamlike1024 committed
-
- 21 Jun, 2025 21 commits
-
-
CaIon committed
-
feat: enhance token usage details for upstream OpenRouter
Calcium-Ion committed -
feat: openrouter format for claude request
Calcium-Ion committed -
CaIon committed
-
✨ CaIon committed -
feat: add placeholder for kling AccessKey and SecretKey
Calcium-Ion committed -
t0ng7u committed
-
📝 📝 feat(SettingsAnnouncements/SettingsFAQ): update placeholders & success texts, add Markdown/HTML hint • SettingsAnnouncements.js – Placeholder now states “Supports Markdown/HTML” for both small & expanded editors – Success/alert messages unified to use Chinese quotation marks • SettingsFAQ.js – Answer textarea placeholder updated with Markdown/HTML support note – Unified success/alert messages punctuation These tweaks clarify rich-text support and keep UI copy consistent.t0ng7u committed -
✨ * Added `Tooltip` component and ellipsis style for “question” & “answer” columns * Keeps table compact while showing full content on hover * Updated success messages punctuation for consistency
t0ng7u committed -
✨ * Added “Expand Edit” button with `Maximize2` icon to open a large modal editor * Introduced full-screen `TextArea` modal; content syncs back to main form via Form API * Switched to correct `TextArea` import from Semi UI to fix invalid element error * Implemented ellipsis & `Tooltip` for “content” and “extra” columns to keep table concise * Added state management (`showContentModal`, `formApiRef`) and related handlers * Updated success messages & punctuation for consistency
t0ng7u committed -
✨ - Introduced `isNoThinkingRequest` and `trimModelThinking` functions to manage model names and thinking configurations. - Updated `GeminiHelper` to conditionally adjust the model name based on the thinking budget and request settings. - Refactored `ThinkingAdaptor` to streamline the integration of thinking capabilities into Gemini requests. - Cleaned up commented-out code in `FetchUpstreamModels` for clarity. These changes improve the handling of model configurations and enhance the adaptability of the Gemini relay system.
CaIon committed -
skynono committed
-
skynono committed
-
t0ng7u committed
-
✨ Backend - controller/ratio_sync.go • Parse /api/pricing response and convert to ratio / price maps. • Introduce confidence heuristic (model_ratio = 37.5 && completion_ratio = 1) to flag unreliable data. • Include confidence map when building differences and filter “same”/empty entries. - dto/ratio_sync.go • Add `ID` to UpstreamDTO, `upstreams` to UpstreamRequest, and `Confidence` to DifferenceItem. Frontend - ChannelSelectorModal.js • Re-implement with table layout, pagination, search, endpoint-type selector and mobile support. - UpstreamRatioSync.js • Send full upstream objects, add ratio-type filter, confidence badges/tooltips, retain endpoints. • Leverage ChannelSelectorModal’s pagination reset. - ChannelsTable.js – fix tag color for disabled status. - en.json – add translations for new UI labels. Motivation These changes let users sync model ratios / prices from different upstream endpoints and visually identify potentially unreliable data, improving operational safety and flexibility.
t0ng7u committed -
feat: conditionally set Gemini ThinkingBudget based on MaxOutputTokens
Calcium-Ion committed -
✨ CaIon committed -
CaIon committed
-
🎨 * Moved `GroupRatioSettings` component inside the existing Tabs as a new **Group Ratios** tab. * Removed the standalone `Card` that previously wrapped `GroupRatioSettings`. * Re-formatted JSX props for `ModelRatioSettings` and `GroupRatioSettings` to improve readability. * Consolidates all ratio-related settings into a single tabbed view for a cleaner and more consistent UI.
t0ng7u committed -
creamlike1024 committed
-
creamlike1024 committed
-
- 20 Jun, 2025 5 commits
-
-
✨ Add reverse-chronological sorting for the announcements list so that the newest items appear first in the dashboard. No API changes; this only affects front-end display and user notifications.
t0ng7u committed -
Apple\Apple committed
-
✨ • HeaderBar - Added dynamic unread badge; click now opens NoticeModal on “System Announcements” tab - Passes `defaultTab` and `unreadKeys` props to NoticeModal for contextual behaviour • NoticeModal - Introduced Tabs inside the modal title with Lucide icons (Bell, Megaphone) - Displays in-app notice (markdown) and system announcements separately - Highlights unread announcements with “shine” text animation - Accepts new props `defaultTab`, `unreadKeys` to control initial tab and highlight logic • CSS (index.css) - Implemented `sweep-shine` keyframes and `.shine-text` utility for left-to-right glow - Added dark-mode variant for better contrast - Ensured cross-browser support with standard `background-clip` Overall, users now see an unread counter, are directed to new announcements automatically, and benefit from an eye-catching glow effect that works in both light and dark themes.
Apple\Apple committed -
feat: add moonshot(kimi) update balance
Calcium-Ion committed -
refactor: optimize Dockerfile apk usage
Calcium-Ion committed
-