"vscode:/vscode.git/clone" did not exist on "f7e95969522e521ee4fa08eff0e792fbee0d401e"
- 02 Mar, 2026 7 commits
-
-
erio authored
Add configurable custom menu items that appear in sidebar, each rendering an iframe-embedded external page. Includes shared URL builder with src_host/src_url tracking, CSP frame-src multi-origin deduplication, admin settings UI, and i18n support. chore: bump version to 0.1.87.19 Co-Authored-By:Claude Opus 4.6 <noreply@anthropic.com>
-
Wesley Liddick authored
feat(proxy): 集中代理 URL 验证并实现全局 fail-fast
-
QTom authored
提取 proxyurl.Parse() 公共包,将分散在 6 处的代理 URL 验证逻辑 统一收敛,确保无效代理配置在创建时立即失败,永不静默回退直连。 主要变更: - 新增 proxyurl 包:统一 TrimSpace → url.Parse → Host 校验 → Scheme 白名单 - socks5:// 自动升级为 socks5h://,防止 DNS 泄漏(大小写不敏感) - antigravity: http.ProxyURL → proxyutil.ConfigureTransportProxy 支持 SOCKS5 - openai_oauth: 删除 newOpenAIOAuthHTTPClient,收编至 httpclient.GetClient - 移除未使用的 ProxyStrict 字段(fail-fast 已是全局默认行为) - 补充 15 个 proxyurl 测试 + pricing/usage fail-fast 测试
-
Wesley Liddick authored
feat(settings): add default subscriptions for new users
-
PMExtra authored
-
Wesley Liddick authored
feat(identity): 指纹缓存 TTL 懒续期机制
-
Wesley Liddick authored
fix(dashboard): sort recent usage tooltip labels by token consumption
-
- 01 Mar, 2026 27 commits
-
-
PMExtra authored
- add default subscriptions to admin settings - auto-assign subscriptions on register and admin user creation - add validation/tests and align settings UI with subscription selector patterns
-
QTom authored
- TTL 改为 7 天,配合 24 小时自动续期保持活跃账号永不过期 - 版本升级时采用合并语义,仅更新请求中实际存在的字段 - 添加产品名验证防止浏览器 UA 误判为更新版本
-
Gemini Wen authored
-
Wesley Liddick authored
feat(admin): 代理密码可见性 + 复制代理 URL 功能
-
QTom authored
- 新增 AdminProxy / AdminProxyWithAccountCount DTO,遵循项目 Admin DTO 分层模式 - Proxy.Password 恢复 json:"-" 隐藏,ProxyFromService 不再赋值密码(纵深防御) - 管理员接口使用 ProxyFromServiceAdmin / ProxyWithAccountCountFromServiceAdmin - 前端代理列表新增 Auth 列:显示用户名 + 掩码密码 + 眼睛图标切换可见性 - Address 列新增复制按钮:左键复制完整 URL,右键选择格式 - 编辑模态框密码预填充 + 脏标记,避免误更新
-
Wesley Liddick authored
feat(dashboard): add group usage distribution chart to usage page
-
erio authored
Add a doughnut chart showing usage statistics broken down by group on the admin usage records page. The chart appears alongside the existing model distribution chart (2-column grid), with the token usage trend chart moved to a separate full-width row below. Changes: - backend/pkg/usagestats: add GroupStat type - backend/service: add GetGroupStatsWithFilters interface method and implementation - backend/repository: implement GetGroupStatsWithFilters with LEFT JOIN groups - backend/handler: add GetGroupStats handler with full filter support - backend/routes: register GET /admin/dashboard/groups route - backend/tests: add GetGroupStatsWithFilters stubs to contract/sora tests - frontend/types: add GroupStat interface - frontend/api: add getGroupStats API function and types - frontend/components: add GroupDistributionChart.vue doughnut chart - frontend/views: update UsageView layout and load group stats in parallel - frontend/i18n: add groupDistribution, group, noGroup keys (zh + en)
-
Wesley Liddick authored
fix(group): clear nullable limit fields on update
-
Wesley Liddick authored
Upgrade GitHub Actions to latest versions
-
Gemini Wen authored
-
Wesley Liddick authored
feat: add mixed-channel warning for bulk account edit
-
Wesley Liddick authored
feat(admin): add create-and-redeem endpoint for payment integrations
-
Wesley Liddick authored
Upgrade GitHub Actions for Node 24 compatibility
-
erio authored
- Move ADMIN_PAYMENT_INTEGRATION_API.md → docs/ADMIN_PAYMENT_INTEGRATION_API.md - Update README.md reference path - Add payment integration doc download link in admin settings UI (Purchase section) - Add i18n keys: integrationDoc / integrationDocHint (zh + en)
-
Wesley Liddick authored
feat(gateway): 添加 Claude Code 客户端最低版本检查功能
-
Salman Muin Kayser Chishti authored
Signed-off-by:Salman Muin Kayser Chishti <13schishti@gmail.com>
-
Salman Muin Kayser Chishti authored
Signed-off-by:Salman Muin Kayser Chishti <13schishti@gmail.com>
-
QTom authored
- 修复 errcheck: singleflight 返回值类型断言添加 ok 检查 - 修复 gofmt: 格式化 setting_service.go 和 claude_code_validator_test.go - 修复 TestAPIContracts: 在 GET /admin/settings 期望中添加 min_claude_code_version 字段
-
QTom authored
- 通过 User-Agent 识别 Claude Code 客户端并提取版本号 - 在网关层验证客户端版本是否满足管理员配置的最低要求 - 在管理后台提供版本要求配置选项(英文/中文双语) - 实现原子缓存 + singleflight 防止并发问题和 thundering herd - 使用 context.WithoutCancel 隔离 DB 查询,避免客户端断连影响缓存 - 双 TTL 策略:60s 正常、5s 错误恢复,保证性能与可用性 - 仅检查 Claude Code 客户端,其他客户端不受影响 - 添加完整单元测试覆盖版本提取、比对、上下文操作
-
erio authored
-
erio authored
-
erio authored
-
erio authored
- BulkUpdate handler: add structured details to 409 response - BulkUpdateAccounts: simplify to global pre-check before any DB write; remove per-account snapshot tracking which is no longer needed - MixedChannelError.Error(): restore English message for API compatibility - BulkEditAccountModal: use t() with details for both pre-check and 409 fallback paths instead of displaying raw backend strings - Update test to verify pre-check blocks on existing group conflicts
-
erio authored
-
erio authored
Previously, preCheckMixedChannelRisk() skipped when selectedPlatforms had more than one entry, and the catch block in submitBulkUpdate had no 409 handling — so multi-platform conflicts just showed a generic error. - Rename canPreCheck(): only call pre-check API for single-platform antigravity/anthropic selections (API requires a single platform param) - Pass `built` into preCheckMixedChannelRisk() so pendingUpdatesForConfirm is set before returning false - submitBulkUpdate: add 409 mixed_channel_warning catch as fallback for multi-platform case, saving baseUpdates for retry - Remove needsMixedChannelCheck() gate on confirm_mixed_channel_risk flag; use mixedChannelConfirmed alone so multi-platform retry also works
-
erio authored
The response interceptor in client.ts transforms errors into plain objects {status, code, message}, but catch blocks were checking error.response?.status (AxiosError format) which never matched. - Add error field passthrough in client.ts interceptor - Refactor BulkEditAccountModal to use pre-check API (checkMixedChannelRisk) before submit, matching the single edit flow - Fix EditAccountModal catch blocks to use interceptor error format - Add bulk-update mixed channel unit tests -
erio authored
- Move mixed channel check before any DB writes in BulkUpdateAccounts - Return 409 from BulkUpdate handler for MixedChannelError - Add ConfirmDialog to BulkEditAccountModal for mixed channel warning - Update mixed channel warning message to Chinese
-
- 28 Feb, 2026 6 commits
-
-
erio authored
-
erio authored
-
erio authored
-
erio authored
-
shaw authored
- 移除 README.md / README_CN.md 中的 Codex CLI WebSocket v2 配置示例 - UseKeyModal OpenAI 分组新增 "Codex CLI (WebSocket)" tab,区分普通模式与 WS 模式 - 普通模式 config.toml 不含 WebSocket 字段,WS 模式包含 supports_websockets 和 features 配置 - 所有配置统一使用 sub2api 作为 model_provider 名称
-
shaw authored
standalone gosec 扫描 24 万行 Go 代码在 CI 中持续超时, 将其作为 golangci-lint 的内置 linter 运行,复用 AST 解析和缓存大幅提速。 - 在 .golangci.yml 中启用 gosec 并迁移原有排除规则 - golangci-lint timeout 从 5m 提升到 30m - 从 security-scan.yml 移除 standalone gosec 步骤 - 删除不再需要的 .gosec.json 配置文件
-