- 03 Jul, 2025 2 commits
-
-
✨ feat: refactor environment variable initializationCalcium-Ion committed -
✨ ✨ feat: refactor environment variable initialization and introduce new constant types for API and context keysCaIon committed
-
- 02 Jul, 2025 2 commits
-
-
feat: video action to constant
IcedTangerine committed -
🐛 CaIon committed
-
- 01 Jul, 2025 7 commits
- 28 Jun, 2025 3 commits
- 27 Jun, 2025 17 commits
-
-
🐛 🐛 fix: refactor JSON unmarshalling across multiple handlers to use UnmarshalJson and UnmarshalJsonStr for consistency This update replaces instances of DecodeJson and DecodeJsonStr with UnmarshalJson and UnmarshalJsonStr in various relay handlers, enhancing code consistency and clarity in JSON processing. The changes improve maintainability and align with recent refactoring efforts in the codebase.CaIon committed -
🐛 CaIon committed -
skynono committed
-
🐛 CaIon committed -
🐛 🐛 fix: refactor OaiStreamHandler to improve last response handling and streamline response body closureCaIon committed -
🐛 CaIon committed -
✨ This update adds the IOCopyBytesGracefully function to the common package, which simplifies the process of copying response bodies in the OpenAI handlers. It enhances error handling and ensures proper resource management by encapsulating the logic for setting headers and writing response data. The OpenAI handlers have been refactored to utilize this new function, improving code clarity and maintainability.
CaIon committed -
🐛 🐛 fix: replace direct response body closure with common.CloseResponseBodyGracefully for improved error handling This update standardizes the closure of HTTP response bodies across multiple stream handlers, enhancing error management and resource cleanup. The new method ensures that any errors during closure are handled gracefully, preventing potential request termination issues.CaIon committed -
✨ CaIon committed -
feat: 支持即梦视频渠道
Calcium-Ion committed -
🐛 Changes: - Replaced error returns with logging for response body copy failures to prevent early termination of the request. - Ensured that the response body is closed properly after writing to the client. - Added comments to clarify the handling of billing and error reporting after the response has been sent. This update improves error handling and maintains resource management in the OpenAI handler.
CaIon committed -
skynono committed
-
✨ CaIon committed -
feat: add origin kling api
Xyfacai committed -
feat: 优化分页组件
Xyfacai committed -
✨ Previously, the "Fetch Model List" button was visible in the channel-creation view even though it only functions once a channel record exists, leading to user confusion. Changes introduced: • Render the "Fetch Model List" button only when editing an existing channel (`isEdit === true`). • Display an informational Banner in creation mode to remind users that the upstream model list can be fetched after the channel has been created. • Refactored JSX to apply the above conditional rendering without altering existing logic. This update streamlines the creation workflow and sets clearer expectations for users.
t0ng7u committed -
💄 Changes in `web/src/pages/User/EditUser.js`: • Added `rules` to – `Form.Select group`: now required with error “Please select group”. – `Form.InputNumber quota`: now required with error “Please enter quota”. • Added `step={500000}` to quota `InputNumber` for quicker numeric input. • Replaced invalid `readonly` with React-correct `readOnly`, and added descriptive placeholders for all binding-info fields (GitHub/OIDC/WeChat/Email/Telegram). • Removed unused `downloadTextAsFile` import. These updates tighten form validation, improve data entry ergonomics, and restore clear read-only indicators for third-party bindings.t0ng7u committed
-
- 26 Jun, 2025 7 commits
-
-
🐛 Summary: The redemption list occasionally displayed an invalid range such as “Items -9 - 0” and failed to highlight page 1 after a refresh. This was caused by the table being initialized with `currentPage = 0`. Changes: • update `useEffect` to load data starting from page 1 instead of page 0 • refactor `loadRedemptions` to accept `page` (default 1) and sanitize backend‐returned pages (`<= 0` coerced to 1) • keep other logic unchanged Impact: Pagination text and page selection now show correct values on first load or refresh, eliminating negative ranges and ensuring the first page is properly highlighted.
t0ng7u committed -
🐛 Previously, the table did not enter the loading state after performing actions such as deleting, enabling, or disabling a redemption code. This caused a brief period where the UI appeared unresponsive while awaiting the backend response. Changes made: • Added `setLoading(true)` at the beginning of `loadRedemptions` to activate the loading spinner whenever data is (re)fetched. • Added an explanatory code comment to clarify the intent. This improves user experience by clearly indicating that the system is processing and prevents confusion during data refresh operations.
t0ng7u committed -
🎁 SUMMARY • Re-implemented `web/src/pages/Redemption/EditRedemption.js` with Semi Form components, removing legacy local-state handling. • Added `formApiRef` for centralized control; external “Submit” button now triggers `formApi.submitForm()`. • Replaced `Input/AutoComplete/DatePicker` etc. with `<Form.*>` fields, leveraging built-in validation & accessibility. • Field validations: – `name` (create only), `quota`, `count` → required with localized messages. • Expiration-time flow: – Default value `null` (no more 1970-01-01). – When loading data, convert 0 → null, timestamp → Date. – On submit, Date → unix seconds; empty → 0. • Responsive grid layout (`Row/Col`) for tidy alignment. • Added helpful `showClear` & full-width styling for inputs; quota presets retained. • Cleaned unused imports & handlers; fixed linter issues. RESULT The Redemption form now benefits from higher performance, clearer validation, and a cleaner codebase consistent with Semi Design best practices.
t0ng7u committed -
✨ SUMMARY • Re-implemented `EditToken.js` with Semi Form components, eliminating manual state handling and reducing re-renders. • Added grid-based layout; “Expiration Time” selector now sits inline with quick-set buttons for consistent alignment on desktop & mobile. • Introduced dedicated “Quota”, “Access”, “Model Limits”, and “Group” cards for clearer field grouping. • Reworked model-limit interaction: single multi-select list replaces checkbox toggle; backend flag `model_limits_enabled` is now inferred automatically. • Applied required validation rules to critical fields (`name`, `remain_quota`, `group`, `expired_time`, `tokenCount`) with localized messages. • Enabled dynamic option loading for models & groups; default auto-group honoured. • Added unlimited-quota switch, quota presets, and helpful extraText/tooltips. • Removed obsolete `handleInputChange` & `setUnlimitedQuota` helpers; formApi now manages all data flow. • Cleaned imports (e.g., dropped unused `IconUserGroup`), fixed linter errors, and updated submit logic to use `formApi.submitForm()`. RESULT The token creation/editing experience is faster, more accessible, and easier to maintain, fully aligned with Semi Design best practices.
t0ng7u committed -
tbphp committed
-
🎨 t0ng7u committed -
🎨 Summary • Replaced gradient header blocks with compact, neutral headers wrapped in `Avatar` across the following pages: - Channel / EditChannel.js - Channel / EditTagModal.js - Redemption / EditRedemption.js - Token / EditToken.js - User / EditUser.js - User / AddUser.js Details 1. Added `Avatar` import and substituted raw icon elements, assigning semantic colors (`blue`, `green`, `purple`, `orange`, etc.) and consistent 16 px icons for a cleaner look. 2. Removed gradient backgrounds, decorative “blur-ball” shapes, and extra paddings from header containers to achieve a tight, flat design. 3. Stripped all `size="large"` attributes from `Button`, `Input`, `Select`, `DatePicker`, `AutoComplete`, and `Avatar` components, allowing default sizing for better visual density. 4. Eliminated redundant `bodyStyle` background overrides in some `SideSheet` components. 5. No business logic touched; all changes are purely presentational. Result The editing and creation dialogs now share a unified, compact style consistent with the latest design language, improving readability and user experience without altering functionality.
t0ng7u committed
-
- 25 Jun, 2025 2 commits
-
-
🔒 • Add conditional rendering (`!status.self_use_mode_enabled`) to LoginForm • Suppress “Don't have an account? Register” CTA in self-hosted scenarios • Keeps UI clean and prevents unintended user sign-ups under self-use mode • No impact on regular multi-user deployments
t0ng7u committed -
🐛 Login Form used to display the message “未登录或登录已过期,请重新登录” twice because the `useEffect` that inspects the `expired` query parameter was re-executed on every re-render (e.g. language change or React StrictMode’s double-mount in development). ### What's changed • **LoginForm.js** – `useEffect` that shows the toast now has an empty dependency array so it runs only once on initial mount. • Reviewed **PasswordResetConfirm.js**, **PasswordResetForm.js** and **RegisterForm.js** and confirmed they do not contain the same issue; no changes were required. ### Impact Users now see the “session expired” notification exactly once, removing confusion and improving the overall UX.
t0ng7u committed
-