Commit Graph
117 Commits
Author SHA1 Message Date
coso e652f072d0 feat(claude-oauth): 添加 Cookie 自动授权功能
- 新增 Cookie 自动授权模式,用户可通过浏览器 sessionKey 完成授权
- 支持三种授权方式:Cookie 授权(默认)、OAuth 登录、文件导入
- 参考 claude-relay-service 实现

closes #38
2025-12-24 23:21:58 +08:00
coso 606a22fccd feat(claude-oauth): 添加 Cookie 自动授权功能
- 新增 Cookie 自动授权流程,使用 sessionKey 自动完成 OAuth
- 支持三种授权模式:Cookie 授权、OAuth 登录、文件导入
- 参考 claude-relay-service 实现

Closes #38
2025-12-24 22:58:15 +08:00
cosoandClaude Sonnet 4 9f79e0ebff fix: 明确 API Server 日志标签显示系统日志而非 API 日志
- 将 API Server 页面的"日志"标签重命名为"系统日志"
- 更新空日志状态的描述文本,明确显示的是系统日志
- 澄清功能职责:API Server 显示软件系统日志,Flow Monitor 处理 API 请求日志

这样避免了功能重复,用户可以清楚地知道:
- API Server > 系统日志:查看软件运行日志(启动、停止、凭证刷新等)
- Flow Monitor:查看 API 请求和响应日志

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

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
2025-12-24 22:31:10 +08:00
cosoandClaude Sonnet 4 ca73d0aa1c refactor: 重大界面重构 - 删除仪表盘,重组导航结构
## 主要变更

### 1. 删除仪表盘功能
- 删除 Dashboard.tsx 组件和相关前端代码
- 删除后端 get_dashboard_data 命令和 DashboardData 结构
- 删除 getDashboardData API 和相关类型定义
- 删除不再使用的 MonitoringPage 组件

### 2. 重新设计导航结构
- API Server 现在是默认首页(替代仪表盘)
- 左侧导航栏顺序:API Server、凭证池、配置管理、Flow Monitor、设置
- 移除仪表盘菜单项,简化导航体验

### 3. 设置页面功能整合
- 将扩展功能(MCP、Prompts、Skills、Plugins)移到设置页面的"扩展"标签
- 将路由管理功能移到设置页面的"路由管理 (实验)"标签,标注为实验功能
- 创建 ExtensionsSettings.tsx 和 RoutingSettings.tsx 组件
- 保持所有功能完整性,只是重新组织了访问路径

### 4. 代码清理
- 清理前后端所有仪表盘相关代码
- 移除未使用的导入和组件引用
- 修复 TypeScript 类型错误

## 新的界面结构

```
左侧导航:
├─ API Server (首页)
├─ 凭证池
├─ 配置管理
├─ Flow Monitor
└─ 设置
   ├─ 通用
   ├─ 代理服务
   ├─ 安全
   ├─ 高级
   ├─ 扩展 (新增)
   ├─ 路由管理 (实验) (新增)
   └─ 关于
```

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

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
2025-12-24 22:28:54 +08:00
cosoandClaude Sonnet 4 e88c55da20 feat: 删除 Dashboard 中的 OAuth 凭证状态显示
- 移除整个 OAuth 凭证状态卡片组件
- 清理相关的导入和函数 (convertPoolToOAuthCredentials)
- 简化 OverviewTab 组件参数
- 修复 TypeScript 编译错误 (Activity, CheckCircle2 导入和 TokenStatsSummary 类型)
- 保留服务器状态和快速链接功能
- 修复代码格式问题 (Prettier + cargo fmt)

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

