Commit Graph

5408 Commits

Author SHA1 Message Date
suyao
76596d3da3
fix: typecheck 2026-01-29 15:48:55 +08:00
suyao
85b4bbc551
Merge remote-tracking branch 'origin/main' into migrate/v6 2026-01-29 15:48:34 +08:00
Yuxi Long / Jaden Long
5c7f3229a2
feat: allow Kimi K2.5 to be specified via Model Name (#12639)
* feat: allow Kimi K2.5 to be specified via Model Name

* fix: allow Kimi K2.5 specified via Model Name through button renderer
2026-01-29 12:11:13 +08:00
Phantom
6bf3e5506f
fix: Handle :cloud suffix in getLowerBaseModelName for Ollama models (#12633)
* refactor: Add support for removing :cloud suffix in model names

* test: Add test for removing trailing :cloud from model name
2026-01-29 00:16:42 +08:00
FyLost
ec5bac9d43
fix: remove trailing newline when copy from code blocks (#12624)
remove trailing newline when copy from codeblocks

Signed-off-by: Fy <haibarafy@163.com>
2026-01-29 00:12:26 +08:00
Phantom
742fbc555e
feat: add Kimi K2.5 model support (#12620)
* feat: add Kimi K2.5 model support

* fix: add Kimi K2.5 model thinking type detection

* fix: add Kimi model support for thinking tokens

* test: Update vision model test for Kimi non-vision model
2026-01-28 02:30:55 +08:00
Phantom
0d12da6468
fix: Correct reasoning parameters for Aliyun Bailian GLM models and support qwen3-max snapshots (#12614)
Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-27 22:57:34 +08:00
Here_is_Daiyu
e6f1df2511
Update together models URL in providers configuration (#12597) 2026-01-27 14:23:37 +08:00
SuYao
2a3e157ee7
refactor(agent): improve tool call render ui/ux (#12540)
* refactor: Tool Permission Request Card and Streaming Tool Functionality

- Refactor ToolPermissionRequestCard to improve rendering of tool content based on tool type.
- Introduce a new ArgsTable component for displaying tool parameters.
- Implement streaming support for tool arguments in StreamProcessingService and related callbacks.
- Add new chunk type for streaming tool arguments in chunk types.
- Update MCPToolResponseStatus to include 'streaming' state.
- Create comprehensive tests for MessageAgentTools to cover various tool states and argument streaming.

* feat: 添加工具状态指示器组件并更新相关工具渲染逻辑

* refactor: 优化 BashTool 组件,移除多余的输出行数计算和标签展示

* feat: 添加输出截断功能以优化工具输出显示

* feat(i18n): add translations for tool labels and sections in multiple languages

- Updated Portuguese (pt-pt), Romanian (ro-ro), and Russian (ru-ru) translation files to include new labels and sections for various tools.
- Integrated translation functionality into BashOutputTool, BashTool, EditTool, ExitPlanModeTool, GlobTool, GrepTool, MultiEditTool, NotebookEditTool, ReadTool, SearchTool, SkillTool, TaskTool, TodoWriteTool, UnknownToolRenderer, WebFetchTool, and WebSearchTool components.
- Replaced hardcoded strings with translation keys for better localization support.

* chore(i18n): clarify

* refactor: 更新 ClaudeCodeService 和 transform 函数以增强工具调用语言提示和处理工具结果消息

* refactor: language instruction

* feat(ui): group consecutive tool calls for better readability

- Add ToolBlockGroup component to display multiple consecutive tool calls
  in a collapsible group
- Modify groupSimilarBlocks to group consecutive TOOL blocks together
- Add i18n translations for group header (e.g., "36 tool calls")
- Style group header consistent with individual tool blocks

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(ui): group consecutive tool calls for better readability

- Add ToolBlockGroup component to display multiple consecutive tool calls
  in a collapsible group
- Modify groupSimilarBlocks to group consecutive TOOL blocks together
- Add i18n translations for group header (e.g., "36 tool calls")
- Style group header consistent with individual tool blocks

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* refactor: 更新 truncateOutput 函数以统一返回结构,并调整相关工具的输出处理

* refactor: simplify code

* refactor(ToolBlockGroup):  tool block rendering with memoization and auto-expand feature

* fix(ui): use direct child selectors to prevent style leakage to nested tools

Use > selectors in ToolBlockGroup to only style the group collapse,
not the nested tool collapses inside it.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(i18n): clean hardcoded ui string add ci

* refactor: add toolblockgroup

* refactor: simplify code

* fix: lint

* fix: lint 2

* fix: test

* fix: test2

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 10:26:02 +08:00
Phantom
0255cb8443
fix: Improve provider config type safety and ensure required fields (#12589) 2026-01-26 14:35:46 +08:00
XingweiDeng
5366110ce1
feat: Add PaddleOCR as a new Preprocess provider (#12067)
* feat: Add PaddleOCR as a new Preprocess provider

* Fix validateFile

* fix use i18n to translate and fix tip

* Fix code

* Fix code

* Fix migrate.ts/index.ts

* Fix code

* Fix update index.ts version

* fix(store): reorder migration versions and improve error logging

Move migration 190 to 191 and vice versa for better version ordering
Add success logging for migration 191 and improve error message specificity

* Fix fix code

* Fix fix code

* Fix fix validateFile

* Fix remove migrate duplicated and add enum FileType

* Fix no specific number

* Fix index.ts and tailwindcss

* Fix type and final file not exit condition

* Fix add jsdoc

* Fix lint --fix

* Fix: use zod schema

* Fix: fix zod schema

* Fix: looseObject

* Fix use formatZodError

* Fix fix code

* Fix migrate.ts

* Fix add annotation

* Fix fix header and Outpudir

* Fix code

* Fix fix code

* Fix throw error

* feat(preprocess): add return type for readPdf method

Add PreprocessReadPdfResult interface and use it as return type for readPdf method to provide better type safety and clarity

* refactor(preprocess): improve type safety for pdf parsing variable

* refactor(PaddleocrPreprocessProvider): extract markdown filename generation to method

Extract repeated filename replacement logic into a dedicated method to improve code reuse and maintainability

* refactor: make createProcessedFileInfo async and await its result

Use async/await pattern for file operations to improve code consistency and avoid potential blocking

* fix: use English error message in PaddleOCR API failure

* Fix fix doc

* Fix remove ppocr tip

* fix

---------

Co-authored-by: icarus <eurfelux@gmail.com>
2026-01-26 11:41:55 +08:00
kangfenmao
d17b228711 chore: release v1.7.15 2026-01-25 21:35:01 +08:00
kangfenmao
3737c1680b Revert "fix(header): resolve User-Agent forbidden header in renderer process (#12549)"
This reverts commit 56bfa95d08.
2026-01-25 21:17:54 +08:00
kangfenmao
dd73d3d309 feat(release): add platform input for release workflow and adjust OS matrix based on input
- Introduced a new input parameter 'platform' to specify the build platform (all, windows, mac, linux).
- Updated the job strategy matrix to dynamically select OS based on the provided platform input, enhancing flexibility in the release process.
2026-01-25 16:57:18 +08:00
kangfenmao
8ab07e9e4c chore: release v1.7.14
Co-Authored-By: Claude <noreply@anthropic.com>
2026-01-25 15:03:37 +08:00
kangfenmao
bd798284df refactor(ui): enhance component interactions and layout adjustments
- Updated ChatNavbar to remove unnecessary padding for a cleaner look.
- Added min-height to AddButton for consistent button sizing.
- Introduced hover state management in AgentItem and AssistantItem for improved user experience.
- Refactored dropdown menu handling in AgentItem and AssistantItem to enhance interaction.
- Adjusted margin in HeaderRow for better spacing.
- Modified SessionWorkspaceMeta to display folder names more clearly with tooltips.

These changes aim to improve the overall UI responsiveness and clarity in component interactions.
2026-01-25 13:40:07 +08:00
亢奋猫
78c6f97248
refactor: simplify translate action by removing dual language selector (#12343)
* feat: enhance ActionTranslate component with language detection and settings dropdown

- Added state management for detected and actual target languages.
- Implemented a settings dropdown for selecting preferred and alternate languages.
- Updated UI to display detected language and integrated new settings for language selection.
- Refactored language change handling to improve user experience and maintain state consistency.

* refactor(ActionTranslate): reorganize layout and improve component structure

- Introduced LeftGroup for better alignment of detected language, target language selector, and settings dropdown.
- Removed unnecessary Spacer component to streamline the layout.
- Enhanced styling for improved visual consistency and user experience.

* fix(ActionTranslate): simplify loading state display for detected language

- Removed loading spinner and adjusted the display for the detected language during the detection process to enhance clarity and reduce visual clutter.
2026-01-25 13:38:13 +08:00
SuYao
f9f550cecd
feat(minapps): add locale-based filtering and i18n support (#12572)
* feat(i18n): update i18n name immediately

* feat(minapps): hide Chinese apps for non-Chinese locale users

- Add `locales` field to MinAppType for locale-based visibility
- Add locale filtering in useMinapps hook
- Mark 23 Chinese domestic apps with locales: ['zh-CN', 'zh-TW']

Apps hidden for non-Chinese users include: Wanzhi, ChatGLM, Kimi,
Baichuan, Qwen, Stepfun, Doubao, Hailuo, Wenxin, Baidu AI Search,
Tencent Yuanbao, Sensechat, SparkDesk, Metaso, Tiangong AI, Nami AI,
Xiaoyi, WPS AI, Zhihu, Dangbei AI, Ant Ling, LongCat, QwenChat

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* fix: minapp logic

* fix: review comments

* fix: update MinimalToolbar to use allMinApps

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 09:31:16 +08:00
SuYao
5c013cdb63
feat(i18n): add hardcoded string detection script and CI check (#12547)
Some checks failed
Auto I18N Weekly / Auto I18N (push) Has been cancelled
* feat(i18n): clean hardcoded ui string add ci

* fix(i18n): update snap

* fix: test

* fix(i18n): update plurals

* chore: revert other branch change

* refactor: use ast detect hardcoded string

* chore: typo error

* feat(i18n): add webview app

* chore(i18n): update i18n

* fix: pr comment

* chore: distinguish label and labelKey

* refactor: align v2 desgin
2026-01-24 18:19:38 +08:00
SuYao
022e1aee4a
fix(embeddings): truncate query content for temp doc query (#12573)
* fix(embeddings): truncate query  content for temp doc query

* fix: use tokenService
2026-01-23 20:34:54 +08:00
kangfenmao
46fa59a10c feat(i18n): enhance language support and UI adjustments
- Added support for Day.js locale settings in i18n, allowing for dynamic language changes.
- Updated translations for multiple languages including German, Greek, Spanish, French, Japanese, Portuguese, Romanian, and Russian.
- Improved UI elements in the MemorySettings and ChatNavbar components for better layout and user experience.
- Implemented infinite scroll functionality in MemorySettings for improved memory display management.
2026-01-23 15:37:25 +08:00
George·Dong
826414e821
feat(provider-settings): support viewing detailed error messages (#12423)
* feat(error): add clickable error detail modal for model detection

- Add onErrorClick callback to HealthStatusIndicator component
- Make error icon clickable to show detailed error modal
- Export ErrorDetailModal for reuse across components
- Use SerializedError type for better error information display
- Fix tooltip i18n keys and flex layout for consistent spacing

* fix(error): only show clickable error indicator when failed results exist

- Only pass onErrorClick callback when there are failed results
- Conditionally render ErrorDetailModal only when needed
- Improve performance by avoiding unnecessary state for success cases

* refactor(error): extract serializeHealthCheckError utility function

- Extract duplicated error serialization logic into serializeHealthCheckError()
  utility function in error.ts
- Update HealthCheckService.ts, hook.ts, and ProviderSetting.tsx to use
  the new utility function
- Fix invalid CSS values: align-items: left -> center, align: left -> flex-start
- Use HealthStatus.FAILED constant instead of hardcoded 'failed' string

* fix(settings): update tooltip message key for API check

Change the tooltip fallback translation key from the provider
API check to the models check. This ensures the displayed
message matches the new i18n key and avoids showing an
incorrect/provider-specific string when the API key
connectivity error message is absent.

* refactor(error): extract ErrorDetailModal as independent component

* refactor(error): extract ErrorDetailModal as independent component

* refactor(error): update ErrorDetailModal with full features from ErrorBlock

* refactor(error): fix export duplication and add React performance optimizations

* refactor(error): add React performance optimizations

- Memoize ErrorDetailModal child components (BuiltinError, AiSdkErrorBase, TruncatedCodeViewer, AiSdkError)
- Add useCallback for handleErrorClick in HealthStatusIndicator
- Add useCallback for copyErrorDetails in ErrorDetailModal
- Optimize ModelListItem button inline functions with useCallback

* refactor(health): move HealthStatusIndicatorProps back to indicator.tsx

- HealthStatusIndicatorProps was only used in indicator.tsx, no need to export
- Keep HealthResult in types.ts as it's used by useHealthStatus hook

* fix(health): import HealthResult from types instead of redefining

- useHealthStatus depends on HealthResult from ./types
- Only HealthStatusIndicatorProps belongs to indicator.tsx

* refactor(health): move click handler to outer wrapper

* fix(lint): resolve react-hooks/exhaustive-deps warnings in ModelListItem

- wrap healthResults in useMemo to avoid unnecessary re-renders
- remove redundant ErrorDetailModal export from ErrorBlock

* refactor(error): optimize ErrorDetailModal and replace duplicate code

- Use parseDataUrl from @shared/utils instead of manual base64 detection
- Replace duplicate ErrorDetailModal in ErrorBlock with the shared component
- Optimize onErrorClick with useMemo for better performance
2026-01-23 14:26:33 +08:00
pippo
b34bd9cd1b
feat:add baichuan-m3-plus model (#12567)
Co-authored-by: roberto <roberto@baichuan-inc.com>
2026-01-23 14:19:50 +08:00
SuYao
0d3f0f20fd
fix(linux): fix icon display and deb installation issues (#12561)
- Fix Wayland window icon not showing in alt-tab and titlebar
- Fix fcitx5 input method cannot switch after sending message
- Fix deb installation failure due to spaces in executable name
- Add pacman build target for Arch Linux
- Rename Linux executable from "Cherry Studio" to "CherryStudio"
- Use nativeImage for proper icon loading on Linux

Fixes #12295, Fixes #12494

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 14:18:56 +08:00
SuYao
56bfa95d08
fix(header): resolve User-Agent forbidden header in renderer process (#12549)
* fix(header): merge user-agent add header gracefully

* fix(test): mock os release

* fix(test): again
2026-01-23 14:18:28 +08:00
beyondkmp
858a5ceaec
feat: add Linux system title bar setting option (#12040)
* feat: add Linux system title bar setting option

Add a setting in Display Settings that allows Linux users to switch
between custom title bar (frameless window with WindowControls) and
native system title bar. The setting requires app restart to take effect
since Electron's frame option cannot be changed at runtime.

- Add useSystemTitleBar config key and getter/setter in ConfigManager
- Add IPC channel and handler for setting persistence
- Add Redux state and action for useSystemTitleBar
- Add UI toggle in DisplaySettings (Linux only)
- Hide WindowControls when system title bar is enabled on Linux
- Modify WindowService to check setting when creating window on Linux
- Add translations for all supported locales

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: improve window controls positioning in left navbar layout

Move WindowControls inside NavbarContainer as a flex item instead of
using fixed positioning. This ensures the window controls are properly
positioned adjacent to the navbar content when using the left navbar
layout.

- Remove position: fixed from WindowControlsContainer styling
- Include WindowControls as last child of NavbarContainer
- Remove extra padding-right from NavbarRight since controls are now
  in the flex layout

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: remove padding-right from TabsBar to align window controls to edge

Remove the 8px padding-right for Windows/Linux in TabsBar that was
causing window controls to not be flush against the window edge.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: add right padding for settings button when Linux uses system title bar

* fix: restore NavbarRight paddingRight to 15px for consistent spacing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-23 13:52:09 +08:00
beyondkmp
2cf38fcc41
fix(linux): fix main window not coming to front when clicked from tray (#12503)
When clicking the tray icon on Linux with another window on top,
the main window would not properly come to the front. This was due
to Linux window managers' focus stealing prevention.

The fix uses a hide/show sequence to simulate the "close to tray
and reopen" behavior which works correctly. This approach resets
the window state and makes the window manager treat it as a new
window activation request.

Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-23 01:50:04 +08:00
SuYao
1f209dc280
fix: memoize provider selectors to prevent infinite re-renders (#12550)
The normalizeProvider() calls inside useAppSelector callbacks were
creating new object references on every render, causing infinite
re-render loops in components that depend on provider objects.

This fix uses createSelector from Redux Toolkit to properly memoize
the normalized providers, preventing unnecessary re-renders in:
- GithubCopilotSettings (useEffect depends on provider)
- Painting pages (useAllProviders returns new array each render)

Fixes the "Maximum update depth exceeded" error introduced in 8186d4fa.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-22 14:27:52 +08:00
SuYao
f84941f91f
feat(notes): add export to Word functionality (#12393)
* feat(notes): add export to Word functionality

Add a menu item in the Notes page to export the current note to a Word document.
The feature leverages the existing ExportService which converts markdown to docx format.

Changes:
- Add "Export to Word" menu item in MenuConfig.tsx
- Add handleExportToWord handler in HeaderNavbar.tsx
- Add i18n translations for all supported languages

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* feat(i18n): Update translations for multiple languages to improve export functionality

Updated the translation files for German, Greek, Spanish, French, Japanese, Portuguese, Romanian, and Russian to provide accurate translations for export-related messages. This includes phrases for exporting to Word and handling content export scenarios, ensuring a consistent user experience across different languages.

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: kangfenmao <kangfenmao@qq.com>
2026-01-22 11:49:43 +08:00
George·Dong
c03475f5db
fix(code-tools): support custom provider & fix Windows Terminal Issue (#12504)
* fix(code-tools): support custom Anthropic and OpenAI-Response providers

* refactor: use --config option in codex

* fix(codex): fix OpenAI Codex config parameters

* fix(security): redact sensitive env vars in CodeToolsService logs

* fix(code-tools): increase temp file cleanup delay for Windows Terminal
2026-01-22 11:25:56 +08:00
Shemol
ed54bf8810
refactor(ThinkingEffect): replace useState+useEffect with useMemo (#12536)
refactor(ThinkingEffect): replace useState+useEffect with useMemo for derived state

The messages array is purely derived from content and isThinking props,
not fetched from an API. Using useState+useEffect for derived state is
a React anti-pattern that causes unnecessary re-renders.

This change:
- Removes lodash isEqual dependency
- Reduces code complexity
- Avoids double render cycle

Signed-off-by: SherlockShemol <shemol@163.com>
2026-01-21 14:53:45 +08:00
亢奋猫
bd4f4db572
fix(build): add Linux musl native dependencies for Alpine support (#12412)
* fix(build): add Linux musl native dependencies for Alpine support

Add missing native dependencies for Linux musl (Alpine Linux) platform:
- @img/sharp-linuxmusl-arm64 and @img/sharp-linuxmusl-x64
- @img/sharp-libvips-linuxmusl-arm64 and @img/sharp-libvips-linuxmusl-x64
- @libsql/linux-arm64-musl and @libsql/linux-x64-musl

Co-Authored-By: Claude <noreply@anthropic.com>

* fix(build): add support for Linux musl architecture in before-pack script

Updated the before-pack.js script to include 'linuxmusl' in the platformToArch mapping, enhancing compatibility for Alpine Linux builds.

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-21 10:06:27 +08:00
Nicolae Fericitu
3775af07c2
feat(i18n): Update Romanian localization (ro-RO) (#12471)
* fix(i18n): update and refine Romanian translation

I have corrected several typos and refined the terminology in the ro-ro.json file for better linguistic accuracy. This update ensures translation consistency throughout the user interface.

* i18n: Update and fix Romanian localization (ro-RO)

The Romanian localization file has been updated. 

Necessary corrections have been applied to address issues identified during an interface review, ensuring consistent terminology and improved message clarity.

* i18n: Capitalize "Users" label for UI consistency

Updated the "users" key in ro-ro.json to use an uppercase initial. This ensures visual consistency with other menu items in the settings section (User Management).

* Update Romanian localization (ro-RO)

* fix(i18n): update topic time translation for clarity

Updated settings.topic.show.time to "Afișează ora subiectului" to maintain context as requested by reviewer.

* feat(i18n): Update and refine Romanian localization (ro-RO)

Hi! I have updated the Romanian localization file (`ro-ro.json`) to improve the overall user experience.

Key changes:
- Refined terminology for better UI consistency (e.g., changed "folder" to "dosar").
- Fixed grammar and phrasing to ensure a more natural flow.
- Synced the branch with the latest upstream changes.

All checks have passed, and the translation is now ready for review. Thank you!
2026-01-20 21:33:09 +08:00
Shemol
d64b388920
refactor: convert nested component to render function in settings popups (#12508) 2026-01-19 18:49:46 +08:00
Tim
dc3cee978a
feat: integrate Kimi CLI into Code Tools (#12511)
* feat: integrate Kimi CLI into Code Tools

- Add Kimi CLI as a new code tool option in Code Tools page
- Support OpenAI-compatible models for Kimi CLI
- Use uvx to automatically download and run kimi-cli (Python package)
- Configure environment variables (OPENAI_API_KEY, OPENAI_BASE_URL, OPENAI_MODEL)
- Skip installation check as uvx handles package management automatically

Changes:
- Add kimiCli to codeTools enum
- Add Kimi CLI to CLI_TOOLS list with label
- Add provider filter for OpenAI-compatible providers
- Add environment variable generation logic
- Add model filtering logic in UI
- Special handling in CodeToolsService to use uvx instead of bun
- Skip installation process for kimi-cli as uvx auto-downloads

This integration allows users to launch Kimi CLI directly from Cherry Studio
without manual installation, leveraging uvx for seamless Python package management.

* Update src/renderer/src/pages/code/index.ts

Co-authored-by: George·Dong <98630204+GeorgeDong32@users.noreply.github.com>

* Update src/main/services/CodeToolsService.ts

Co-authored-by: George·Dong <98630204+GeorgeDong32@users.noreply.github.com>

* Update src/renderer/src/pages/code/CodeToolsPage.tsx

Co-authored-by: George·Dong <98630204+GeorgeDong32@users.noreply.github.com>

* fix: remove extra blank line in CodeToolsPage.tsx for biome format compliance

---------

Co-authored-by: xiaoju111a <xiaoju111a@users.noreply.github.com>
Co-authored-by: George·Dong <98630204+GeorgeDong32@users.noreply.github.com>
2026-01-19 14:03:15 +08:00
Pleasure1234
a477b54234
fix: version check logic for CLI tool updates (#12513)
Updated the needsUpdate condition to handle cases where the tool is installed but has no version, ensuring updates are correctly flagged when necessary.
2026-01-19 13:09:07 +08:00
fullex
6ee1157165 fix(LoggerService): update logging mechanism to use ipcRenderer.invoke for main process communication 2026-01-19 00:02:42 +08:00
AdySnowflake
7aca974dab
Fix the API preview link for Azure OpenAI completion mode (#12500)
Update ProviderSetting.tsx
2026-01-17 21:09:24 +08:00
SuYao
1885f9cecb
feat: migrate from husky to prek for git hooks (#12491)
* feat: migrate from husky to prek for git hooks

Replace husky + lint-staged with prek (pre-commit re-engineered in Rust) for
faster and more efficient git hooks management.

Changes:
- Add @j178/prek dependency
- Create .pre-commit-config.yaml with equivalent hooks
- Update prepare script to use prek install
- Remove husky, lint-staged dependencies and configuration
- Remove .husky directory

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* build: add @j178/prek to onlyBuiltDependencies

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Co-authored-by: icarus <eurfelux@gmail.com>
2026-01-17 14:22:58 +08:00
SuYao
8186d4fa29
fix: handle trailing slashes in API URLs for image generation (#12492)
fix: normalize provider apiHost at source to handle trailing slashes

Normalize provider apiHost by removing trailing slashes in useProvider.ts
selectors. This ensures consistent URL concatenation across the entire
application, including image generation pages, without modifying each
usage point individually.

Fixes #12485

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 23:05:13 +08:00
pippo
0880435c06
feat(baichuan):add baichuan-m3 models (#12478)
Co-authored-by: roberto <roberto@baichuan-inc.com>
2026-01-15 21:26:51 +08:00
Nicolae Fericitu
30bcd8f801
feat(i18n): Update Romanian localization (ro-RO) (#12438)
* fix(i18n): update and refine Romanian translation

I have corrected several typos and refined the terminology in the ro-ro.json file for better linguistic accuracy. This update ensures translation consistency throughout the user interface.

* i18n: Update and fix Romanian localization (ro-RO)

The Romanian localization file has been updated. 

Necessary corrections have been applied to address issues identified during an interface review, ensuring consistent terminology and improved message clarity.

* i18n: Capitalize "Users" label for UI consistency

Updated the "users" key in ro-ro.json to use an uppercase initial. This ensures visual consistency with other menu items in the settings section (User Management).

* Update Romanian localization (ro-RO)

* fix(i18n): update topic time translation for clarity

Updated settings.topic.show.time to "Afișează ora subiectului" to maintain context as requested by reviewer.
2026-01-14 17:05:42 +08:00
ZhuangYumin
c1b0a18fef
fix: switch to new URL in qwen miniapp (#12460) 2026-01-14 17:01:33 +08:00
槑囿脑袋
262d32ac17
fix: remove mineru built-in api key (#12455) 2026-01-14 16:52:55 +08:00
fullex
a844b5bf39 chore: remove generate:icons script from package.json 2026-01-14 15:41:35 +08:00
SuYao
ac23c7f30b
fix(aiCore): preserve conversation history for image enhancement models (#12239)
* fix(aiCore): preserve conversation history for image enhancement models

- Changed image enhancement model handling to preserve full conversation context
- Only merge images from previous assistant message into last user message
- Return messages as-is when no images need to be merged
- Added test case for LLM-to-image-model switching scenario

This allows users to switch from LLM conversations to image generation models
while keeping the conversation context for guiding image generation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* chore: format

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-14 14:23:19 +08:00
SuYao
9414f13f6d
fix: 修改请求体字段名 (#12430)
Some checks failed
Auto I18N Weekly / Auto I18N (push) Has been cancelled
2026-01-12 16:38:55 +08:00
flt6
cbeda03acb
use cumsum in anthropic cache (#12419)
* use cumsum in anthropic cache

* fix types and refactor addCache in anthropicCacheMiddleware
2026-01-12 15:49:33 +08:00
George·Dong
cea36d170b
fix(qwen-code): format baseUrl with /v1 for OpenAI-compatible tools (#12418)
The Qwen Code tool was failing with 'Model stream ended without a finish reason'
because the OPENAI_BASE_URL environment variable was not properly formatted.

This fix adds /v1 suffix to the baseUrl when it's missing for OpenAI-compatible
tools (qwenCode, openaiCodex, iFlowCli).

Changes:
- Import formatApiHost from @renderer/utils/api
- Use formatApiHost to format baseUrl before passing to environment variables
- Add unit tests for the URL formatting behavior
2026-01-12 13:41:27 +08:00
Nicolae Fericitu
d84b84eb2f
i18n: Major improvements to Romanian (ro-RO) localization (#12428)
* fix(i18n): update and refine Romanian translation

I have corrected several typos and refined the terminology in the ro-ro.json file for better linguistic accuracy. This update ensures translation consistency throughout the user interface.

* i18n: Update and fix Romanian localization (ro-RO)

The Romanian localization file has been updated. 

Necessary corrections have been applied to address issues identified during an interface review, ensuring consistent terminology and improved message clarity.

* i18n: Capitalize "Users" label for UI consistency

Updated the "users" key in ro-ro.json to use an uppercase initial. This ensures visual consistency with other menu items in the settings section (User Management).
2026-01-12 10:58:38 +08:00