Commit Graph

4996 Commits

Author SHA1 Message Date
SuYao
bd9b34b9a0
feat(migrate): initialize default assistant settings if not present (#9303)
* feat(migrate): update migration logic for version 134; initialize default assistant settings if not present

* Update src/renderer/src/store/migrate.ts

Co-authored-by: Phantom <59059173+EurFelux@users.noreply.github.com>

---------

Co-authored-by: Phantom <59059173+EurFelux@users.noreply.github.com>
2025-08-21 00:01:03 +08:00
caozhiyuan
b1e843973c
Fix AWS Bedrock models not receiving uploaded document content (#9337)
* Initial plan

* Add file content processing to AWS Bedrock client convertMessageToSdkParam method

Co-authored-by: caozhiyuan <3415285+caozhiyuan@users.noreply.github.com>

* Fix file content format to match other AI clients and update tests

Co-authored-by: caozhiyuan <3415285+caozhiyuan@users.noreply.github.com>

* Update src/renderer/src/aiCore/clients/aws/AwsBedrockAPIClient.ts

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: caozhiyuan <3415285+caozhiyuan@users.noreply.github.com>
Co-authored-by: Phantom <59059173+EurFelux@users.noreply.github.com>
2025-08-20 18:26:38 +08:00
Phantom
11b130736c
fix(Translate): update settings into db (#9305)
* fix(翻译): 修复设置没有储存到db的错误

* fix(translate): 修复自动检测方法设置更新失败的问题

添加错误处理逻辑,当更新自动检测方法设置失败时显示错误信息
2025-08-20 17:42:33 +08:00
Phantom
25531ecd76
fix: timeout memory leak (#9312)
* fix(MinappPopupContainer): 修复内存泄漏问题,清理未使用的定时器

在组件卸载时清理setTimeout定时器,避免潜在的内存泄漏

* fix(SelectModelButton): 修复模型选择后更新导致的卡顿问题

使用useRef存储定时器并在组件卸载时清理,避免内存泄漏

* fix(QuickPanel): 修复定时器未清理导致的内存泄漏问题

添加 clearSearchTimerRef 和 focusTimerRef 来管理定时器
在组件清理和状态变化时清理所有定时器

* fix(useInPlaceEdit): 修复编辑模式下定时器未清理的问题

添加清理定时器的逻辑,避免组件卸载时内存泄漏

* refactor(useKnowledge): 使用ref管理定时器并统一检查知识库逻辑

将分散的setTimeout调用统一为checkAllBases方法
使用useRef管理定时器并在组件卸载时清理

* fix(useScrollPosition): 修复滚动位置恢复时的内存泄漏问题

添加清理函数以清除未完成的定时器,防止组件卸载时内存泄漏

* fix(WebSearchProviderSetting): 清理定时器防止内存泄漏

在组件卸载时清理检查API有效性的定时器,避免潜在的内存泄漏问题

* fix(selection-toolbar): 修复选中文本时定时器未清理的问题

* fix(translate): 修复复制文本时定时器未清理的问题

添加 copyTimerRef 来管理复制操作的定时器,并在组件卸载时清理定时器

* fix(WebSearchSettings): 使用useRef管理订阅验证定时器以避免内存泄漏

* fix(MCPSettings): 修复定时器未清理导致的内存泄漏问题

添加 useRef 来存储定时器引用,并在组件卸载时清理定时器

* refactor(ThinkingBlock): 使用 useTemporaryValue 替换手动 setTimeout

移除手动设置的 setTimeout 来重置 copied 状态,改用 useTemporaryValue hook 自动处理

* refactor(ChatNavigation): 使用 useRef 替代 useState 管理定时器

简化定时器管理逻辑,避免不必要的状态更新

* fix(AddAssistantPopup): 清理创建助手时的定时器以避免内存泄漏

添加useEffect清理定时器,防止组件卸载时内存泄漏

* feat(hooks): 添加useTimer钩子管理定时器

实现一个自定义hook来集中管理setTimeout和setInterval定时器
自动在组件卸载时清理所有定时器防止内存泄漏

* refactor(Inputbar): 使用 useTimer 替换 setTimeout 实现延迟更新

将 setTimeout 替换为 useTimer 的自定义 setTimeoutTimer 方法,提高代码可维护性并统一计时器管理

* refactor(WindowFooter): 使用 useTimer 替换 setTimeout 以管理定时器

* docs(useTimer): 更新定时器hook的注释格式和描述

* feat(hooks): 为useTimer添加返回清理函数的功能

允许从setTimeoutTimer和setIntervalTimer返回清理函数,便于手动清除定时器

* refactor(ImportAgentPopup): 使用useTimer替换setTimeout以管理定时器

* refactor: 使用useTimer替代setTimeout以优化定时器管理

* refactor(SearchResults): 使用useTimer替换setTimeout以管理定时器

* refactor(消息组件): 使用useTimer替换setTimeout以管理定时器

* refactor: 使用useTimer替换setTimeout以优化定时器管理

* refactor(AssistantsDrawer): 使用useTimer替换setTimeout以优化定时器管理

* refactor(Inputbar): 使用useTimer替换setTimeout以优化定时器管理

* refactor(MCPToolsButton): 使用useTimer优化定时器管理

* refactor(QuickPhrasesButton): 使用useTimer替换setTimeout以优化定时器管理

* refactor(ChatFlowHistory): 使用useTimer替换setTimeout以管理定时器

* refactor(Message): 使用useTimer替换setTimeout以管理定时器

* refactor(MessageAnchorLine): 使用useTimer替换setTimeout以优化定时器管理

* refactor(MessageGroup): 使用useTimer替换setTimeout以优化定时器管理

* refactor(MessageMenubar): 使用 useTemporaryValue 替换手动 setTimeout 逻辑

* refactor(Messages): 使用 useTimer 优化定时器管理

* refactor(MessageTools): 使用useTimer替换setTimeout以管理定时器

* fix(SelectionBox): 修复鼠标移动时未清除定时器导致的内存泄漏

在鼠标移动事件处理中增加定时器清理逻辑,避免组件卸载时未清除定时器导致的内存泄漏问题

* refactor(ErrorBlock): 使用自定义hook替换setTimeout

使用useTimer中的setTimeoutTimer替代原生setTimeout,便于统一管理定时器

* refactor(GeneralSettings): 使用useTimer替换setTimeout以实现更好的定时器管理

* refactor(ShortcutSettings): 使用useTimer替换setTimeout以优化定时器管理

* refactor(AssistantModelSettings): 使用useTimer替换setTimeout以优化定时器管理

* refactor(DataSettings): 使用useTimer替换setTimeout以增强定时器管理

统一使用useTimer hook管理所有定时器操作,提高代码可维护性

* refactor(NutstoreSettings): 使用useTimer优化setTimeout管理

替换直接使用setTimeout为useTimer hook的setTimeoutTimer方法,提升定时器管理的可维护性

* refactor(MCPSettings): 使用useTimer替换setTimeout以提升代码可维护性

* refactor(ProviderSetting): 使用useTimer优化setTimeout管理

* refactor(ProviderSettings): 使用 useTimer 替换 setTimeout 以优化定时器管理

* refactor(InputBar): 使用useTimer替换setTimeout以实现更好的定时器管理

* refactor(MessageEditor): 使用useTimer替换setTimeout以管理定时器

使用自定义hook useTimer来替代原生setTimeout,便于统一管理和清理定时器

* docs(useTimer): 添加 useTimer hook 的使用示例和详细说明

* refactor(MinappPopupContainer): 使用useTimer替换setTimeout实现

替换直接使用setTimeout为自定义hook useTimer,简化组件清理逻辑

* refactor(AddAssistantPopup): 使用useTimer替换手动定时器管理

用useTimer钩子替代手动管理定时器,简化代码并提高可维护性

* refactor(WebSearchSettings): 使用 useTimer 替换手动定时器管理

移除手动管理的定时器逻辑,改用 useTimer hook 统一处理

* refactor(WebSearchProviderSetting): 使用自定义hook替代原生定时器

用useTimer hook替换原有的setTimeout和clearTimeout逻辑,提高代码可维护性

* refactor(translate): 使用 useTemporaryValue 替换手动实现的复制状态定时器

* refactor(SelectionToolbar): 使用 useTimer 钩子替换 setTimeout 和 clearTimeout

重构 SelectionToolbar 组件,使用自定义的 useTimer 钩子来管理定时器,提升代码可维护性
清理隐藏时的定时器逻辑,避免内存泄漏
2025-08-20 16:38:13 +08:00
beyondkmp
332ba5d678
feat: support openai codex (#9332)
* support openai codex

* lint

* refactor: remove unused codeTools enum from constant.ts

* fix build

* fix lin

* fix: add support for qwenCode CLI tool and improve error handling in CodeToolsService
2025-08-20 15:46:44 +08:00
Phantom
1da1721ec2
feat(openai): handle special tokens for zhipu api (#9323)
* feat(openai): 添加对智谱特殊token的过滤处理

在OpenAIAPIClient中添加对智谱AI特殊token的过滤逻辑,避免不需要的token被输出

* docs(OpenAIApiClient): 添加注释

* refactor(zhipu): 重命名并更新智谱特殊token处理逻辑

将 ZHIPU_SPECIAL_TOKENS_TO_FILTER 重命名为 ZHIPU_RESULT_TOKENS 以更准确描述用途
修改智谱API特殊token处理逻辑,不再过滤而是用**标记结果token
2025-08-20 15:11:07 +08:00
one
f8120c2ebb
fix: web search references missing caused by early reset (#9328) 2025-08-20 13:25:22 +08:00
fullex
cdca8c0ed7
fix(SelectionHook): improve validation for selected text range to handle empty strings and ensure valid extraction (#9329)
chore: update selection-hook dependency to version 1.0.10 in package.json and yarn.lock
2025-08-20 13:00:56 +08:00
alickreborn0
4f2b1e23a9
feat: 同步百炼服务器功能 (#9205)
* 同步百炼服务器功能

* cr修改

---------

Co-authored-by: yunze <yunze.wyz@alibaba-inc.com>
2025-08-20 11:26:38 +08:00
kangfenmao
47f49532c6 fix: KaTeX math engine render 2025-08-20 11:12:42 +08:00
kangfenmao
cffaf99b17 feat: add 'code_tools' to sidebar icons and update related components 2025-08-20 10:56:44 +08:00
Phantom
973ece9eb9
feat: use quick model to detect translate language (#9315)
* refactor(语言检测): 移除翻译模型依赖,改用快速或默认模型

* feat(i18n): 添加希腊语翻译支持

* fix(i18n): 更新i18n

统一将翻译模型提示改为快速模型提示,优化多语言文件中的描述

* Revert "feat(i18n): 添加希腊语翻译支持"

This reverts commit 42613cb2e2.
2025-08-20 10:07:10 +08:00
Phantom
a21fc91915
fix: unexpected quitting full screen mode (#9200)
* fix(Inputbar): 修正拼写错误,将expend改为expand

* fix: 修复Escape键事件冒泡问题并改进全屏处理

修复多个组件中Escape键事件未阻止冒泡的问题
添加全屏控制IPC通道
将全屏退出逻辑移至渲染进程处理
移除主进程中冗余的全屏退出处理代码

* fix(SelectModelPopup): 修复键盘事件处理并移除无效的useEffect

将键盘事件监听从window移动到Modal容器,避免事件冒泡问题
移除无效的useEffect并更新键盘事件类型定义

* fix(QuickPanel): 拦截window上的keydown事件

* fix(QuickPanel): 修复事件监听器移除时未使用相同参数的问题

* fix(TopView): 修复左侧导航栏布局崩坏问题

* fix: 修正变量名拼写错误,将expended改为expanded

* Revert "fix(SelectModelPopup): 修复键盘事件处理并移除无效的useEffect"

This reverts commit 4211780b95.
2025-08-19 21:32:53 +08:00
Phantom
80dfcf05a7
feat: quick model (#9290)
* refactor(i18n): 将话题命名模型相关文案更新为摘要模型

更新所有语言文件中关于话题命名模型的文案,统一改为摘要模型,以反映功能的扩展和更通用的用途

* refactor(设置页面): 优化主题命名弹窗组件性能

使用useCallback和useMemo优化回调函数和渲染性能
将重复的JSX代码提取为独立组件

* feat(设置): 在模型设置中添加话题命名折叠面板

将话题命名设置从直接显示改为折叠面板形式,提升界面整洁度

* refactor(i18n): 重构话题命名相关翻译字段结构

* docs(i18n): 添加生成图像的高度、宽度和安全容忍度翻译占位符

* fix(settings): 修正主题命名弹窗中的翻译键名

* style(ui): 调整主题命名弹窗的间距和文本区域高度

移除多余的上下边距,并使用自适应高度的文本区域

* refactor(llm): 将 topicNamingModel 重命名为 summaryModel

更新相关函数、状态和测试用例以反映命名变更
增加迁移逻辑处理旧状态数据
更新持久化版本号至133

* fix(ApiService): 优先使用摘要模型替代默认模型

当获取摘要时,优先使用getSummaryModel()返回的模型,其次才是助手指定的模型或默认模型,以确保摘要生成的一致性

* docs(i18n): 更新摘要模型描述中的搜索关键词提炼

将"搜索结果摘要"修改为"搜索关键字提炼"以更准确描述功能

* fix(i18n): 更新多语言翻译文件中的摘要模型相关文本

* feat(i18n): 为摘要模型设置添加工具提示说明

添加摘要模型设置的工具提示,建议用户选择轻量模型而非思考模型

* refactor(i18n): 将摘要模型相关文案更新为快速模型

更新国际化文案和组件引用,将"摘要模型"统一改为"快速模型"以更准确描述功能用途

* feat(i18n): 将摘要模型重命名为快速模型并更新相关描述

* refactor(llm): 将summaryModel重命名为quickModel以提升语义清晰度

* test(api): 在ApiService测试中添加LlmState类型和awsBedrock配置

添加LlmState类型以满足类型检查要求,并补充awsBedrock的mock配置以完善测试覆盖

* Revert "feat(设置): 在模型设置中添加话题命名折叠面板"

This reverts commit 4d58c053da.

* refactor(settings): 重命名并移动 TopicNamingModalPopup 组件文件

将 TopicNamingModalPopup.tsx 重命名为 QuickModelPopup.tsx 并移动到相应目录

* refactor(QuickModelPopup): 优化主题命名设置布局和样式

移除 TopicNamingSettings 组件内联实现,直接整合到 Modal 中
调整间距和样式,提升视觉一致性
修复文本区域 onChange 去除换行的逻辑

* feat(模型设置): 在快速模型弹窗中添加重置按钮图标并调整布局

将重置按钮改为图标形式并内联显示,同时调整输入区域的高度样式

* docs(i18n): 更新快速模型相关翻译文本

* fix: 将迁移错误日志从133更新为134

* style(settings): 替换模型设置中的图标为Rocket图标以提升视觉一致性
2025-08-19 20:39:52 +08:00
kangfenmao
0368583cfc refactor(Markdown): update disallowed elements to include 'script' for enhanced security 2025-08-19 18:11:20 +08:00
kangfenmao
c5554995dd refactor(CodeToolsService): adjust command construction for Windows compatibility; streamline installation command handling 2025-08-19 18:10:10 +08:00
kangfenmao
70cc1c4a32 chore: release v1.5.7-rc.1 2025-08-19 17:38:24 +08:00
kangfenmao
2ace9ba492 refactor(CodeToolsService): replace npm package version fetching with direct API call; simplify command construction for installation 2025-08-19 17:30:07 +08:00
one
cc8915842a
refactor(SvgPreview): use transparent container for SVG (#9294)
* refactor(SvgPreview): use transparent container for SVG

* test: fix snapshot
2025-08-19 17:22:05 +08:00
kangfenmao
2e2cfc2409 refactor(Sidebar): remove unused imports and code related to documentation; streamline sidebar functionality 2025-08-19 16:42:20 +08:00
kangfenmao
2265ecab21 feat(CodeTools): add environment variable support for CLI tools; update UI to manage environment variables and enhance localization for related strings 2025-08-19 16:39:50 +08:00
kangfenmao
29d4e37f6b feat(Sidebar): add 'code_tools' icon and route; enhance CodeToolsPage layout with Navbar and improved provider filtering 2025-08-19 15:38:03 +08:00
kangfenmao
e0bc3bb2c5 refactor(MarkdownStyles): remove last-child margin override; adjust MessageFooter margin and clean up unused code in MessageAttachments 2025-08-19 13:53:46 +08:00
one
6d602d5d48
fix: MentionModelsButton re-rendering (#9296) 2025-08-19 13:46:29 +08:00
Phantom
1e7718162d
feat(ProviderSetting): add tooltip for api options (#9292)
feat(ProviderSetting): 为API选项按钮添加工具提示说明

添加工具提示以解释按钮功能,提升用户体验
2025-08-19 12:59:29 +08:00
one
e3c52a6174
fix(ImagePreview): add relaxed sanitize rules for svg (#9293) 2025-08-19 12:58:45 +08:00
one
585e49ac65
fix: svg rendering (#9291)
* fix: svg max-width

* fix: disable sanitizer
2025-08-19 12:21:48 +08:00
kangfenmao
86545f4fff refactor(i18n): remove 'enable_delete_model' translations from multiple language files and related settings; streamline Inputbar and SettingsTab components by eliminating backspace delete model functionality. 2025-08-19 12:19:41 +08:00
Konv Suu
b57ec9fe70
fix: update invalid link (#9285)
* fix: update invalid link

* update
2025-08-19 12:15:53 +08:00
kangfenmao
b96af0fdef fix(useAssistant): ensure safe access to assistant settings and update reasoning effort handling logic 2025-08-19 11:55:22 +08:00
kangfenmao
b0ea7ad71c feat(i18n): integrate internationalization for minapp names across multiple languages; update minapp configuration to use localized names for better user experience. 2025-08-19 11:39:36 +08:00
kangfenmao
c8c0d22787 refactor(Inputbar): remove MentionModelsInput and KnowledgeBaseInput components; update InputbarTools and Inputbar to handle model mentions and knowledge base selections directly. Update icons to use Hammer instead of SquareTerminal in various components. Enhance i18n translations for clear actions across multiple languages. 2025-08-19 11:11:49 +08:00
one
263166c9d1
refactor: improve mcp server list (#9257)
* refactor: mcp server list

* feat: add a delete button, improve button style

* refactor(McpServerList): extract McpServerCard

* feat: show numbers in tab titles

* refactor(preload): 明确getServerVersion返回类型为Promise<string | null>

* refactor(hooks): 移除MCPServer数组的类型断言

* refactor(MCPSettings): 简化服务器标签的渲染逻辑

* Revert "refactor(MCPSettings): 简化服务器标签的渲染逻辑"

This reverts commit 1dd08909af.

* doc: add comments

---------

Co-authored-by: icarus <eurfelux@gmail.com>
2025-08-19 10:26:06 +08:00
Gophlet
f3884af4b9
fix(Artboard): update dimensions to use CSS variables for better layout control (#9277) 2025-08-18 18:18:44 +08:00
Phantom
9a4200ac1a
feat(translate): Automatic language detection based on LLM (#7798)
* docs(i18n): 添加LLM语言检测相关i18n文本

* feat(translate): 添加语言自动检测功能支持

新增语言自动检测方法选择,支持算法检测、LLM检测和智能选择模式
添加未知语言类型支持并更新多语言翻译配置
重构语言检测逻辑,移除旧版基于Unicode的检测方法

* fix: 从依赖数组中移除未使用的autoDetectMethod

* refactor(translate): 修复命名语法错误

* fix(translate): 移除历史记录点击时设置源语言的操作

* refactor(Inputbar): 使用useTranslate钩子替换直接导入的翻译函数

将直接导入的getLanguageByLangcode函数替换为useTranslate钩子中的实现,以保持代码一致性

* refactor(翻译): 将translateLanguageOptions移动到utils/translate中获取

* refactor(TextEditPopup): 使用useTranslate钩子替代直接导入翻译工具

将直接导入的getLanguageByLangcode函数替换为useTranslate钩子中的实现,保持代码一致性

* refactor(translate): 调整翻译设置界面的语言检测方法位置

将语言检测方法选项从中间位置移动到底部,并更新相关标签文本

* refactor(types): 将AutoDetectionMethod类型移至types文件并添加类型守卫

将AutoDetectionMethod类型定义从translate.ts移动到types/index.ts
添加AutoDetectionMethods常量和isAutoDetectionMethod验证方法

* style(translate): 调整翻译设置页面的样式和内联条件渲染

优化翻译设置页面的布局间距,使用条件渲染替代display属性控制元素显示

* refactor(translate): 使用useCallback优化setTranslating函数

* feat(i18n): 添加语言自动检测方法的翻译文本

* fix(翻译动作): 修复源语言与目标语言比较逻辑错误

* fix(翻译设置): 修复未保存设置的问题

* fix(QwenMT): 修复QwenMT模型语言检测问题并添加错误处理

当使用QwenMT模型进行语言检测时自动回退到默认模型,并添加相关错误提示
更新i18n翻译文本以支持新的错误消息

* feat(translate): 添加日志记录以跟踪语言检测过程

添加日志记录来跟踪语言检测方法的选择和检测结果

* feat(i18n): 添加模型不存在提示和语言检测相关翻译

* fix(翻译提示): 更新语言检测提示以避免输出多余内容

* fix(翻译): 改进未知语言处理和日志记录

修复未知语言检测时的处理逻辑,当检测到未知语言时直接使用目标语言
为ActionTranslate组件添加日志上下文
在日志中记录检测到的语言信息

* fix: 将语言检测的callType从lang-detect更新为translate-lang-detect

* refactor(translate): 使用token计数替代字符长度判断语言检测方式

将基于字符长度的语言检测阈值判断改为基于token计数,提高检测准确性
使用sliceByTokens方法替代简单的slice,确保截取的文本符合token限制

* fix(i18n): 更新未知语言检测的错误消息并移除废弃字段

统一将未知语言错误提示从'translate.error.detected_unknown'迁移至'translate.error.detect.unknown',并移除所有语言文件中废弃的'detected_unknown'字段

* docs(schemas): 添加测试调用和翻译语言检测的callType选项文档
2025-08-18 18:00:08 +08:00
one
32d5f7477a
fix: markdown span wrap (#9264) 2025-08-18 13:40:59 +08:00
one
ecf1f816c3
refactor: bump antd to 5.27.0, update Input.Password suffix (#9263) 2025-08-18 13:39:56 +08:00
Phantom
f9056b0680
fix(providers): update poe url (#9262)
* fix(providers): 修正poe api的url结尾缺少斜杠的问题

* feat(types): 扩展 ReasoningEffortOptionalParams 中的 extra_body 类型

为 extra_body 添加具体的 google 配置类型,包括 thinking_config 及其属性

* feat(openai): 为Poe提供商添加推理参数传递支持

在Poe提供商的消息处理中,根据模型类型将reasoning_effort和thinking_budget参数附加到用户消息内容。支持GPT5、Claude和Gemini模型的特定参数传递。

* docs(openai): 添加关于poe reasoning_effort参数的注释
2025-08-18 11:55:10 +08:00
one
afae33d588
refactor: remove rc-virtual-list from DraggableList (#9258) 2025-08-18 09:36:15 +08:00
one
0b8c6ee536
perf(DraggableList): skip update if dnd to the same position (#9255) 2025-08-17 21:34:37 +08:00
Phantom
e652c1d783
fix: set developer role and service tier to default not supported (#9245)
* refactor(api): 将 isNotSupportDeveloperRole 替换为 isSupportDeveloperRole

重构开发者角色支持逻辑,使用正向命名的 isSupportDeveloperRole 替代反向命名的 isNotSupportDeveloperRole
更新相关迁移逻辑和配置检查逻辑

* refactor(api): 替换 isNotSupportServiceTier 为 isSupportServiceTier

将服务层级支持的否定式参数改为肯定式参数,修改默认行为为不支持
2025-08-17 19:48:41 +08:00
Phantom
aed9566409
fix: thinking button doesn't update assistant reasoning effort (#9247)
* feat(思考模式): 添加doubao_no_auto模型支持并重构选项回退逻辑

将思考模式选项回退逻辑从组件移至配置文件中统一管理
添加doubao_no_auto模型类型及其支持的选项配置

* refactor(assistant): 将模型兼容性检查逻辑移至useAssistant钩子

将ThinkingButton组件中的模型兼容性检查逻辑重构到useAssistant钩子中,使逻辑更集中
移除不再需要的useEffect导入

* refactor(useAssistant): 移除不必要的类型断言

* refactor: 移除THINKING_OPTION_FALLBACK并使用支持选项的第一个值作为回退

不再使用预定义的选项回退映射表,改为直接使用模型支持选项列表中的第一个值作为回退选项
2025-08-17 19:43:56 +08:00
one
33ec5c5c6b
refactor: improve html artifact style (#9242)
* refactor: use code font family in HtmlArtifactsCard

* fix: pass onSave to HtmlArtifactsPopup

* feat: add a save button

* fix: avoid extra blank lines

* feat: make split view resizable

* refactor: improve streaming check, simplify Markdown component

* refactor: improve button style and icons

* test: update snapshots, add tests

* refactor: move font family to TerminalPreview

* test: update

* refactor: add explicit type for Node

* refactor: remove min-height

* fix: type

* refactor: improve scrollbar and splitter style
2025-08-17 19:42:40 +08:00
one
b53a5aa3af
test: add tests for rehypeScalableSvg (#9248) 2025-08-17 18:46:33 +08:00
one
635bc084b7
refactor: rename some MCP list (#9253)
- BuiltinMCPServersSection -> BuiltinMCPServerList
- McpResourcesSection -> McpMarketList
2025-08-17 17:55:59 +08:00
Phantom
f0bd6c97fa
fix(providers): update not support enable_thinking providers (#9251)
fix(providers): 更新不支持enable_thinking参数的系统提供商列表

将不支持enable_thinking参数的系统提供商明确设置为'ollama'和'lmstudio',移除之前的注释说明
2025-08-17 17:28:39 +08:00
George·Dong
13a834ceaa
ci(PR-CI): grant only read permission for contents in CI (#9246) 2025-08-17 15:27:24 +08:00
one
ded941b7b9
refactor(Mermaid): render mermaid in shadow dom (#9187)
* refactor(Mermaid): render mermaid in shadow dom

* refactor: pass style overrides to renderSvgInShadowHost

* refactor(MermaidPreview): separate measurement from rendering

* refactor: rename hostCss to customCss

* refactor: use custom properties in shadow host

* test: update snapshots

* fix: remove svg max-width

* refactor: add viewBox to svg (experimental)

* Revert "refactor: add viewBox to svg (experimental)"

This reverts commit 8a265fa8a4.
2025-08-17 13:22:59 +08:00
Jason Young
535dcf4778
Fix/at symbol deletion issue (#9206)
* fix: prevent incorrect @ symbol deletion in QuickPanel

- Track trigger source (input vs button) and @ position
- Only delete @ when triggered by input with model selection
- Button-triggered panels never delete text content
- Validate @ still exists at recorded position before deletion

* feat: delete search text along with @ symbol

- Pass searchText from QuickPanel to onClose callback
- Delete both @ and search text (e.g., @cla) when model selected
- Validate text matches before deletion for safety
- Fallback to deleting only @ if text doesn't match

* refactor: clarify ESC vs Backspace behavior in QuickPanel

- ESC: Cancel operation, delete @ + searchText when models selected
- Backspace: Natural editing, @ already deleted by browser, no extra action
- Clear separation of intent improves predictability and UX
2025-08-17 11:43:44 +08:00
George·Dong
4dad2a593b
fix(export): robustly export reasoning and handle errors (#9221)
* fix(export): robustly export reasoning and handle errors

* fix(export): normalize <br> to newline before notion parsing

* feat(i18n): add notion truncation and unify export warn keys

* refactor(export): add typing, state guards, and error logging

* fix(export): preserve existing <br> in reasoning when convert to html

* feat(export): add DOMPurify sanitization for reasoning content

* chore(deps): remove unused @types/dompurify dev dep

* chore(deps): remove dompurify dependency

Remove dompurify from package.json and yarn. The changes
delete dompurify entries and simplify the lockfile resolution so the
project no longer declares dompurify as a direct dependency.

This cleans up unused dependency declarations and prevents installing
dompurify when it is not required.
2025-08-17 00:41:48 +08:00