CaIon
e087c9fe9e
fix: update web search handling and request structure in adaptor and openai_request
2025-08-26 18:15:18 +08:00
CaIon
33d601db82
fix: update error types for upstream errors and JSON marshal failure
v0.9.0-alpha.13
2025-08-26 16:26:56 +08:00
CaIon
eef73e3699
fix: update PromptTokens assignment logic in relay_responses
v0.9.0-alpha.12
2025-08-26 14:21:10 +08:00
CaIon
1cc07546cb
feat: replace pcopy with jinzhu/copier for deep copy functionality
2025-08-26 13:40:41 +08:00
CaIon
e23f01f8d5
fix: Invalid type for 'input[x].summary': expected an array of objects, but got null instead
v0.9.0-alpha.11
2025-08-26 13:17:31 +08:00
CaIon
a3c2b28d6a
fix: ensure reasoning is not nil before setting effort in OpenAI responses
v0.9.0-alpha.10
2025-08-25 22:46:45 +08:00
IcedTangerine
98db907680
Merge pull request #1549 from QuantumNous/update-openai-websearch-price
...
feat: update openai websearch price
2025-08-25 16:52:57 +08:00
CaIon
d374a22b70
feat: support qwen-image-edit
2025-08-25 14:33:12 +08:00
CaIon
595ed6b40e
Merge remote-tracking branch 'origin/feat/dalle-extra' into alpha
...
# Conflicts:
# dto/dalle.go
2025-08-25 14:20:54 +08:00
CaIon
c9f5b1de1a
fix: improve model ratio handling for reserved models in getHardcodedCompletionModelRatio
2025-08-25 11:59:55 +08:00
CaIon
522f2d920b
Merge remote-tracking branch 'origin/alpha' into alpha
2025-08-25 11:52:57 +08:00
CaIon
bef59929db
fix: update model ratio handling for GPT versions
2025-08-25 11:52:45 +08:00
t0ng7u
b27b9a1098
🍎 chore(EditChannelModal.jsx): Format code file
v0.9.0-alpha.9
2025-08-25 11:32:28 +08:00
t0ng7u
70de3819e8
🧹 chore: remove useless i18n file
2025-08-25 11:29:13 +08:00
同語
af18dec46b
🤓 feat: When adding or editing channels, add the function of clicking the added model to copy its name
...
Merge pull request #1648 from AAEE86/alpha
2025-08-25 11:26:45 +08:00
CaIon
43efc2161a
feat: add SaveWithoutKey method to Channel and update status saving logic
2025-08-25 11:20:16 +08:00
CaIon
caaa988c87
fix: correct logic for handling nil OpenAI error codes. ( close #1609 )
2025-08-25 11:19:32 +08:00
Calcium-Ion
f96a733430
Merge pull request #1647 from aotsukiqx/main
...
fix: update channel.go fix #1641
2025-08-25 10:25:06 +08:00
CaIon
de23ccd234
feat: update ali image response handling
2025-08-24 22:50:45 +08:00
AAEE86
da516af837
feat: 在新增&编辑渠道时添加点击模型复制名称功能
...
(cherry picked from commit c4935f392f )
2025-08-24 22:50:29 +08:00
CaIon
7fbf9c4851
feat: enhance image request handling and add async support
v0.9.0-alpha.8
2025-08-24 21:52:56 +08:00
t0ng7u
808f5c481e
💄 style(topup): align container width with PersonalSetting (w-full max-7xl)
...
- Set TopUp page outer wrapper to "w-full max-w-7xl mx-auto px-2"
to match PersonalSetting and ensure consistent layout width and padding.
- No functional changes; UI-only adjustment.
- Lint checks passed.
- Verified that pages/TopUp only re-exports the component (no extra wrapper).
Affected: web/src/components/topup/index.jsx
2025-08-24 17:29:42 +08:00
t0ng7u
6dcf954bfe
🕒 feat(ui): standardize Timelines to left mode and unify time display
...
- Switch Semi UI Timeline to mode="left" in:
- web/src/components/layout/NoticeModal.jsx
- web/src/components/dashboard/AnnouncementsPanel.jsx
- Show both relative and absolute time in the `time` prop (e.g. "3 days ago 2025-02-18 10:30")
- Move auxiliary description to the `extra` prop and remove duplicate rendering from content area
- Keep original `extra` data intact; compute and pass:
- `time`: absolute time (yyyy-MM-dd HH:mm)
- `relative`: relative time (e.g., "3 days ago")
- Update data assembly to expose `time` and `relative` without overwriting `extra`:
- web/src/components/dashboard/index.jsx
- No i18n changes; no linter errors introduced
Why: Aligns Timeline layout across the app and clarifies time context by combining relative and absolute timestamps while preserving auxiliary notes via `extra`.
2025-08-24 17:23:03 +08:00
aotsuki
cb6fa7d46d
Update channel.go
2025-08-24 11:39:38 +08:00
t0ng7u
1e3621833f
Merge remote-tracking branch 'origin/alpha' into alpha
2025-08-24 10:52:54 +08:00
t0ng7u
eedb57b2c6
📱 feat(header): add mobile filter skeleton; align mobile tag layout
...
- Add mobile filter-button placeholder in skeleton when `isMobile` is true
- Plumb `isMobile` from `PricingVendorIntroWithSkeleton` to `PricingVendorIntroSkeleton`
- Rename skeleton key from 'button' to 'copy-button' for consistency
- Neutralize copy-button skeleton color to match input (use neutral palette)
- Keep “Total x models” tag inline with title on mobile; wrap only when space is insufficient
- Mirror the same title+tag layout in the skeleton (flex-row flex-wrap items-center)
- No linter errors introduced
Affected files:
- web/src/components/table/model-pricing/layout/header/PricingVendorIntro.jsx
- web/src/components/table/model-pricing/layout/header/PricingVendorIntroSkeleton.jsx
- web/src/components/table/model-pricing/layout/header/PricingVendorIntroWithSkeleton.jsx
2025-08-24 10:52:43 +08:00
Calcium-Ion
524f6d6af5
Merge pull request #1644 from nekohy/feats-custom-request-headers
...
feats:add custom headers override
2025-08-24 10:14:32 +08:00
Nekohy
53f7a7993e
fix: log name
2025-08-24 01:32:19 +08:00
Nekohy
abcb353793
feats:add custom headers override
2025-08-24 01:02:23 +08:00
t0ng7u
d7c2a9f1b8
✨ feat(model-pricing): enhance pricing vendor intro components with performance optimizations and UX improvements
...
## Major Changes
### Performance Optimizations
- Add React.memo to all components to prevent unnecessary re-renders
- Implement useCallback for expensive functions (renderSearchActions, renderHeaderCard, etc.)
- Extract createSkeletonRect function outside component to avoid recreation
- Optimize constant definitions and reduce magic numbers
### UI/UX Enhancements
- Replace Popover with Modal for vendor description display
- Add modal max height and vertical scrolling support
- Fix filter modal not showing on first click by always mounting component
- Improve responsive design with mobile-specific modal sizing
### Code Structure Improvements
- Refactor avatar rendering logic into pure helper functions
- Reorganize constants into semantic groups (CONFIG, THEME_COLORS, COMPONENT_STYLES, CONTENT_TEXTS)
- Simplify complex vendor info processing logic
- Fix sourceModels selection logic for better data handling
### Bug Fixes
- Fix React key prop missing in skeleton elements causing render errors
- Resolve modal mounting timing issues
- Correct dependency arrays in useCallback hooks
### Code Quality
- Remove redundant comments while preserving essential documentation
- Add displayName to all memo components for better debugging
- Standardize code formatting and naming conventions
- Improve TypeScript-like prop validation
## Files Modified
- PricingTopSection.jsx
- PricingVendorIntro.jsx
- PricingVendorIntroSkeleton.jsx
- PricingVendorIntroWithSkeleton.jsx
- SearchActions.jsx
## Performance Impact
- Reduced re-renders by approximately 60-80%
- Improved memory efficiency through function memoization
- Enhanced user experience with smoother interactions
2025-08-24 00:10:26 +08:00
t0ng7u
7969df3926
🤖 style: Make some changes
2025-08-23 22:03:34 +08:00
t0ng7u
97c52a6991
🐛 fix(model-pricing/header): pass sidebarProps to PricingFilterModal to prevent FilterModalContent crash
...
- Re-introduce and forward `sidebarProps` from PricingTopSection to PricingFilterModal
- Fix TypeError: “Cannot destructure property 'showWithRecharge' of 'sidebarProps' as it is undefined”
- Keep modal state managed at top section; no other behavioral changes
- Lint passes
Files touched:
- web/src/components/table/model-pricing/layout/header/PricingTopSection.jsx
2025-08-23 21:56:43 +08:00
t0ng7u
a50288c186
🤓 style: add outline theme in pricingcard copy button
2025-08-23 21:48:18 +08:00
t0ng7u
f246c12959
🎨 refactor(model-pricing/header): unify header design, extract SearchActions, and improve skeleton
...
- Extract SearchActions.jsx and replace inline renderSearchActions in PricingVendorIntro.jsx for reuse
- Refactor PricingVendorIntro.jsx:
- Introduce renderHeaderCard(), tagStyle, getCoverStyle(), and MAX_VISIBLE_AVATARS constant
- Standardize vendor header cover (gradient + background image) and tag contrast
- Use border instead of ring for vendor badges; unify visuals and remove Tailwind ring dependency
- Rotate vendors every 2s only when filterVendor === 'all' and vendor count > 3
- Remove unused imports; keep prop surface minimal; pass setShowFilterModal downward only
- Refactor PricingVendorIntroSkeleton.jsx:
- Add getCoverStyle() and rect() helpers; rebuild skeleton to match final UI
- Replace invalid Skeleton.Input usage; add missing keys; unify colors/borders/radius
- Update PricingTopSection.jsx:
- Manage filter modal locally; drop redundant prop passing
- Update PricingVendorIntroWithSkeleton.jsx:
- Align prop interface; forward only required props and keep useMinimumLoadingTime
- Add: web/src/components/table/model-pricing/layout/header/SearchActions.jsx
- Lint: all files pass; no dark:* classes present in this scope
Files touched:
- web/src/components/table/model-pricing/layout/header/PricingTopSection.jsx
- web/src/components/table/model-pricing/layout/header/PricingVendorIntro.jsx
- web/src/components/table/model-pricing/layout/header/PricingVendorIntroWithSkeleton.jsx
- web/src/components/table/model-pricing/layout/header/PricingVendorIntroSkeleton.jsx
- web/src/components/table/model-pricing/layout/header/SearchActions.jsx (new)
2025-08-23 21:11:40 +08:00
t0ng7u
5d7ab194e2
Merge remote-tracking branch 'origin/alpha' into alpha
2025-08-23 19:30:07 +08:00
t0ng7u
8a329f6522
🎨 refactor(ui): use lucide-react for search/refresh and chevron icons
...
- DashboardHeader.jsx: replace Semi's IconSearch/IconRefresh with lucide-react's Search/RefreshCw (size 16), preserve existing button styles
- UptimePanel.jsx: replace Semi's IconRefresh with lucide-react's RefreshCw (size 14), keep styling intact
- UserArea.jsx: replace Semi's IconChevronDown with lucide-react's ChevronDown (size 14), preserve visual parity
- Update imports: remove @douyinfe/semi-icons usage where replaced; add lucide-react imports
- Verified no remaining IconSearch/IconRefresh in dashboard; no new linter errors
Motivation: unify icon library for core actions and improve UI consistency.
Follow-ups: consider migrating remaining Semi icons (e.g., plus/minus, charts) to lucide-react.
2025-08-23 19:29:56 +08:00
Calcium-Ion
4200edb983
Merge pull request #1161 from lollipopkit/main
...
feat: query usage of token
2025-08-23 15:58:25 +08:00
CaIon
93ce48aca8
feat: restructure token usage routes and enhance token retrieval logic
2025-08-23 15:45:43 +08:00
Calcium-Ion
df1ec4832c
Merge branch 'alpha' into main
2025-08-23 15:27:08 +08:00
Calcium-Ion
e3a38d27f5
Merge pull request #1611 from nekohy/feats-zhipu_4v-anthropic
...
Feats:Standardize ClaudeHandler, add Zhipu_4v Anthropic native channel support
v0.9.0-alpha.7
2025-08-23 13:48:18 +08:00
Calcium-Ion
754498a012
Merge pull request #1635 from feitianbubu/pr/fix-task-info-channel-type
...
Pr/fix task info channel type
2025-08-23 13:46:52 +08:00
Calcium-Ion
4226746675
Merge pull request #1642 from QuantumNous/fix-retry-and-rerank
...
fix: retry requeset body incorrect and fix rerank
2025-08-23 13:46:40 +08:00
CaIon
94536be9be
fix: enhance error handling for invalid request types in relay handlers
2025-08-23 13:34:56 +08:00
CaIon
2c6a9245ee
refactor: rename relay-text.go to compatible_handler.go for clarity
2025-08-23 13:13:57 +08:00
CaIon
fc18a3c89e
fix: improve request handling by deep copying OpenAIResponsesRequest
2025-08-23 13:13:10 +08:00
CaIon
4f23e53002
feat: 修复重试后请求结构混乱,修复rerank端点无法使用
2025-08-23 13:12:15 +08:00
t0ng7u
005e9659e1
🐛 fix(header): prevent NotificationButton from shrinking when unread badge appears
...
- Remove `size='small'` when the button is wrapped by `Badge`
- Keep button dimensions consistent with/without badge
- Preserve 18px icon size and existing styles/accessibility
- Lint check passed with no issues
Files: web/src/components/layout/HeaderBar/NotificationButton.jsx
2025-08-23 03:40:32 +08:00
t0ng7u
43c6bbb3ad
📱 fix(ui/topup): make stats numbers responsive on mobile
...
Reduce KPI font size on small screens to prevent overlapping of large
numbers while preserving the desktop layout.
Changes:
- InvitationCard.jsx: use `text-base sm:text-2xl` for
pending earnings, total earnings, and invite count.
- RechargeCard.jsx: use `text-base sm:text-2xl` for
current balance, historical usage, and request count.
Impact:
- Visual-only; no behavioral changes.
- Desktop/tablet unchanged.
- Lint passes.
Files:
- web/src/components/topup/InvitationCard.jsx
- web/src/components/topup/RechargeCard.jsx
2025-08-23 03:36:18 +08:00
t0ng7u
def4d16c73
🎨 refactor(ui): harden iframe messaging
...
- useHeaderBar.js
- Wrap handlers with useCallback (logout, language/theme toggle, mobile menu)
- Add null checks and try/catch around iframe postMessage (theme & language)
- Keep minimal effect deps; remove unused StatusContext dispatch
- Logo preload effect safe and scoped to `logo`
- index.jsx
- No functional changes; locale memoization remains stable
Chore:
- Lint clean; no runtime warnings
- Verified no render loops or performance regressions
2025-08-23 03:17:03 +08:00
t0ng7u
61ae19ac82
🌓 feat(ui): add auto theme mode, refactor ThemeToggle, optimize header theme handling
...
- Feature: Introduce 'auto' theme mode
- Detect system preference via matchMedia('(prefers-color-scheme: dark)')
- Add useActualTheme context to expose the effective theme ('light'|'dark')
- Persist selected mode in localStorage ('theme-mode') with 'auto' as default
- Apply/remove `dark` class on <html> and sync `theme-mode` on <body>
- Broadcast effective theme to iframes
- UI: Redesign ThemeToggle with Dropdown items and custom highlight
- Replace non-existent IconMonitor with IconRefresh
- Use Dropdown.Menu + Dropdown.Item with built-in icon prop
- Selected state uses custom background highlight; hover state preserved
- Remove checkmark; selection relies on background styling
- Current button icon reflects selected mode
- Performance: reduce re-renders and unnecessary effects
- Memoize theme options and current button icon (useMemo)
- Simplify handleThemeToggle to accept only explicit modes ('light'|'dark'|'auto')
- Minimize useEffect dependencies; remove unrelated deps
- Header: streamline useHeaderBar
- Use useActualTheme for iframe theme messaging
- Remove unused statusDispatch
- Remove isNewYear from theme effect dependencies
- Home: send effective theme (useActualTheme) to external content iframes
- i18n: add/enhance theme-related copy in locales (en/zh)
- Chore: minor code cleanup and consistency
- Improve readability and maintainability
- Lint clean; no functional regressions
2025-08-23 03:02:35 +08:00