- 18 Jul, 2025 8 commits
-
-
fix: mySQL does not support default false
Calcium-Ion committed -
feat: video priority use origin model name
Calcium-Ion committed -
fix: default request ID to 'SYSTEM' for background tasks
Calcium-Ion committed -
fix: KlingText2VideoRequest image and model_name
Calcium-Ion committed -
feat: 增加即梦生图功能
Calcium-Ion committed -
feitianbubu committed
-
feitianbubu committed
-
t0ng7u committed
-
- 17 Jul, 2025 15 commits
-
-
Xyfacai committed
-
📚 A new Markdown file `docs/api/web_api.md` has been added that documents all backend REST endpoints used by the Web UI. Details: • Lists every `/api`, `/dashboard`, and `/v1/dashboard` route relevant to the Web front-end • Excludes every Relay-specific path to keep scope focused on Web operations • Groups endpoints by functional module (initialisation, public info, user, channel, token, logging, etc.) • Specifies HTTP method, path, required auth level, and concise description for each entry • Includes an auth-level legend and update-date placeholder for future maintenance No application logic was modified; this is documentation-only and improves developer onboarding and API discoverability.
t0ng7u committed -
🌐 Backend - setting/payment.go: introduce default `USDExchangeRate` (7.3) - model/option.go: • inject `USDExchangeRate` into `InitOptionMap` • persist & sync value in `updateOptionMap` - controller/misc.go: expose `usd_exchange_rate` via `/api/status` Frontend - OperationSetting.js & SettingsGeneral.js: • extend state/inputs with `USDExchangeRate` • add form field “美元汇率 (non-top-up rate, pricing only)” - ModelPricing.js already consumes `status.usd_exchange_rate`; no change needed API - Administrators can update the rate via `PUT /api/option` (key: `USDExchangeRate`) - All clients receive the latest rate through `GET /api/status` This closes the end-to-end flow for displaying model prices in both USD and CNY based on a configurable exchange rate.
t0ng7u committed -
CaIon committed
-
CaIon committed
-
💸 * Introduced `showWithRecharge` switch in the actions bar to display model prices based on recharge cost. * Added a `Select` dropdown (USD / CNY) that appears only when the recharge-price mode is enabled. * Implemented `displayPrice()` helper to: * Convert USD prices to recharge prices using `status.price` and `status.usd_exchange_rate`. * Format output according to the selected currency. * Updated price rendering for both quota types to use the new helper and respect K/M unit conversion. * Removed the old currency switch from the header, retaining only the K/M unit toggle. * Extended `SearchAndActions` memo dependencies; imported `Select` from Semi UI. * Minor refactors and comment clean-up. No breaking changes.
t0ng7u committed -
CaIon committed
-
CaIon committed
-
CaIon committed
-
fix: usage cost(any) to support claude and gemini
Calcium-Ion committed -
fix: 修复Gemini渠道的向量模型测试
Calcium-Ion committed -
feat: 改进 RequestOpenAI2ClaudeMessage 和添加 claude web search 计费
Calcium-Ion committed -
fix: playground chat
Calcium-Ion committed -
💱 * Introduced a currency switch to toggle prices between USD and CNY. * CNY prices are calculated by multiplying USD prices with the site-wide `price` rate from `/api/status`. * Added a second switch to display prices per 1 M tokens or per 1 K tokens. * When “K” is selected, prices are divided by 1 000 and labels are updated accordingly. * Extended component state with `currency` and `tokenUnit` variables. * Integrated `StatusContext` to retrieve and memoize the current exchange rate. * Updated price rendering logic and labels to reflect selected currency and token unit. * Minor UI tweaks: kept Switch components compact and aligned with the table header. No breaking changes.
t0ng7u committed -
fix xai-non-stream
IcedTangerine committed
-
- 16 Jul, 2025 3 commits
-
-
feitianbubu committed
-
feitianbubu committed
-
feitianbubu committed
-
- 15 Jul, 2025 14 commits
-
-
-
Removed unused `userState` and `statusState` bindings from `PageLayout.js` while retaining their dispatch functions for authentication and status management. Confirmed correct use of array destructuring to skip the unused toggle function returned by `useSidebarCollapsed`. This change introduces no functional differences and solely improves readability and maintainability.
t0ng7u committed -
🐛 - Added a server-snapshot fallback (`() => false`) to `useIsMobile` to ensure consistent results between server-side rendering and the browser, preventing hydration mismatches. - Removed a redundant ternary in `PageLayout` sidebar styles, replacing `isMobile ? 'fixed' : 'fixed'` with a single `'fixed'` value for clarity. These changes improve SSR reliability and tidy up inline styles without affecting runtime functionality.
t0ng7u committed -
🎨 * Replaced the handmade collapse/expand div with Semi UI `<Button>` * Uses `theme="outline"` and `type="tertiary"` for outlined style * Shows icon + text when sidebar is expanded, icon-only when collapsed * Added `iconOnly` prop and dynamic padding to remove extra text area in collapsed state * Ensured full-width layout with consistent padding for both states * Updated imports to include `Button` from `@douyinfe/semi-ui` * Maintains tooltip content for accessibility and better UX
t0ng7u committed -
♻ * Removed `prompt` prop from `Loading` and switched to built-in Spin indicator with default size `small` * Dropped overlay background to make the spinner more reusable * Replaced custom text span; callers can now supply tip via their own UI if needed * Cleaned up `OAuth2Callback`: - Eliminated unused state/variables - Added MAX_RETRIES with incremental back-off - Centralized error handling via try/catch - Streamlined navigation logic on success/failure - Updated imports to match new Loading signature BREAKING CHANGE: `Loading` no longer accepts a `prompt` prop. Update all invocations accordingly.
t0ng7u committed -
✨ The header’s skeleton screen now remains visible for at least 500 ms and only disappears after `/api/status` has successfully populated `StatusContext`. Changes include: • Added `loadingStartRef` to record the mount time. • Reworked loading effect to compute the remaining delay based on the elapsed time and the presence of real status data. • Removed the previous fixed‐timer logic, preventing premature content rendering and improving perceived loading consistency across pages.
t0ng7u committed -
📱 Adds a smoother mobile experience by automatically closing the sidebar drawer once a menu item is tapped. ### Details * SiderBar * Introduce `onNavigate` prop and invoke it on every `<Link>` click. * Remove unused `useIsMobile` hook and related `isMobile` variable. * PageLayout * Pass `onNavigate` callback to `SiderBar` that sets `drawerOpen` to `false` when on mobile, ensuring the sidebar collapses after navigation. This eliminates the “isMobile declared but never used” warning and aligns the behaviour of the sidebar with common mobile UX expectations.t0ng7u committed -
💄 Replaced every instance of <div className="mt-[64px]"> with <div className="mt-[64px] px-2"> to provide uniform horizontal padding across pages. No functional changes—visual layout improvement only.
t0ng7u committed -
🖌 Add a branded console log to `web/src/index.js` that prints: “We
❤ NewAPI Github: https://github.com/QuantumNous/new-api” Changes include: • Remove the `NODE_ENV` guard so the banner appears in both development and production. • Increase font size to 24 px and keep “NewAPI” in bold green for stronger branding. This is a purely visual/developer-experience enhancement—no runtime behavior is affected.t0ng7u committed -
🔧 Add `future` prop to `BrowserRouter` in `web/src/index.js` with `v7_startTransition` and `v7_relativeSplatPath` turned on. This opts the app into upcoming React Router v7 behavior, removes console warnings, and readies the codebase for a smoother future upgrade. No runtime behavior changes; developer-experience improvement only.
t0ng7u committed -
📱 BREAKING CHANGE: helpers/utils.js no longer exports `isMobile()`. Any external code that relied on this function must switch to the `useIsMobile` React hook. Summary ------- 1. Deleted the obsolete `isMobile()` function from helpers/utils.js. 2. Introduced `MOBILE_BREAKPOINT` constant and `matchMedia`-based detection for non-React contexts. 3. Reworked toast positioning logic in utils.js to rely on `matchMedia`. 4. Updated render.js: • Removed isMobile import. • Added MOBILE_BREAKPOINT detection in `truncateText`. 5. Migrated every page/component to the `useIsMobile` hook: • Layout: HeaderBar, PageLayout, SiderBar • Pages: Home, Detail, Playground, User (Add/Edit), Token, Channel, Redemption, Ratio Sync • Components: ChannelsTable, ChannelSelectorModal, ConflictConfirmModal 6. Purged all remaining `isMobile()` calls and legacy imports. 7. Added missing `const isMobile = useIsMobile()` declarations where required. Benefits -------- • Unifies mobile detection with a React-friendly hook. • Eliminates duplicated logic and improves maintainability. • Keeps non-React helpers lightweight by using `matchMedia` directly.
t0ng7u committed -
creamlike1024 committed
-
🚀 Summary ------- 1. Introduced a reusable `toBoolean` utility (`web/src/helpers/boolean.js`) that converts strings (`'true'/'false'`, `'1'/'0'`), numbers, and native booleans to a proper boolean. 2. Re-exported `toBoolean` via `web/src/helpers/index.js` for simple one-line imports. Refactors --------- • Systematically replaced all legacy `item.value === 'true'` checks with `toBoolean(item.value)` in the following components: – `SystemSetting.js` – `OperationSetting.js` – `PaymentSetting.js` – `RatioSetting.js` – `RateLimitSetting.js` – `ModelSetting.js` – `DrawingSetting.js` – `DashboardSetting.js` – `ChatsSetting.js` • Unified import statements to `import { …, toBoolean } from '../../helpers';` removing redundant `../../helpers/boolean` paths. Why --- SQLite sometimes returns `1/0` or boolean literals instead of the string `'true'/'false'`, causing checkbox states to reset on page reload. The new utility guarantees consistent boolean parsing, fixing the issue across all environments (SQLite, MySQL, etc.) while improving code clarity.t0ng7u committed -
creamlike1024 committed
-