Commit Graph

1885 Commits

Author SHA1 Message Date
Seefs
285d7233a3 feat: sync field 2026-02-22 01:27:58 +08:00
Seefs
81d9173027 feat: redesign param override editing with guided modal and Monaco JSON hints 2026-02-22 01:17:26 +08:00
Seefs
31deb0daac Merge pull request #2973 from RedwindA/feat/modelsdotdev
feat(ratio-sync): support models.dev ratio sync and fix Gemini cache ratios
2026-02-21 14:28:18 +08:00
CaIon
7aa1590be3 fix: add dynamic route for custom OAuth provider callbacks (#2911)
Custom OAuth providers redirect to /oauth/{slug} after authorization,
but only hardcoded provider routes (github, discord, oidc, linuxdo)
existed in the frontend router, causing a 404 for custom providers.
2026-02-20 22:01:21 +08:00
RedwindA
afa70518a4 feat: add models.dev preset support to upstream ratio sync 2026-02-20 12:28:26 +08:00
Calcium-Ion
f77381cc75 Merge pull request #2926 from seefs001/fix/status_code_mapping
fix: support numeric status code mapping in ResetStatusCode
2026-02-12 15:27:36 +08:00
Seefs
cadb4c566d fix: normalize search pagination params to avoid [object Object] 2026-02-12 15:21:51 +08:00
Seefs
30fed3cc5c fix: rename bulk test action to skip manually disabled channels 2026-02-12 15:09:30 +08:00
skynono
30da5bbd08 优化: 任务日志查询速度并显示用户详情 (#2905)
* perf: task log show userinfo

* feat: add Tooltip component to TaskLogsColumnDefs
2026-02-12 14:49:38 +08:00
Weilei
11d5f2ac12 Merge pull request #2916 from worryzyy/feature/add-quota-amount-input
feat(user): add currency amount input with auto quota conversion
2026-02-12 14:48:32 +08:00
Calcium-Ion
eecec32819 feat: add OpenRouter pricing support to upstream ratio sync (#2925) 2026-02-12 14:46:37 +08:00
CaIon
eca4eff5f0 feat: Improve backend multilingual support 2026-02-12 14:29:56 +08:00
RedwindA
b1ef7d1517 feat: add OpenRouter pricing support to upstream ratio sync 2026-02-12 12:57:27 +08:00
Seefs
c01bbd006a feat: logs cache field (#2920)
* feat: logs cache field

* feat: logs cache field

* feat: logs cache field
2026-02-11 21:50:39 +08:00
Oliver Tzeng
6597610395 feat(localization): added zh_TW (#2913)
* feat(localization): added zh_TW

* fixed based on @coderabbitai

* updated false translation for zh_TW

* new workflow

* revert

* fixed a lot of translations

* turned most zh to zh-CN

* fallbacklang

* bruh

* eliminate ALL _

* fix: paths and other miscs thanks @Calcium-Ion

* fixed translation and temp fix for preferencessettings.js

* fixed translation error

* fixed issue about legacy support

* reverted stupid coderabbit's suggestion
2026-02-11 20:37:53 +08:00
dependabot[bot]
8730c47cd0 chore(deps): bump axios from 1.12.0 to 1.13.5 in /web
Bumps [axios](https://github.com/axios/axios) from 1.12.0 to 1.13.5.
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](https://github.com/axios/axios/compare/v1.12.0...v1.13.5)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.13.5
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-11 09:46:29 +00:00
CaIon
8dad2ad1ba simplify language selector display to use text-only labels
Replace icon-based language options with plain text labels in both the
header dropdown and preferences settings to keep the UI clean and
avoid potential controversies. Remove unused country-flag-icons dependency.
2026-02-11 17:44:31 +08:00
Seefs
8f831fcdb3 fix: channel affinity tips 2026-02-08 23:47:23 +08:00
Seefs
19eeeeca4e 改变端点映射文案 2026-02-08 20:12:01 +08:00
Calcium-Ion
7a146a11f5 Merge pull request #2870 from seefs001/feature/cache-creation-configurable
feat: make 5m cache-creation ratio configurable
2026-02-08 00:28:42 +08:00
Calcium-Ion
83a5245bb1 Merge pull request #2875 from seefs001/feature/channel-test-stream
feat: channel test with stream=true
2026-02-08 00:17:07 +08:00
Calcium-Ion
8e1a990b45 Merge pull request #2857 from QuantumNous/feat/custom-oauth
feat(oauth): implement custom OAuth provider
2026-02-08 00:13:20 +08:00
Seefs
5f6f95c7c1 Merge pull request #2874 from MUTED64/main
feat: Force beta=true parameter for Anthropic channel
2026-02-08 00:09:28 +08:00
Calcium-Ion
78ddb85f22 Merge pull request #2852 from seefs001/fix/codex-tips
feat: add Codex channel disclaimer (i18n, OpenAI terms)
2026-02-08 00:07:41 +08:00
Seefs
22d7fdb3ae codex tips 2026-02-08 00:06:06 +08:00
Calcium-Ion
aa31b9c77c Merge pull request #2879 from QuantumNous/fix/subscription-preference-fallback
 chore: Improve subscription billing fallback and UI states
2026-02-07 13:55:37 +08:00
t0ng7u
82138fc0b0 🔔 feat: Add subscription-aware quota notifications and update UI copy
Routes quota alerts through a subscription-specific check when billing from subscriptions, preventing wallet-based thresholds from triggering false warnings.
Updates the notification settings description and localization keys to clarify that both wallet and subscription balances are monitored.
2026-02-07 01:15:59 +08:00
t0ng7u
1cc6bf1b45 chore: Improve subscription billing fallback and UI states
Add a lightweight active-subscription check to skip subscription pre-consume when none exist, reducing unnecessary transactions and locks. In the subscription UI, disable subscription-first options when no active plan is available, show the effective fallback to wallet with a clear notice, and distinguish “invalidated” from “expired” states. Update i18n strings across supported locales to reflect the new messages and status labels.
2026-02-07 00:57:36 +08:00
t0ng7u
158baf0493 refactor(wallet): Top-up layout to embed subscription plans into the recharge card tabs
- Defaulting to subscriptions when available and avoiding initial flash when no plans exist.
- Adjust the wide-screen layout to place wallet and invite sections side by side, simplify the subscription header and controls, and add padding to prevent card borders from clipping.
- Update related i18n strings by adding the new tab label and removing the obsolete subscription blurb.
2026-02-07 00:11:00 +08:00
Seefs
23227e18f9 feat: channel test stream 2026-02-06 21:57:38 +08:00
MUTED64
4332837f05 feat: Force beta=true parameter for Anthropic channel 2026-02-06 21:22:39 +08:00
QuentinHsu
8ec16faf28 feat(topup): hide subscription plans card when no plans available 2026-02-06 20:27:25 +08:00
Seefs
50ee4361d0 feat: make 5m cache-creation ratio configurable 2026-02-06 19:46:59 +08:00
Calcium-Ion
053699fa98 Merge commit from fork
fix: harden token search with pagination, rate limiting and input validation
2026-02-06 17:54:40 +08:00
CaIon
3e1be18310 fix: harden token search with pagination, rate limiting and input validation
- Add configurable per-user token creation limit (max_user_tokens)
- Sanitize search input patterns to prevent expensive queries
- Add per-user search rate limiting (by user ID)
- Add pagination to search endpoint with strict page size cap
- Skip empty search fields instead of matching nothing
- Hide internal errors from API responses
- Fix Interface2String float64 formatting causing config parse failures
- Add float-string fallback in config system for int/uint fields
2026-02-06 17:52:19 +08:00
t0ng7u
ab5456eb10 🔒 fix(security): sanitize AI-generated HTML to prevent XSS in playground
Mitigate XSS vulnerabilities in the playground where AI-generated content
is rendered without sanitization, allowing potential script injection via
prompt injection attacks.

MarkdownRenderer.jsx:
- Replace dangerouslySetInnerHTML with a sandboxed iframe for HTML preview
- Use sandbox="allow-same-origin" to block script execution while allowing
  CSS rendering and iframe height auto-sizing
- Add SandboxedHtmlPreview component with automatic height adjustment

CodeViewer.jsx:
- Add escapeHtml() utility to encode HTML entities before rendering
- Rewrite highlightJson() to process tokens iteratively, escaping each
  token and structural text before wrapping in syntax highlighting spans
- Escape non-JSON and very-large content paths that previously bypassed
  sanitization
- Update linkRegex to correctly match URLs containing &amp; entities

These changes only affect the playground (AI output rendering). Admin-
configured content (home page, about page, footer, notices) remains
unaffected as they use separate code paths and are within the trusted
admin boundary.
2026-02-06 15:10:05 +08:00
CaIon
9a7a29eed8 Remove deprecated components and hooks 2026-02-05 23:04:49 +08:00
CaIon
2567cff6c8 fix(oauth): enhance error handling and transaction management for OAuth user creation and binding
- Improve error handling in DeleteCustomOAuthProvider to log and return errors when fetching binding counts.
- Refactor user creation and OAuth binding logic to use transactions for atomic operations, ensuring data integrity.
- Add unique constraints to UserOAuthBinding model to prevent duplicate bindings.
- Enhance GitHub OAuth provider error logging for non-200 responses.
- Update AccountManagement component to provide clearer error messages on API failures.
2026-02-05 21:48:05 +08:00
CaIon
af54ea85d2 feat(oauth): implement custom OAuth provider management #1106
- Add support for custom OAuth providers, including creation, retrieval, updating, and deletion.
- Introduce new model and controller for managing custom OAuth providers.
- Enhance existing OAuth logic to accommodate custom providers.
- Update API routes for custom OAuth provider management.
- Include i18n support for custom OAuth-related messages.
2026-02-05 21:18:43 +08:00
CaIon
df6c669e73 refactor: unify OAuth providers with i18n support
- Introduce Provider interface pattern for standard OAuth protocols
- Create unified controller/oauth.go with common OAuth logic
- Add OAuthError type for translatable error messages
- Add i18n keys and translations (zh/en) for OAuth messages
- Use common.ApiErrorI18n/ApiSuccessI18n for consistent responses
- Preserve backward compatibility for existing routes and data
2026-02-05 20:21:38 +08:00
CaIon
1d611d89d2 remove: drop support for claude-2 and claude-1 series models
- Remove claude-instant-1.2, claude-2, claude-2.0, claude-2.1 from model lists
- Remove /v1/complete endpoint support (legacy completion API)
- Remove RequestModeCompletion and related code paths
- Simplify handler functions by removing requestMode parameter
- Update all channel adaptors that referenced claude handlers
2026-02-05 17:20:46 +08:00
Seefs
b5b681398a fix: restore log content column 2026-02-05 16:59:53 +08:00
Seefs
b6350ce501 feat: add Codex channel disclaimer (i18n, OpenAI terms) 2026-02-05 16:36:52 +08:00
Calcium-Ion
3c7687f952 Merge pull request #2842 from QuantumNous/feat/backend-i18n
feat: backend i18n
2026-02-05 01:57:44 +08:00
Calcium-Ion
a21ee5f9ed Merge pull request #2840 from seefs001/feature/header-regex-override
feat: 支持基于Go Regex规则和全量的请求体透传
2026-02-05 01:56:27 +08:00
Calcium-Ion
acfcff368a Merge pull request #2839 from QuantumNous/fix/sidebar-scroll-dvh
🐛 fix: sidebar scroll on mobile dynamic viewport
2026-02-05 01:46:32 +08:00
Seefs
f3e6585441 feat: add header passthrough 2026-02-05 01:43:49 +08:00
t0ng7u
89a10cf3f7 🐛 fix: sidebar scroll on mobile dynamic viewport
Use dynamic viewport height to prevent sidebar scroll lock in mobile browsers
Harden sidebar scroll container with min-height and momentum scrolling
2026-02-05 01:42:24 +08:00
t0ng7u
a4617097fb fix: Improve subscription payment handling and card layout consistency
Unify Epay subscription response format with top-up flow, and harden frontend error handling to avoid object-to-string issues. Refine subscription plan cards layout to be wider, left-aligned, and visually consistent across breakpoints.
2026-02-05 01:34:04 +08:00
CaIon
67613e0642 fix(i18n): prioritize user settings over Accept-Language header
The i18n middleware runs before UserAuth, so user settings weren't
available when language was detected. Now GetLangFromContext checks
user settings first (set by UserAuth) before falling back to the
language set by middleware or Accept-Language header.
2026-02-05 00:37:18 +08:00