Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
305 commits
Select commit Hold shift + click to select a range
7867630
refactor: 精简 UI 导航,移除重复入口
Rogers-F Nov 25, 2025
20443d8
fix: 恢复 Gemini CLI 配置页面入口
Rogers-F Nov 25, 2025
b16dbcd
feat: 移除 Gemini 侧边栏入口并添加侧边栏收起功能
Rogers-F Nov 25, 2025
0ba1002
fix: 修复侧边栏收起后图标不居中和按钮文字竖排问题
Rogers-F Nov 25, 2025
217ae3e
fix: 修复按钮文字垂直居中问题
Rogers-F Nov 25, 2025
a72faa7
fix: 修复侧边栏NEW徽章逻辑和多页面按钮样式问题
Rogers-F Nov 25, 2025
3916738
fix: 修复按钮文字溢出问题,使用更高优先级的CSS选择器覆盖全局样式
Rogers-F Nov 25, 2025
4031e98
fix: 修复按钮文字溢出问题,限制全局样式作用范围
Rogers-F Nov 25, 2025
d9cbd1e
fix: 修复按钮文字溢出和页面切换状态丢失问题
Rogers-F Nov 25, 2025
e8e1543
fix: 修复按钮文字垂直排列问题,强制 flex-direction: row
Rogers-F Nov 25, 2025
f9f7185
fix: 修复按钮内SVG被Tailwind preflight影响导致文字溢出
Rogers-F Nov 25, 2025
8726397
fix: 按钮添加 width:fit-content 和 padding 确保文字在按钮内
Rogers-F Nov 25, 2025
527cea8
fix: 使用 !important 强制按钮样式,确保宽度自适应
Rogers-F Nov 25, 2025
8dc0097
fix: 修正显示版本号为 v1.1.11
Rogers-F Nov 25, 2025
7b10e38
feat: 添加 Claude Opus 4.5 定价支持
Rogers-F Nov 26, 2025
7267331
feat: 完善 Claude 4.5 系列模型定价支持
Rogers-F Nov 26, 2025
5e3357a
fix: 修复固定拉黑模式失败阈值硬编码为3的问题
Rogers-F Nov 27, 2025
3bc2ff1
feat: 添加拉黑功能总开关和修复配置读取
Rogers-F Nov 27, 2025
892bac9
fix: 修复 SQLite 数据库锁问题和连接池未初始化导致首次写入失败
Rogers-F Nov 27, 2025
3b40431
feat: 添加控制台日志查看器和修复非流式请求状态码0判断
Rogers-F Nov 27, 2025
19d0497
fix: 修复数据库并发写入导致的SQLITE_BUSY错误
Rogers-F Nov 27, 2025
8adf709
fix: 彻底修复数据库并发锁冲突 + 控制台日志3天自动清理
Rogers-F Nov 27, 2025
7831924
chore: 更新版本号至v1.1.14
Rogers-F Nov 27, 2025
a36a7bb
fix: 移除未使用的strings导入
Rogers-F Nov 27, 2025
d5455da
fix: 修复状态码0和2xx被错误判定为失败的问题
Rogers-F Nov 28, 2025
f4bfbf1
chore: 更新版本号至v1.1.15
Rogers-F Nov 28, 2025
8ed2315
feat: 改进自动更新功能的日志输出和调试信息
Rogers-F Nov 28, 2025
f83aba6
chore: 更新版本号至v1.1.16
Rogers-F Nov 28, 2025
c06cb1f
fix: 修复request_log写入时的事务嵌套错误
Rogers-F Nov 28, 2025
2452c55
fix: 修复多项核心问题并实现故障切换
Rogers-F Nov 28, 2025
9ce1aaa
fix: 修复UI问题和版本号显示
Rogers-F Nov 28, 2025
9ca79dd
chore: 更新版本号至v1.1.19
Rogers-F Nov 28, 2025
a7559eb
fix: 修复等级拉黑开关不生效的问题
Rogers-F Nov 28, 2025
7438f83
fix: 修复模块导入路径问题
Rogers-F Nov 28, 2025
3cfee83
feat: 优化拉黑模式行为并修复多项问题
Rogers-F Nov 28, 2025
4afbfa7
feat: 优化拉黑响应速度并修复阈值同步问题
Rogers-F Nov 29, 2025
8859b87
fix: 修复Windows安装版自动更新权限问题和GitHub链接
Rogers-F Nov 29, 2025
09d825b
fix: 修复供应商添加后刷新消失的问题
Rogers-F Nov 29, 2025
b113585
fix: 修复 Gemini 配置写入和代理问题
Rogers-F Nov 29, 2025
2c19d87
feat: 支持 Gemini 供应商拖拽排序
Rogers-F Nov 29, 2025
92e0868
fix: 修复SQLite SQLITE_BUSY数据库锁死问题
Rogers-F Nov 30, 2025
a2f770b
feat: Windows安装版静默更新支持
Rogers-F Dec 1, 2025
fa9bc40
ci: 更新Release工作流支持静默更新
Rogers-F Dec 1, 2025
c387507
chore: bump version to v1.1.27
Rogers-F Dec 1, 2025
0b567ad
feat: Linux platform support with AppImage/DEB/RPM packages
Rogers-F Dec 1, 2025
5bcb7d2
fix: install Linux dependencies before Wails CLI
Rogers-F Dec 1, 2025
0b25062
fix: rename AppImage to standard name (linuxdeploy adds arch suffix)
Rogers-F Dec 1, 2025
89135f6
fix: handle lowercase AppImage filename from linuxdeploy
Rogers-F Dec 1, 2025
6afa2a9
feat: Gemini streaming token parsing & sidebar UI improvements
Rogers-F Dec 2, 2025
6dc339e
fix: prevent false blacklisting when client aborts connection
Rogers-F Dec 2, 2025
b6f8521
fix: Windows installer auto-update not triggering update flow
Rogers-F Dec 2, 2025
0ac25ea
fix: sidebar nav-item padding and border-radius alignment
Rogers-F Dec 2, 2025
9416b06
fix: complete overhaul of Windows auto-update system
Rogers-F Dec 2, 2025
f9e9d95
feat: add CLI configuration editor for providers
Rogers-F Dec 5, 2025
f57b9d1
feat: add custom fields support in CLI config editor
Rogers-F Dec 5, 2025
df705c6
fix: preserve blacklist level after auto-recovery
Rogers-F Dec 5, 2025
4108e07
feat: enhance cc-switch import with first-run detection and manual im…
Rogers-F Dec 5, 2025
1215262
chore: rename app to Code Switch R
Rogers-F Dec 5, 2025
c3b7323
feat: add CLI config preview and smart paste support
Rogers-F Dec 6, 2025
5a519f5
docs: update README with new features
Rogers-F Dec 6, 2025
3af2819
feat: add MCP JSON import and auto-sort providers by level
Rogers-F Dec 6, 2025
2729e37
fix: support cc-switch new config file name
Rogers-F Dec 6, 2025
2d9453b
chore: bump version to v1.3.5
Rogers-F Dec 6, 2025
f2b41b9
fix: extract Gemini model name from endpoint for accurate token count…
Rogers-F Dec 6, 2025
de4682c
chore: bump version to v1.3.6
Rogers-F Dec 6, 2025
54bc1a7
feat: add Gemini 3 Pro Preview pricing
Rogers-F Dec 6, 2025
f20a25f
chore: bump version to v1.3.7
Rogers-F Dec 6, 2025
91e7938
feat: add new services and update dependencies
GoldenTangerine Dec 6, 2025
231cc80
feat: implement provider endpoint synchronization and UI enhancements
GoldenTangerine Dec 6, 2025
70e0c8b
feat: add auto connectivity test for providers
Rogers-F Dec 7, 2025
85eab99
feat: improve dark mode button visibility and add token warning
Rogers-F Dec 7, 2025
cd11d95
Merge branch 'Rogers-F:main' into main
GoldenTangerine Dec 7, 2025
0f97752
fix: resolve connectivity timeout false blacklisting and duplicate pr…
Rogers-F Dec 7, 2025
dbe77e4
feat: enhance notification system and update app settings
GoldenTangerine Dec 7, 2025
b1d31e3
feat: add provider switch notification with UI highlight
GoldenTangerine Dec 7, 2025
e005cca
feat: add cost detail modal and enhance logs summary
GoldenTangerine Dec 7, 2025
60d817b
feat: add connectivity test service bindings
GoldenTangerine Dec 7, 2025
8e1951f
Merge upstream/main: sync with Rogers-F/code-switch-R
GoldenTangerine Dec 7, 2025
c619c38
fix: preserve existing settings when enabling proxy
Rogers-F Dec 7, 2025
cf66d66
Merge branch 'Rogers-F:main' into main
GoldenTangerine Dec 7, 2025
c10ac87
fix: continue with empty config on parse failure instead of blocking
Rogers-F Dec 7, 2025
9e8d858
fix: resolve model mapping save failure and allow provider name editing
Rogers-F Dec 7, 2025
d1dc743
fix: restore provider name immutability to preserve blacklist and sta…
Rogers-F Dec 7, 2025
22ada1b
fix: prevent empty supportedModels from blocking modelMapping save
Rogers-F Dec 8, 2025
66b1dde
Merge branch 'Rogers-F:main' into main
GoldenTangerine Dec 8, 2025
83668b7
feat: add reasoning cost to ReqeustLog model
GoldenTangerine Dec 8, 2025
ce87e6b
feat: add startup warning when modelMapping is set without supportedM…
Rogers-F Dec 8, 2025
bcc131b
Merge pull request #2 from GoldenTangerine/main
Rogers-F Dec 8, 2025
09907db
fix: 修复控制台日志递归爆炸问题
GoldenTangerine Dec 8, 2025
1704ce1
fix: resolve cc-switch import and connectivity test issues
Rogers-F Dec 8, 2025
2e8ac57
Merge branch 'Rogers-F:main' into main
GoldenTangerine Dec 8, 2025
8a998a8
feat: add SQLite import support and fix edit icon alignment
Rogers-F Dec 8, 2025
db7c7b5
fix: use supported model for connectivity test
Rogers-F Dec 8, 2025
44b91e9
feat: add connectivity test model selection
Rogers-F Dec 8, 2025
b7259ef
feat: add apiFormat field for third-party provider compatibility
Rogers-F Dec 8, 2025
1dab727
feat: add customizable endpoint and auth method for connectivity testing
Rogers-F Dec 8, 2025
920f488
fix: platform-aware defaults for connectivity test
Rogers-F Dec 8, 2025
d9d9e8f
feat: add debug logging for connectivity test troubleshooting
Rogers-F Dec 8, 2025
b8da451
Merge branch 'Rogers-F:main' into main
GoldenTangerine Dec 9, 2025
f02ac1b
feat: v1.5.3 - 修复代理开关状态、新增配置预览编辑
Rogers-F Dec 9, 2025
2ceb374
chore: update version to 1.5.3
Rogers-F Dec 9, 2025
751c9f3
chore: sync version_service.go to 1.5.3
Rogers-F Dec 9, 2025
0674002
ci: auto-update version from git tag in all platforms
Rogers-F Dec 9, 2025
1a6ba0f
fix: 修复代理开关刷新后状态显示错误 - 使用 in 检查字段存在性替代 ?? 运算符
Rogers-F Dec 9, 2025
4e1b309
ci: 从 RELEASE_NOTES.md 自动提取版本更新说明
Rogers-F Dec 9, 2025
250b9df
fix: 修复 Claude 代理状态因 env 非字符串值解析失败的问题 - 使用 map[string]any 宽容解析,避免 jso…
Rogers-F Dec 9, 2025
ff3af13
chore: bump version to v1.5.4 with release notes
Rogers-F Dec 9, 2025
8372b5d
feat: v2.0.0 自定义 CLI 工具支持 (Others Tab)
Rogers-F Dec 9, 2025
dc6077f
fix: 添加 ToastType warning 类型修复构建错误
Rogers-F Dec 9, 2025
6722c79
Initial plan
Copilot Dec 10, 2025
93688a2
Add /v1/models endpoint support for provider-based model list forwarding
Copilot Dec 10, 2025
c0a2ffe
Refactor: Extract common /v1/models request forwarding logic into sha…
Copilot Dec 10, 2025
7f68cfc
Complete /v1/models endpoint implementation with tests and documentation
Copilot Dec 10, 2025
80341f6
Merge pull request #1 from lwaay2025/copilot/add-model-access-endpoint
lwaay2025 Dec 10, 2025
b3b8838
fix: 修复配置迁移、后台服务管理和性能问题 (v2.1.0)
Rogers-F Dec 10, 2025
53b0228
fix: 修复 healthcheckservice 编译错误
Rogers-F Dec 10, 2025
133e9d9
fix: 添加缺失的 log 包导入到 providerservice.go
Rogers-F Dec 10, 2025
685bc9c
fix(critical): 修复配置加载死锁导致数据同步失效的严重问题
Rogers-F Dec 10, 2025
1620bef
feat: 添加可用性监控页面入口到侧边栏和路由
Rogers-F Dec 10, 2025
4b73e9e
feat: 完整迁移前端到可用性监控配置
Rogers-F Dec 10, 2025
de0d823
fix: 修复 timeout 字段的类型错误
Rogers-F Dec 10, 2025
6690bf9
fix(critical): 修复数据库表缺失和简化配置表单
Rogers-F Dec 10, 2025
e7d0d12
feat: 可用性页面添加配置编辑功能 (v2.1.1)
Rogers-F Dec 10, 2025
a06e8de
fix: 添加缺失的 availabilityConfig 类型定义
Rogers-F Dec 10, 2025
4855b13
feat: 完善可用性和 MCP 配置体验
Rogers-F Dec 10, 2025
b2ac7af
fix: 修复编辑模式下 JSON Tab 无法切换的问题
Rogers-F Dec 10, 2025
03ab437
fix(critical): 修复 MCP Tab 不可见和编辑按钮对比度问题
Rogers-F Dec 10, 2025
8cb3a31
feat: 实现开关双向同步和应用设置关联
Rogers-F Dec 10, 2025
9126403
feat: 应用 Gemini 设计方案 C (Elegant Glass) 优化按钮样式
Rogers-F Dec 10, 2025
07d4059
fix: 修复自动监控默认值和未使用的 import
Rogers-F Dec 10, 2025
534ac7d
fix(critical): 修复自动可用性监控默认值为开启
Rogers-F Dec 10, 2025
cd38623
fix(critical): 修复固定拉黑模式行为不一致问题
Rogers-F Dec 11, 2025
a78c49d
fix: 添加全局开关检查,避免拉黑关闭时误用固定模式
Rogers-F Dec 11, 2025
dad12d4
feat: 统一徽章样式设计 (v2.2.0)
Rogers-F Dec 11, 2025
8615520
feat: 添加可选 API 端点配置功能(核心实现)
Rogers-F Dec 11, 2025
0927ee1
feat: 完善 API 端点校验逻辑 (v2.2.1)
Rogers-F Dec 11, 2025
83e08b7
feat: 添加 API 端点配置 UI 和国际化
Rogers-F Dec 11, 2025
e9d3fae
fix: 健康检查支持自定义 API 端点
Rogers-F Dec 11, 2025
d4b6ad8
feat: 改进可用性监控 UI 和增强 Gemini API Key 安全性 (v2.2.2)
Rogers-F Dec 11, 2025
adac817
feat: 添加供应商认证方式配置功能 (v2.3.0)
Rogers-F Dec 11, 2025
c6da8a4
fix: 默认认证方式改回 Bearer,与 v2.2.x 保持兼容 (v2.3.1)
Rogers-F Dec 11, 2025
02a3532
fix: Gemini 托管启用时设置 GEMINI_API_KEY=code-switch (v2.3.2)
Rogers-F Dec 11, 2025
21c0b26
Merge pull request #3 from lwaay2025/main
Rogers-F Dec 12, 2025
3eb3b74
fix: /v1/models 端点支持认证方式配置 (v2.3.3)
Rogers-F Dec 12, 2025
119a061
feat: 全面修复三大平台更新系统与配置管理 (v2.4.0)
Rogers-F Dec 12, 2025
de67cca
fix: 修正 DeepLinkImportDialog 的 error.ts 导入路径
Rogers-F Dec 13, 2025
089fa91
fix: MCP modal 打开时重置模式状态,确保 tab 切换正常
Rogers-F Dec 13, 2025
6dc40bd
chore: 更新版本号到 v2.4.1
Rogers-F Dec 13, 2025
f8d956b
fix: CLI 配置预览 textarea 解锁时自动聚焦,修复 macOS WebView 键盘输入问题
Rogers-F Dec 13, 2025
02bb3d3
fix: 增强更新系统日志,显示详细错误信息,修复进度更新逻辑
Rogers-F Dec 13, 2025
7aeece8
chore: 更新版本号到 v2.4.2
Rogers-F Dec 13, 2025
bf0bdfa
fix: 增强自动更新系统稳定性和安全性
Rogers-F Dec 13, 2025
bd300d5
fix: 修复 MCP JSON 导入输入框在 macOS 上的键盘输入问题
Rogers-F Dec 13, 2025
315088a
debug: 添加调试日志诊断 MCP JSON 导入模态框渲染问题
Rogers-F Dec 13, 2025
5de1385
debug: 使用 alert() 替代 console.log 诊断 Tab 点击问题
Rogers-F Dec 13, 2025
9da290b
debug: 添加红色测试文本验证 JSON 模式渲染,移除 alert 调试
Rogers-F Dec 13, 2025
d9bb3b6
fix: 修复 InlineModal 点击事件穿透问题,使用 pointer-events: none 的 overlay
Rogers-F Dec 13, 2025
39657d4
fix: 移除内层重复的 v-if,修复 Tab 切换导致模态框关闭的问题
Rogers-F Dec 13, 2025
d0ddbdd
fix: 彻底修复 MCP JSON 导入模态框问题
Rogers-F Dec 14, 2025
88e228d
refactor: 重构 MCP 编辑为全屏面板,彻底解决 macOS WebView 问题
Rogers-F Dec 14, 2025
42c7f2e
fix: 补充 FullScreenPanel 可访问性功能(Esc关闭、焦点管理、aria属性)
Rogers-F Dec 14, 2025
27d0882
fix: 修复点击Tab按钮误关闭面板问题(移除window级Esc监听)
Rogers-F Dec 14, 2025
a66efa4
feat(mcp): 在表单填写模式下添加可编辑 JSON 配置区域
Rogers-F Dec 15, 2025
91ee918
fix(mcp): 修复批量导入Tab被遮罩层覆盖问题并改名
Rogers-F Dec 15, 2025
af03122
perf: 将HTTP请求超时时间从3小时延长到32小时
Rogers-F Dec 15, 2025
ed3a556
fix: 修复点击Tab按钮误关闭FullScreenPanel的问题
Rogers-F Dec 15, 2025
9606e03
fix(mcp): 修复批量导入多个问题并增强FullScreenPanel防误关闭
Rogers-F Dec 16, 2025
49264da
fix(mcp): 修复FullScreenPanel属性穿透问题导致z-index覆盖失效
Rogers-F Dec 16, 2025
1415bc9
fix(mcp): 修复批量导入Tab点击后输入框不显示的问题
Rogers-F Dec 16, 2025
f171171
fix: 添加跨平台 hideWindowCmd 函数定义
Rogers-F Dec 16, 2025
e983a5b
fix(mcp): 重构FullScreenPanel事件处理架构解决Tab误关闭问题
Rogers-F Dec 16, 2025
33ccc91
feat(mcp): 重构批量导入功能为两步向导模式
Rogers-F Dec 16, 2025
da058d9
chore: bump version to v2.5.12
Rogers-F Dec 16, 2025
a26e753
fix: 修复CI构建错误(类型定义和未使用导入)
Rogers-F Dec 16, 2025
f9f6926
chore: bump version to v2.5.13
Rogers-F Dec 16, 2025
517b4dc
debug(mcp): 添加批量导入按钮点击调试日志
Rogers-F Dec 16, 2025
9227d7e
debug(mcp): 使用 Toast 通知替代 console.log 调试
Rogers-F Dec 16, 2025
b5ae03e
debug(mcp): 在 BatchImportModal watch 中添加 Toast 调试
Rogers-F Dec 16, 2025
12b5500
debug(mcp): 在 FullScreenPanel 添加调试 toast 追踪 open 状态
Rogers-F Dec 16, 2025
8295041
fix(build): 修复 ToastType 类型错误(info -> success)
Rogers-F Dec 16, 2025
d3b75f9
fix(mcp): 修复批量导入弹窗被遮挡导致不显示的问题
Rogers-F Dec 16, 2025
035762d
debug(mcp): 临时禁用 Transition 测试动画是否卡住
Rogers-F Dec 16, 2025
520736f
debug(mcp): 临时禁用 Teleport 测试传送目标问题
Rogers-F Dec 16, 2025
cade752
debug(mcp): 添加极端可见样式(红色背景+z-index:99999)
Rogers-F Dec 16, 2025
dcdbf5a
debug(mcp): 在 BatchImportModal 添加直接测试 div
Rogers-F Dec 17, 2025
bf3728a
debug(mcp): 尝试使用 props.open 替代 open
Rogers-F Dec 17, 2025
d90fb6a
debug(mcp): 移除 v-bind=$attrs 测试属性冲突
Rogers-F Dec 17, 2025
0709f3d
debug(mcp): 使用 v-show 替代 v-if 测试
Rogers-F Dec 17, 2025
a2ba943
debug(mcp): 移除蓝色测试 div,避免遮挡
Rogers-F Dec 17, 2025
ee9d410
debug(mcp): 极简化 BatchImportModal 模板测试
Rogers-F Dec 17, 2025
b844b1d
fix(mcp): 恢复 FullScreenPanel 和 BatchImportModal 完整实现
Rogers-F Dec 17, 2025
f080f75
debug(mcp): 测试纯 HTML slot 内容 (v2.5.30)
Rogers-F Dec 17, 2025
34a6512
debug(mcp): 测试 BaseTextarea 组件 (v2.5.31)
Rogers-F Dec 17, 2025
4a554d7
debug(mcp): 分区测试 - 7个区块一次定位问题 (v2.5.32)
Rogers-F Dec 17, 2025
f0cd75d
debug(mcp): 测试 v-if 条件 (v2.5.34)
Rogers-F Dec 17, 2025
35f1604
debug(mcp): 测试 ref + i18n (v2.5.35)
Rogers-F Dec 17, 2025
ee9d884
debug(mcp): 只测 ref (v2.5.36)
Rogers-F Dec 17, 2025
6949acc
debug(mcp): 只测 i18n placeholder (v2.5.37)
Rogers-F Dec 17, 2025
d69b61d
debug(mcp): 测试简单 i18n key (v2.5.38)
Rogers-F Dec 17, 2025
428323f
fix(mcp): 修复批量导入弹窗因 i18n placeholder 多行 JSON 导致渲染失败
Rogers-F Dec 17, 2025
2e505be
feat(mcp): 修复内置MCP删除问题并新增Gemini平台支持 (v2.5.40)
Rogers-F Dec 17, 2025
6d0892c
feat: 新增供应商直连应用功能 (v2.5.41)
Rogers-F Dec 18, 2025
39151a5
feat: CLI配置预览增强与代理Token向后兼容 (v2.5.42)
Rogers-F Dec 18, 2025
32a55dd
fix(gemini): 允许编辑模式下修改API密钥 (v2.5.43)
Rogers-F Dec 18, 2025
47be92b
chore: 清理MCP批量导入debug弹窗
Rogers-F Dec 18, 2025
d3dccf0
Merge branch 'Rogers-F:main' into main
GoldenTangerine Dec 19, 2025
34fa2e1
feat(blacklist): 拉黑模式改为同Provider重试到拉黑再切换
Rogers-F Dec 21, 2025
78d38ba
fix(cli-config): 修复自定义字段无法删除的问题
Rogers-F Dec 21, 2025
663109f
fix(cli-config): 完善自定义字段编辑体验
Rogers-F Dec 21, 2025
6bc527e
chore: bump version to v2.5.44
Rogers-F Dec 22, 2025
e21f715
feat(network): WSL 支持与代理状态管理
Rogers-F Dec 22, 2025
318ff20
fix: 修复设置页面两个 bug
Rogers-F Dec 22, 2025
fc72fc1
fix: 修复 WSL 发行版检测乱码问题
Rogers-F Dec 22, 2025
5b4f55e
fix(wsl): 修复 WSL 配置失败及开关排版问题
Rogers-F Dec 22, 2025
ac86ed0
fix(wsl): 修复 bash -c 参数转义导致的配置失败
Rogers-F Dec 22, 2025
cfd65d2
fix(gemini): 允许编辑 Gemini 供应商的 API Key
Rogers-F Dec 25, 2025
90901e2
fix(gemini): 修复编辑供应商时字段丢失和强制禁用问题
Rogers-F Dec 25, 2025
f78e08d
fix: 修复提示词管理和CLI配置编辑器的同步问题
Rogers-F Dec 28, 2025
599b30b
fix: 编辑已启用提示词时自动同步文件最新内容
Rogers-F Dec 28, 2025
941b1d8
feat(skill): 重构技能管理支持多平台多位置
Rogers-F Dec 29, 2025
5b3b255
feat(update): 重构自动更新机制 + 同级轮询调度
Rogers-F Dec 30, 2025
43ce66e
fix(logs): sync provider dropdown with refreshed logs.
Jan 15, 2026
ef7f676
Merge pull request #17 from DragonFive/fix/fix_log
Rogers-F Jan 17, 2026
658a7a4
fix(cliconfig): 修复 CLI 配置预览一致性问题
Rogers-F Dec 31, 2025
8719531
fix(compat): 修复 macOS Monterey 输入框无法使用问题
Rogers-F Jan 18, 2026
2aead42
fix(customCli): 修复代理注入配置保存失败问题
Rogers-F Jan 18, 2026
f6b2e32
fix(atomicWrite): 修复错误信息缺失路径问题
Rogers-F Jan 19, 2026
bac716e
chore: bump version to v2.6.12
Rogers-F Jan 19, 2026
621def3
Merge branch 'Rogers-F:main' into main
GoldenTangerine Jan 21, 2026
cc32385
✨ feat(heatmap): 添加自适应热力图和图标搜索功能
GoldenTangerine Jan 21, 2026
a6fa272
chore: bump version to v2.6.14
GoldenTangerine Jan 21, 2026
f459d87
🐎 ci(release): 为构建产物添加版本号后缀
GoldenTangerine Jan 21, 2026
ffb1d59
✨ feat(logs): token 数值支持 k/M/B 单位换算
GoldenTangerine Jan 21, 2026
739e73b
✨ feat(main): 首页 token 数值支持 k/M/B 单位换算
GoldenTangerine Jan 21, 2026
307753f
✨ feat(logs): 增强日志界面统计功能
GoldenTangerine Jan 21, 2026
cef3fea
💄 style(logs): 优化缓存命中率显示样式
GoldenTangerine Jan 21, 2026
aa48cc6
✨ feat(tray): 添加托盘菜单预算进度功能
GoldenTangerine Jan 22, 2026
0a87439
fix(update): 修复自动更新多项安全漏洞和稳定性问题
Rogers-F Jan 22, 2026
4eb6913
chore: bump version to v2.6.13
Rogers-F Jan 22, 2026
cea261a
🐛 fix(tray): 修复托盘菜单禁用项 API 调用
GoldenTangerine Jan 22, 2026
1b4b612
✨ feat(tray): 添加独立托盘窗口和预算周期功能
GoldenTangerine Jan 22, 2026
9f8334d
💄 style(tray): 优化托盘窗口 UI 和 macOS 窗口行为
GoldenTangerine Jan 22, 2026
dae35b8
💄 style(tray): 优化预算周期显示和主窗口尺寸
GoldenTangerine Jan 22, 2026
80d2b05
✨ feat(tray): 添加托盘头部品牌标识和托管状态
GoldenTangerine Jan 22, 2026
ddd7f12
✨ feat(budget): 添加用量调整和预测方法配置功能
GoldenTangerine Jan 23, 2026
ccc5c72
✨ feat(budget): 为 Codex 平台添加独立预算配置系统
GoldenTangerine Jan 23, 2026
7505417
💄 style(ui): 优化面板标题和等级徽章样式
GoldenTangerine Jan 23, 2026
3998415
Merge pull request #24: 添加自适应热力图和图标搜索功能
Rogers-F Jan 24, 2026
cfc7bee
✨ feat(update): 实现自动更新功能
Rogers-F Jan 27, 2026
729d0d9
🐛 fix(update): 修复 Wails 事件监听器类型错误
Rogers-F Jan 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"permissions": {
"allow": [
"WebSearch",
"Bash(find:*)",
"mcp__exa__web_search_exa",
"mcp__ace-tool__search_context"
],
"deny": [],
"ask": []
}
}
308 changes: 276 additions & 32 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,16 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Update version from tag
id: version
run: |
VERSION=${GITHUB_REF#refs/tags/v}
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
echo "Updating version to: $VERSION"
sed -i '' "s/const AppVersion = \"v[^\"]*\"/const AppVersion = \"v$VERSION\"/" version_service.go
echo "Updated version_service.go:"
grep "AppVersion" version_service.go

- uses: actions/setup-go@v5
with:
go-version: '1.24'
Expand Down Expand Up @@ -56,20 +66,43 @@ jobs:
- name: Archive macOS app
run: |
cd bin
ditto -c -k --sequesterRsrc --keepParent "$(basename ${{ steps.find-app.outputs.app_path }})" codeswitch-macos-${{ matrix.arch }}.zip
ditto -c -k --sequesterRsrc --keepParent "$(basename ${{ steps.find-app.outputs.app_path }})" CodeSwitch-v${{ steps.version.outputs.VERSION }}-macos-${{ matrix.arch }}.zip

- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: macos-${{ matrix.arch }}
path: bin/codeswitch-macos-${{ matrix.arch }}.zip
path: bin/CodeSwitch-v${{ steps.version.outputs.VERSION }}-macos-${{ matrix.arch }}.zip

build-windows:
name: Build Windows
runs-on: windows-latest
steps:
- uses: actions/checkout@v4

- name: Update version from tag
id: version
shell: pwsh
run: |
$VERSION = "${{ github.ref_name }}".TrimStart('v')
"VERSION=$VERSION" | Out-File -FilePath $env:GITHUB_OUTPUT -Append
Write-Host "Updating version to: $VERSION"

# Update version_service.go
$content = Get-Content version_service.go -Raw
$content = $content -replace 'const AppVersion = "v[^"]*"', "const AppVersion = `"v$VERSION`""
Set-Content version_service.go $content
Write-Host "Updated version_service.go:"
Select-String "AppVersion" version_service.go

# Update build/windows/info.json
$json = Get-Content build/windows/info.json -Raw | ConvertFrom-Json
$json.fixed.file_version = $VERSION
$json.info.'0000'.ProductVersion = $VERSION
$json | ConvertTo-Json -Depth 10 | Set-Content build/windows/info.json
Write-Host "Updated build/windows/info.json:"
Get-Content build/windows/info.json

- uses: actions/setup-go@v5
with:
go-version: '1.24'
Expand Down Expand Up @@ -122,17 +155,155 @@ jobs:
makensis -DARG_WAILS_AMD64_BINARY="$binaryPath" project.nsi
Pop-Location

- name: Rename files with version
shell: pwsh
run: |
$VERSION = "${{ steps.version.outputs.VERSION }}"
Push-Location bin
Rename-Item "CodeSwitch.exe" "CodeSwitch-v$VERSION.exe"
Pop-Location
# Rename installer (generated by NSIS)
if (Test-Path "build/windows/nsis/CodeSwitch-amd64-installer.exe") {
Move-Item "build/windows/nsis/CodeSwitch-amd64-installer.exe" "bin/CodeSwitch-v$VERSION-amd64-installer.exe"
} elseif (Test-Path "bin/CodeSwitch-amd64-installer.exe") {
Rename-Item "bin/CodeSwitch-amd64-installer.exe" "CodeSwitch-v$VERSION-amd64-installer.exe"
}
Write-Host "Files renamed:"
Get-ChildItem bin

- name: Generate SHA256 Checksums
shell: pwsh
run: |
$VERSION = "${{ steps.version.outputs.VERSION }}"
Push-Location bin
Get-FileHash -Algorithm SHA256 "CodeSwitch-v$VERSION.exe" | ForEach-Object { "$($_.Hash.ToLower()) CodeSwitch-v$VERSION.exe" } | Out-File -Encoding ascii "CodeSwitch-v$VERSION.exe.sha256"
Write-Host "SHA256 checksums generated:"
Get-Content *.sha256
Pop-Location

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: windows-amd64
path: |
bin/CodeSwitch-amd64-installer.exe
bin/CodeSwitch.exe
bin/CodeSwitch-v${{ steps.version.outputs.VERSION }}-amd64-installer.exe
bin/CodeSwitch-v${{ steps.version.outputs.VERSION }}.exe
bin/CodeSwitch-v${{ steps.version.outputs.VERSION }}.exe.sha256

build-linux:
name: Build Linux
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@v4

- name: Update version from tag
id: version
run: |
VERSION=${GITHUB_REF#refs/tags/v}
echo "VERSION=$VERSION" >> $GITHUB_OUTPUT
echo "Updating version to: $VERSION"
sed -i "s/const AppVersion = \"v[^\"]*\"/const AppVersion = \"v$VERSION\"/" version_service.go
echo "Updated version_service.go:"
grep "AppVersion" version_service.go

- uses: actions/setup-go@v5
with:
go-version: '1.24'

- uses: actions/setup-node@v4
with:
node-version: '22'

- name: Install Linux Build Dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential \
pkg-config \
libgtk-3-dev \
libwebkit2gtk-4.1-dev

- name: Install Wails
run: go install github.com/wailsapp/wails/v3/cmd/wails3@latest

- name: Install frontend dependencies
run: cd frontend && npm install

- name: Update build assets
run: wails3 task common:update:build-assets

- name: Generate bindings
run: wails3 task common:generate:bindings

- name: Build Linux Binary
run: wails3 task linux:build
env:
PRODUCTION: "true"

- name: Generate Desktop File
run: wails3 task linux:generate:dotdesktop

- name: Create AppImage
run: wails3 task linux:create:appimage

- name: Rename AppImage
run: |
VERSION=${{ steps.version.outputs.VERSION }}
cd bin
echo "Files in bin/:"
ls -la
# linuxdeploy creates AppImage with lowercase name and arch suffix
for f in *-x86_64.AppImage *-aarch64.AppImage; do
if [ -f "$f" ]; then
mv "$f" "CodeSwitch-v${VERSION}.AppImage"
echo "Renamed $f -> CodeSwitch-v${VERSION}.AppImage"
break
fi
done
ls -la "CodeSwitch-v${VERSION}.AppImage"

- name: Set nfpm script permissions
run: |
chmod +x build/linux/nfpm/scripts/postinstall.sh
chmod +x build/linux/nfpm/scripts/postremove.sh

- name: Update nfpm version
run: |
VERSION=${GITHUB_REF#refs/tags/v}
sed -i "s/^version:.*/version: \"$VERSION\"/" build/linux/nfpm/nfpm.yaml
echo "Updated nfpm version to: $VERSION"

- name: Create DEB Package
run: wails3 task linux:create:deb

- name: Create RPM Package
run: wails3 task linux:create:rpm

- name: Generate SHA256 Checksums
run: |
VERSION=${{ steps.version.outputs.VERSION }}
cd bin
sha256sum "CodeSwitch-v${VERSION}.AppImage" > "CodeSwitch-v${VERSION}.AppImage.sha256"
for f in codeswitch_*.deb; do [ -f "$f" ] && sha256sum "$f" > "${f}.sha256"; done
for f in codeswitch-*.rpm; do [ -f "$f" ] && sha256sum "$f" > "${f}.sha256"; done
echo "SHA256 checksums:"
cat *.sha256

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: linux-amd64
path: |
bin/CodeSwitch-v${{ steps.version.outputs.VERSION }}.AppImage
bin/CodeSwitch-v${{ steps.version.outputs.VERSION }}.AppImage.sha256
bin/codeswitch_*.deb
bin/codeswitch_*.deb.sha256
bin/codeswitch-*.rpm
bin/codeswitch-*.rpm.sha256

create-release:
name: Create Release
needs: [build-macos, build-windows]
needs: [build-macos, build-windows, build-linux]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
Expand All @@ -145,44 +316,117 @@ jobs:
- name: Display structure
run: ls -R artifacts

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.12'

- name: Prepare release assets
run: |
VERSION=${GITHUB_REF#refs/tags/v}
mkdir -p release-assets
cp artifacts/macos-arm64/codeswitch-macos-arm64.zip release-assets/
cp artifacts/macos-amd64/codeswitch-macos-amd64.zip release-assets/
cp artifacts/windows-amd64/CodeSwitch-amd64-installer.exe release-assets/
cp artifacts/windows-amd64/CodeSwitch.exe release-assets/
ls -lh release-assets/

- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: release-assets/*
body: |
## 新增功能
# macOS
cp artifacts/macos-arm64/CodeSwitch-v${VERSION}-macos-arm64.zip release-assets/
cp artifacts/macos-amd64/CodeSwitch-v${VERSION}-macos-amd64.zip release-assets/

### 优先级分组调度
# Windows
cp artifacts/windows-amd64/CodeSwitch-v${VERSION}-amd64-installer.exe release-assets/
cp artifacts/windows-amd64/CodeSwitch-v${VERSION}.exe release-assets/
cp artifacts/windows-amd64/CodeSwitch-v${VERSION}.exe.sha256 release-assets/

新增 Level 字段(1-10)用于供应商优先级分组,实现更灵活的降级策略。
# Linux
cp artifacts/linux-amd64/CodeSwitch-v${VERSION}.AppImage release-assets/
cp artifacts/linux-amd64/CodeSwitch-v${VERSION}.AppImage.sha256 release-assets/
cp artifacts/linux-amd64/codeswitch_*.deb release-assets/ 2>/dev/null || true
cp artifacts/linux-amd64/codeswitch_*.deb.sha256 release-assets/ 2>/dev/null || true
cp artifacts/linux-amd64/codeswitch-*.rpm release-assets/ 2>/dev/null || true
cp artifacts/linux-amd64/codeswitch-*.rpm.sha256 release-assets/ 2>/dev/null || true

**主要改进**:
- 后端:重构调度逻辑为两层循环架构,优先尝试高优先级分组
- 前端:添加 Level 下拉选择器和可视化徽章(L1-L10)
- 国际化:支持中英文 Level 描述文本
- 测试:新增单元测试覆盖分组、排序和序列化逻辑
ls -lh release-assets/

**使用场景**:
- 成本优化:低成本供应商优先,高成本作为备份
- 稳定性保障:高质量供应商优先,社区供应商降级
- 地域分组:国内供应商优先,国外供应商备份
- name: Generate latest.json
run: |
VERSION=${GITHUB_REF#refs/tags/v}
python3 scripts/generate-latest-json.py "v${VERSION}" release-assets release-assets/latest.json
echo "Generated latest.json:"
cat release-assets/latest.json

- name: Generate release body
run: |
VERSION=${GITHUB_REF#refs/tags/v}
echo "Generating release body for v$VERSION"

**向后兼容**:未设置 Level 的供应商自动默认为 Level 1。
# 提取当前版本的更新内容(从标题到下一个版本标题之前)
# 注意:先用 tr 去除 Windows CRLF 换行符,否则 awk 匹配失败
tr -d '\r' < RELEASE_NOTES.md | awk "/^# Code Switch v$VERSION/,/^# Code Switch v[0-9]/" | head -n -1 > /tmp/version_notes.md

# 如果没找到版本说明,使用默认内容
if [ ! -s /tmp/version_notes.md ]; then
echo "## 更新亮点" > /tmp/version_notes.md
echo "- 请查看提交历史了解详细更新" >> /tmp/version_notes.md
fi

## 安装说明
# 组合完整的 release body
cat /tmp/version_notes.md > /tmp/release_body.md

cat >> /tmp/release_body.md << EOF

---

## 下载说明

| 平台 | 文件 | 说明 |
|------|------|------|
| **Windows (首次)** | \`CodeSwitch-v${VERSION}-amd64-installer.exe\` | NSIS 安装器 |
| **Windows (便携)** | \`CodeSwitch-v${VERSION}.exe\` | 直接运行 |
| **macOS (ARM)** | \`CodeSwitch-v${VERSION}-macos-arm64.zip\` | Apple Silicon |
| **macOS (Intel)** | \`CodeSwitch-v${VERSION}-macos-amd64.zip\` | Intel 芯片 |
| **Linux (通用)** | \`CodeSwitch-v${VERSION}.AppImage\` | 跨发行版便携 |
| **Linux (Debian/Ubuntu)** | \`codeswitch_*.deb\` | apt 安装 |
| **Linux (RHEL/Fedora)** | \`codeswitch-*.rpm\` | dnf/yum 安装 |

## Linux 安装

### AppImage (推荐)
\`\`\`bash
chmod +x CodeSwitch-v${VERSION}.AppImage
./CodeSwitch-v${VERSION}.AppImage
\`\`\`
如遇 FUSE 问题:\`./CodeSwitch-v${VERSION}.AppImage --appimage-extract-and-run\`

### Debian/Ubuntu
\`\`\`bash
sudo dpkg -i codeswitch_*.deb
sudo apt-get install -f # 安装依赖
\`\`\`

### RHEL/Fedora
\`\`\`bash
sudo rpm -i codeswitch-*.rpm
# 或
sudo dnf install codeswitch-*.rpm
\`\`\`

## 文件校验
所有平台均提供 SHA256 校验文件(\`.sha256\`),下载后可验证完整性:
\`\`\`bash
# Linux/macOS
sha256sum -c CodeSwitch-v${VERSION}.AppImage.sha256

# Windows PowerShell
Get-FileHash CodeSwitch-v${VERSION}.exe | Format-List
\`\`\`
EOF

echo "Generated release body:"
cat /tmp/release_body.md

- **Windows**:下载 `codeswitch-amd64-installer.exe` 运行安装,或下载 `codeswitch.exe` 直接运行
- **macOS (Apple Silicon)**:下载 `codeswitch-macos-arm64.zip`
- **macOS (Intel)**:下载 `codeswitch-macos-amd64.zip`
- name: Create Release
uses: softprops/action-gh-release@v1
with:
files: release-assets/*
body_path: /tmp/release_body.md
draft: false
prerelease: false
env:
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
frontend/node_modules
frontend/bindings
frontend/dist
.DS_Store
.task
bin
CLAUDE.md
.ace-tool/
Loading