Co-Authored-By: Claude Sonnet 4 <noreply@anthropic.com>
2025-12-24 22:11:31 +08:00
coso b26e222e43 fix: 修复默认路由端点 provider_type 硬编码为 kiro 的问题 (#41)
- route_cmd.rs: get_available_routes 和 get_route_curl_examples 现在从配置读取 default_provider
- provider_router.rs: 新增 with_default_provider 构造函数,支持动态默认 Provider
- server/mod.rs: 路由列表 API 从 state.default_provider 读取默认 Provider

Closes #41
2025-12-24 21:09:47 +08:00
coso 05b2e24484 chore: bump version to 0.17.4 2025-12-24 13:39:37 +08:00
coso 100884781f fix: Windows 最小化到托盘无效 (#30)
- 添加 minimize_to_tray 配置字段到 Config 结构体
- 添加 on_window_event 处理器拦截窗口关闭事件
- 前端设置页面支持保存最小化到托盘选项
- 默认启用最小化到托盘功能

Closes #30
2025-12-23 02:29:49 +08:00
coso c1b1f87310 feat: 端点 Provider 配置 + 凭证卡片 UI 优化
- 实现客户端路由功能,根据 User-Agent 自动选择 Provider
- 新增客户端路由 tab 在路由管理页面
- 推荐配置支持客户端路由
- 优化凭证卡片布局,使用网格布局显示统计信息
- Token 有效期移到卡片主体显示
- 展开区域使用彩色背景卡片
2025-12-23 01:03:59 +08:00
coso 44f7c20397 Merge pull request #22 from zss823158062/main
feat: 实现自动下载更新功能
2025-12-22 20:11:32 +08:00
coso 1b7da3cfc6 Merge branch 'main' into main 2025-12-22 20:11:19 +08:00
coso 43c33bf501 Merge pull request #23 from tytsxai/main
security: 修复多个 P0 级安全漏洞
2025-12-22 20:10:00 +08:00
coso 084c1a6a9a Merge branch 'main' into main 2025-12-22 20:09:51 +08:00
coso 0859a01ca8 v0.17.1: Flow Monitor 增强 - 窗口大小调整、搜索优化
- 添加窗口大小调整功能(紧凑、默认、大屏、超大屏、超宽屏、4K)
- 添加全屏切换功能
- 优化简单过滤搜索,支持搜索模型名称和提供商
- 修复下拉菜单背景透明问题
- 添加表达式模式搜索按钮
2025-12-22 19:44:55 +08:00
coso 32620e2d8d 修复测试用例并更新版本到 0.17.0
- 修复 test_e2e_flow_annotations 测试中的死锁问题
- 修复 test_e2e_flow_export 测试的断言错误
- 修复 test_e2e_flow_query_service 测试的搜索功能
- 所有端到端测试现在都通过 (5/5)
- 完整测试套件通过 (1157 个测试)
- 更新版本号从 0.16.0 到 0.17.0
2025-12-22 14:08:25 +08:00
jiesen d215816a18 新增 Codex Base URL 配置输入 2025-12-21 20:12:39 +07:00
jiesen 043ad052bf 完善 Codex 凭证与健康检查 2025-12-21 20:12:03 +07:00
coso 07f7f89469 feat: v0.16.0 - LLM Flow Monitor 功能
新增功能:
- 新增 LLM Flow Monitor 页面,实时监控 API 请求/响应
- 支持 Flow 列表查询、搜索、过滤
- 支持 Flow 详情查看(请求/响应内容)
- 支持 Flow 导出(JSON/HAR/Markdown/CSV)
- 支持 Flow 标注(收藏、标签、评论)
- 使用 Tauri 事件系统替代 WebSocket 实现实时更新
- 修复 FlowMonitor 状态在页面切换时丢失的问题

技术改进:
- 统一 FlowMonitor 实例,服务器和前端共享同一数据源
- 新增 flowEventManager 全局单例管理事件订阅
- 优化内存存储和文件存储的数据持久化
2025-12-21 19:49:10 +08:00
jiesenandClaude Opus 4.5 34d9f52789 merge: 合并上游 upstream/main 分支
- 解决 server 模块重构冲突(删除旧 server.rs,保留 server/ 目录结构)
- 解决 kiro.rs 设备指纹逻辑冲突(合并日志记录 + 凭证唯一 ID)
- 解决 CodexCredentials 字段缺失问题
- 解决 README.md 和 Cargo.lock 冲突
- 添加第三方 API Key 警告日志(UX 改进)

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 17:18:18 +07:00
jiesenandClaude Sonnet 4.5 4b34a8f57f feat(codex): 支持 Yunyi 等代理的 API Key 认证和 responses API
## 主要改进

### 1. 增强 API Key 字段兼容性
- 支持多种字段名:api_key, apiKey, OPENAI_API_KEY
- 兼容 Codex CLI 和 Yunyi 等代理的凭证格式

### 2. 修复健康检查逻辑
- 自定义 base_url 时使用 Codex responses API 格式
- 官方 OpenAI 时使用 chat/completions API
- 正确处理 Yunyi 等代理的 500 错误响应

### 3. 改进错误提示
- 提供更友好的配置错误提示信息

## 技术细节
- codex.rs: 添加 OPENAI_API_KEY 别名支持
- provider_pool_service.rs: 根据 base_url 选择正确的 API 格式

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-21 15:22:15 +07:00
jiesenandClaude Opus 4.5 fe542ccbf3 security: 修复多个 P0/P1/P2 级安全漏洞
P0 级修复:
- lib.rs: save_config 禁止 0.0.0.0/:: 绑定和远程管理
- lib.rs: get_env_variables 不再返回明文 token
- oauth_cmd.rs: refresh_oauth_token 不返回明文 token
- route_cmd.rs: curl 示例使用占位符替代真实 API Key
- provider_pool_cmd.rs: 调试命令仅在 debug 构建可用
- mcp_sync.rs: TOML 注入防护(键名校验+字符串转义)

P1 级修复:
- server.rs: /v1/routes 端点添加 API Key 认证
- server.rs: 请求体限制从 100MB 降至 20MB
- websocket/handler.rs: WebSocket 消息大小限制 10MB
- backup_service.rs: 恢复路径白名单校验
- converter/openai_to_cw.rs: UTF-8 安全截断

P2 级修复:
- logger.rs: 扩展日志脱敏规则覆盖更多敏感字段

测试修复:
- middleware/tests.rs: 使用 ConnectInfo 替代 X-Forwarded-For
- proxy/tests.rs: 修复主机名正则确保以字母开头
- provider_router.rs: 测试前注册 selector

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 14:04:57 +07:00
L_SEN 574a9fd1fb config: 重新导出类型以修复测试兼容性
- 在 config/mod.rs 中添加所有测试需要的类型重新导出
- 修复 CI 测试编译错误 (E0432/E0433)
- 保持向后兼容的公共 API
2025-12-21 13:25:52 +08:00
jiesenandClaude Opus 4.5 093965b01a security: 修复多个 P0 级安全漏洞
- kiro: 移除目录遍历合并凭证逻辑,防止串凭证/串账号
- kiro: 日志脱敏,不再打印 token 内容
- kiro: 调试文件写入需 PROXYCAST_DEBUG=1 环境变量
- codex: expires_at 字段序列化输出修正
- qwen: 时间比较显式转换为 Utc,无过期时间时采用保守策略
- middleware: 移除 X-Forwarded-For 信任,防止限速绕过
- middleware: failure_map 添加容量限制和 TTL,防止内存 DoS
- injection: 添加参数白名单和黑名单,防止安全约束绕过
- router: 未注册 selector 返回 None,防止越权访问
- frontend: 使用 WebCrypto API 替代 Math.random() 生成密钥

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

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-21 11:24:06 +07:00
L_SEN 942fab1f10 feat: 实现自动下载更新功能
- 添加 check_for_updates 命令检查 GitHub 最新版本
- 添加 download_update 命令自动下载对应平台安装包
- 支持 Windows (.exe/.msi)、macOS (.dmg)、Linux (.deb/.appimage)
- 动态从 GitHub API 获取实际文件列表并匹配平台
- 下载完成后自动运行安装程序
- 安装程序启动成功后自动退出应用避免文件占用
- 失败时提供网页下载备选方案
- 前端 UI 显示下载状态和友好提示
- 添加版本比较和平台检测单元测试
2025-12-21 12:14:39 +08:00
jiesenandClaude Sonnet 4.5 424092e7e5 fix(codex): 支持 API Key 和 Access Token 认证模式
## 问题描述
Codex provider 当前强制要求 refresh_token,导致用户无法使用 API Key 模式。

## 解决方案
在 refresh_token() 方法中添加 access_token 降级处理逻辑,支持三种认证模式:

1. **API Key 模式**(优先级最高)
   - 凭证:api_key + 可选 api_base_url
   - 行为:直接使用,无需刷新

2. **OAuth 模式**(标准流程)
   - 凭证:refresh_token + access_token
   - 行为:自动刷新,完全向后兼容

3. **Access Token 模式**(新增支持)
   - 凭证:仅 access_token
   - 行为:返回现有 token,无法自动刷新

## 主要变更
- 修改 refresh_token() 方法,添加 access_token 降级处理(16 行核心逻辑)
- 添加完整的文档注释,说明三种认证模式及示例(24 行)
- 添加 4 个单元测试,覆盖所有认证场景(58 行)
- 改进错误消息,提供清晰的配置指导

## 测试结果
- ✅ 所有测试通过(24/24)
- ✅ 编译通过(0 错误)
- ✅ 向后兼容(现有 OAuth 流程不受影响)
- ✅ 测试覆盖率 ≥85%

## 向后兼容性
完全向后兼容,所有现有功能不受影响。唯一的行为变更是功能增强:
- 之前:只有 access_token(无 refresh_token)→ 报错
- 之后:只有 access_token → 返回 token(带警告)

Fixes #20

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

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-21 09:41:45 +07:00
jiesen 98dcfd2482 docs: 更新运维与接口说明 2025-12-21 08:23:25 +07:00
jiesen baa724823c feat: 添加备份与健康检查能力 2025-12-21 08:22:53 +07:00
cosoandfactory-droid[bot] 6923f5062a refactor: v0.15.1 - server.rs 模块化重构 (-68%)
主要变更:
- server.rs 从 5639 行减少到 1799 行 (-68.1%)
- 创建 server/handlers/ 模块结构
  - api.rs: chat_completions, anthropic_messages (983 行)
  - provider_calls.rs: Provider 调用处理 (925 行)
  - websocket.rs: WebSocket 连接处理 (845 行)
  - management.rs: 管理 API (562 行)
- 创建 server_utils.rs: 工具函数 (656 行)
- 创建 providers/traits.rs: CredentialProvider trait (115 行)
- 统一 ProviderType 枚举,消除重复定义

Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.com>
2025-12-21 03:28:18 +08:00
jiesen 502096a208 文档: 更新默认端口与运维说明 2025-12-21 01:24:02 +07:00
jiesen 3411f92c3d 设置: 限制 TLS 与远程管理开关 2025-12-21 01:23:43 +07:00
jiesen 1295f48eaf 配置: 兼容 YAML/JSON 保存与状态识别 2025-12-21 01:23:24 +07:00
jiesen 484e34977a ci: 补齐前后端检查并更新发布说明 2025-12-21 01:22:51 +07:00
coso 2af7093b07 v0.15.0: Gemini OAuth 授权码流程 + 健康检查自动刷新 Token
主要更新:
- 修复 Gemini OAuth 登录流程,改用授权码模式(用户手动复制授权码)
- 修复 Gemini 健康检查 API 端点(使用 cloudcode-pa.googleapis.com)
- 健康检查遇到 401 错误时自动尝试刷新 Token 后重试
- 添加 once_cell 依赖用于存储 OAuth 会话
- 新增 exchange_gemini_code 命令用于交换授权码
2025-12-21 01:53:54 +08:00
coso 919519d8b8 docs: 修正截图标题对应关系 2025-12-20 23:35:31 +08:00
coso aec9817178 docs: 更新 README - 移除敏感措辞、更新截图、添加 Ubuntu 支持 2025-12-20 23:31:47 +08:00
coso 8eead7c275 feat: v0.14.10 - Kiro 凭证指纹展示和模型列表更新
- 新增 Kiro 凭证指纹信息展示功能(Machine ID、来源、认证方式)
- 更新 Kiro 模型映射表,添加 get_supported_models() 函数
- 修复 generate_machine_id_from_credentials 函数导出
- 前端添加指纹按钮和展示 UI(仅 Kiro 凭证显示)
2025-12-20 23:20:12 +08:00
coso 3e4e455c29 v0.14.8: Antigravity OAuth 支持复制授权 URL 到指纹浏览器
- 新增 Antigravity OAuth 授权 URL 复制功能,支持多账号场景
- 用户可以复制授权 URL 到指纹浏览器完成登录
- 后端启动服务器后通过 Tauri 事件发送授权 URL
- 服务器在后台等待回调(5分钟超时)
- 添加 Gemini 原生协议支持路由
2025-12-20 22:41:36 +08:00
jiesen f5406f7013 更新前端端口与安全提示 2025-12-20 21:05:20 +07:00
jiesen 770631be97 Codex 支持 API Key 凭证 2025-12-20 21:05:00 +07:00
jiesen 6802dc5a4c 完善服务启动与管理安全 2025-12-20 21:04:22 +07:00
coso 0329edaed0 fix: 修复 Antigravity 凭证添加无反应问题 (#16)
- 在 AddCredentialModal 中添加 antigravity 类型的处理逻辑
- 支持 Antigravity 的 Project ID 配置
- 添加默认凭证路径提示
2025-12-20 19:37:33 +08:00
coso c79304a68e fix: 修复 Codex Token 刷新失败问题 (#17)
- 添加 serde alias 支持 camelCase 字段名 (refreshToken, accessToken 等)
- 兼容 Codex CLI 官方凭证文件格式
- 改进错误提示,指导用户解决 refresh_token 缺失问题
- 增强日志输出,帮助调试凭证加载问题
- 添加测试用例验证多种字段名格式
2025-12-20 19:32:08 +08:00
coso 66562b2488 chore: bump version to v0.14.4 2025-12-20 19:14:03 +08:00
coso f39305181f fix: 修复 Windows 下 Kiro 凭证使用时终端窗口闪现问题
- usage_cmd.rs: reg query 命令添加 CREATE_NO_WINDOW
- kiro.rs: wmic 命令添加 CREATE_NO_WINDOW

这两处是 PR #13 遗漏的,是 Kiro 凭证频繁调用的命令
2025-12-20 19:13:00 +08:00
coso 7a09af8dc3 Merge pull request #13 from zss823158062/main
删除无用的文件夹
2025-12-20 19:09:12 +08:00
coso 07ae1bb357 feat: 添加 Linux (deb/AppImage) 构建支持,版本升级到 v0.14.3 2025-12-20 19:04:43 +08:00
coso 20a993b900 fix: 关于页面版本号从后端获取,统一版本管理
- 移除前端硬编码的版本号
- 从 Cargo.toml 读取版本号,确保与 package.json/tauri.conf.json 同步
- 只需维护一处版本号(Cargo.toml)
2025-12-20 17:41:13 +08:00
L_SEN 2e79602803 fix: 解决终端窗口闪现问题
- 在 Windows 上为所有外部命令添加 CREATE_NO_WINDOW 标志
- 修复托盘复制 API 地址功能
- 修复打开配置文件夹和认证目录功能
- 修复工具版本检查功能
- 添加 sonner 依赖解决前端构建问题
- 修复代码格式问题
2025-12-20 16:07:09 +08:00
L_SEN ffaa1bdc5a Merge branch 'main' of https://github.com/zss823158062/proxycast 2025-12-20 15:57:58 +08:00
coso cce3b8fb51 feat: 凭证池导入区分 API Key 和 OAuth 类型
- API Key 类型凭证直接使用 api_key 和 base_url,无需代理
- OAuth 类型凭证继续通过 ProxyCast 代理访问
- 更新版本号至 0.14.2
2025-12-20 15:53:13 +08:00