Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
85 commits
Select commit Hold shift + click to select a range
6228b43
feat: 为智谱 AI 添加 Provider 配置模板 (#124)
solarhell Jan 18, 2026
9b602fa
feat: 添加全局时区配置并优化 Dashboard (#125)
Bowl42 Jan 18, 2026
2ba0d1d
feat: 添加 PostgreSQL 数据库支持 (#126)
solarhell Jan 18, 2026
b70fd51
Revert "feat: 添加 PostgreSQL 数据库支持 (#126)" (#128)
Bowl42 Jan 18, 2026
fef9b0d
feat: 添加配置备份与恢复功能 (#129)
Bowl42 Jan 18, 2026
b08fddc
fix: Remove unnecessary class name merging and simplify the rendering…
whhjdi Jan 18, 2026
9b647ea
feat: 添加 PostgreSQL 数据库支持并优化 GORM 模型 (#131)
Bowl42 Jan 18, 2026
64cf0dc
feat: 移除 Header 组件并在 NavProxyStatus 中添加版本显示 (#132)
lxw15337674 Jan 18, 2026
98ed303
fix: 修复版本号显示双 v 前缀和复制按钮无效问题 (#133)
awsl233777 Jan 18, 2026
867a371
fix: 修复热力图显示问题并优化 WebSocket 数据刷新 (#134)
Bowl42 Jan 18, 2026
e498593
feat: 在 Dashboard Today Requests 显示活跃请求数 (#135)
Bowl42 Jan 18, 2026
4c2e95b
feat: 优化 Cooldown 机制和落雪视觉效果 (#136)
Bowl42 Jan 19, 2026
2a567c4
Feat/bhwa233 (#137)
lxw15337674 Jan 19, 2026
d540a3e
feat: 添加 CooldownsProvider 上下文减少重复 API 请求 (#139)
Bowl42 Jan 19, 2026
e34a25c
feat: 添加一键排序 Antigravity 路由功能 (#138)
Bowl42 Jan 19, 2026
4ae7a42
feat: 多语言支持优化和 UI 交互改进 (#141)
SurviveM Jan 20, 2026
c61edfe
Feat/theme: Enhance theme toggle with luxury themes and improved UI (…
whhjdi Jan 20, 2026
a9985e6
fix: 修复 SQLite WAL 模式参数格式 (#142)
awsl233777 Jan 20, 2026
90c58ab
feat: 优化 Stats 页面和升级计费精度至纳美元 (#146)
Bowl42 Jan 21, 2026
a4959ae
feat: 添加端口管理功能,支持检查和终止占用端口的进程 (#148)
lxw15337674 Jan 22, 2026
73bff1f
feat: 添加 pprof 性能分析支持 (#147)
solarhell Jan 22, 2026
ade42e8
feat: 模型价格版本化和请求倍率记录 (#150)
Bowl42 Jan 22, 2026
dbe130e
feat: 重构路由页面,合并到 client-routes 并改用 ID 路由 (#151)
Bowl42 Jan 24, 2026
959c56a
docs: 更新 README 文档结构和内容 (#152)
awsl233777 Jan 24, 2026
a9f0502
perf: 优化静态资源加载性能 (#153)
awsl233777 Jan 24, 2026
83e13a5
feat: 添加文档页面,介绍 AI 工具配置方法
awsl233777 Jan 25, 2026
3594cff
fix: 修复路由页面无法滚动的问题 (#155)
awsl233777 Jan 25, 2026
21898a9
fix: 修复 cooldown clientType 和 routes 页面滚动问题 (#156)
Bowl42 Jan 25, 2026
f57741c
refactor: 重构项目绑定弹窗组件 (#157)
Bowl42 Jan 25, 2026
4769dd6
feat: 添加 Codex Provider 支持和路由自动排序功能 (#158)
Bowl42 Jan 26, 2026
3a40380
feat: 在 Antigravity 和 Codex 详情页添加 token 复制功能 (#159)
Bowl42 Jan 26, 2026
6e2c947
feat: 支持手动粘贴回调 URL 完成 Codex OAuth 认证 (#160)
Bowl42 Jan 26, 2026
7e7be9a
fix: 修复 Provider 统计数据不实时的问题 (#161)
Bowl42 Jan 26, 2026
b0391b7
fix: 修复 responseWriter 重复写入 header 的问题 (#163)
dreamhunter2333 Jan 26, 2026
e1f9fb1
Revert "fix: 修复 responseWriter 重复写入 header 的问题 (#163)" (#164)
awsl233777 Jan 26, 2026
41a7022
fix: 修复 Codex 客户端 Session ID 提取问题 (#162)
Bowl42 Jan 26, 2026
5fb1b10
fix: 客户端断开连接不应触发 Provider 冻结 (#165)
awsl233777 Jan 26, 2026
1062d84
feat: add internationalization support for request details and routin…
lxw15337674 Jan 27, 2026
079c47d
feat: 添加客户端类型标签的国际化支持 (#167)
lxw15337674 Jan 28, 2026
57bd016
feat: Custom Provider 对 Claude 请求使用 CLI 风格头部 (#168)
Bowl42 Jan 29, 2026
50ee978
feat: Custom Provider 对 Codex 和 Gemini 请求使用专用头部 (#169)
Bowl42 Jan 29, 2026
fb917ed
fix: 更新 Claude 请求头以匹配最新 CLI 版本
Bowl42 Jan 29, 2026
aa7e9c1
fix: Claude 请求头改为 CLIProxyAPI 模式(透传 + 默认值填充)
Bowl42 Jan 29, 2026
c556a9a
:bug: :zap: Fix API token backup/restore and add cache preload (#171)
itcuihao Jan 30, 2026
12a3dfa
:bug: :zap: Fix API token backup/restore and add cache preload (#172)
itcuihao Jan 30, 2026
2946e90
feat: Custom Provider Claude 请求优化:认证头动态设置 + Body 处理 (#170)
Bowl42 Jan 30, 2026
bc8b075
feat: 统一请求响应详情显示规格 (#174)
ymkiux Jan 31, 2026
465f455
fix: 协议转换场景 (#175)
awsl233777 Jan 31, 2026
2ce5fd6
fix: 修复 model mapping 不更新请求 body 的问题 (#176)
awsl233777 Jan 31, 2026
c0998d6
Align custom Claude proxy with CLIProxyAPI behavior (#177)
Bowl42 Jan 31, 2026
05cb507
Add Codex UA detection and instructions handling (#178)
Bowl42 Feb 1, 2026
145550d
Virtualize requests list rendering (#180)
Bowl42 Feb 2, 2026
5af5d19
feat: 使用 PageHeader 组件重构多个页面的头部布局 (#179)
whhjdi Feb 3, 2026
61f3cb1
fix: prevent infinite re-render loop in row height measurement (#181)
Bowl42 Feb 3, 2026
f5b1b7c
feat: Codex OAuth 按需启动 + Custom Provider Claude 伪装配置 (#182)
Bowl42 Feb 3, 2026
039ae13
feat: Update TypeScript type checking to enforce builds and optimize …
whhjdi Feb 4, 2026
a43c7f0
feat: 集成 CLIProxyAPI 作为 Antigravity/Codex 的可选转发后端 (#186)
dreamhunter2333 Feb 6, 2026
42c4e57
feat: 重构执行器为 Flow 中间件架构,统一协议转换层 (#187)
Bowl42 Feb 6, 2026
cb3bb87
fix: 设置全局最小宽度 900px,修复移动端布局挤压问题 (#188)
awsl233777 Feb 6, 2026
28b3e36
fix: 修复 Codex CPA 模式流式转发 SSE 格式问题 (#189)
dreamhunter2333 Feb 6, 2026
c4f568b
docs: 修复 Codex CLI auth.json 配置字段名为 OPENAI_API_KEY (#190)
dreamhunter2333 Feb 7, 2026
2d6d508
fix: 修复 Codex adapter 刷新 token 不持久化到数据库的问题 (#191)
dreamhunter2333 Feb 7, 2026
2f2b9e6
fix: 完善导入导出配置回放还原 (#192)
Bowl42 Feb 8, 2026
18a6efd
对齐 CLIProxyAPI 转发逻辑,并补充 gpt-5.3 / opus-4.6 默认配置 (#193)
Bowl42 Feb 8, 2026
b733d37
fix(web): 修复 Loading 卡住并回退 Antigravity 默认映射 (#194)
Bowl42 Feb 9, 2026
3bcd0c6
Fix: 切换主题不显示选中,请求详情、列表、统计、提供商页面兼容小尺寸和移动端 (#196)
belingud Feb 9, 2026
18a3bd3
fix: 对齐 Claude/Codex UA 透传策略并完善 Claude cloaking (#205)
Bowl42 Feb 9, 2026
182aaa3
chore: add CLIProxyAPI sync workflow (#206)
awsl233777 Feb 9, 2026
42f3093
fix: run go mod update after branch checkout (#207)
awsl233777 Feb 9, 2026
9bea8a2
fix: sync CLIProxyAPI fork via base rebase (#210)
awsl233777 Feb 10, 2026
e084b76
fix: restore robust CLIProxyAPI sync workflow (#212)
awsl233777 Feb 10, 2026
1d5ff7c
fix: use PAT for PR creation in sync workflow (#213)
awsl233777 Feb 10, 2026
338b036
chore: update CLIProxyAPI replace (#214)
awsl233777 Feb 10, 2026
b412e87
perf: 优化启动慢查询,为 proxy_requests/proxy_upstream_attempts 添加索引 (#208)
Bowl42 Feb 10, 2026
b5dcfd9
fix: hide Codex sort button on wrong pages (#202)
longxiazy Feb 10, 2026
39ecf91
fix: add exact antigravity opus 4.5/4.6 mappings (#215)
awsl233777 Feb 10, 2026
e2e25d1
chore: remove antigravity model mapping test file (#216)
awsl233777 Feb 10, 2026
48f88c2
fix: catch and resolve TS2367 in client routes lint flow (#217)
awsl233777 Feb 10, 2026
21d313c
feat: added support for ProxyRequests with infinite scrolling and upd…
whhjdi Feb 10, 2026
bd4b020
chore: update CLIProxyAPI replace (#221)
awsl233777 Feb 11, 2026
2e7ec39
chore(deps): bump axios from 1.13.2 to 1.13.5 in /web (#211)
dependabot[bot] Feb 11, 2026
5edbbf8
fix: use dynamic proxy address in documentation page instead of hardc…
awsl233777 Feb 11, 2026
f40252f
fix: 修复 Windows 托盘设置跳转到 /settings 路由 (#223)
ymkiux Feb 11, 2026
47ed654
style: 优化侧边栏底部式样 (#224)
ymkiux Feb 11, 2026
dcbec72
fix(web): optimize project routes tab spacing and selection styles
whhjdi Feb 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
142 changes: 142 additions & 0 deletions .github/workflows/cliproxyapi-sync.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
name: CLIProxyAPI Sync

on:
schedule:
- cron: "0 2 * * *"
workflow_dispatch:
workflow_call:
secrets:
HOMEBREW_TAP_TOKEN:
required: true

permissions:
contents: write
pull-requests: write

concurrency:
group: cliproxyapi-sync-and-replace-${{ github.ref }}
cancel-in-progress: false

jobs:
sync-cliproxyapi-fork:
name: Sync CLIProxyAPI fork (rebase + push)
runs-on: ubuntu-latest
outputs:
fork_changed: ${{ steps.sync.outputs.fork_changed }}
sync_conflict: ${{ steps.sync.outputs.sync_conflict }}
steps:
- name: Checkout awsl-project/CLIProxyAPI
uses: actions/checkout@v4
with:
repository: awsl-project/CLIProxyAPI
token: ${{ secrets.HOMEBREW_TAP_TOKEN }}
fetch-depth: 0

- name: Rebase with base/main and push
id: sync
run: |
TARGET_BRANCH="main"
echo "sync_conflict=false" >> "$GITHUB_OUTPUT"

git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

git fetch origin "$TARGET_BRANCH"
git checkout -B "$TARGET_BRANCH" "origin/$TARGET_BRANCH"
BEFORE_ORIGIN=$(git rev-parse HEAD)

if git remote get-url base >/dev/null 2>&1; then
git remote set-url base https://github.com/router-for-me/CLIProxyAPI.git
else
git remote add base https://github.com/router-for-me/CLIProxyAPI.git
fi
git fetch base "$TARGET_BRANCH"

if ! git pull base "$TARGET_BRANCH" --rebase; then
echo "Rebase conflict detected; aborting and skipping downstream update."
git rebase --abort || true
{
echo "### CLIProxyAPI sync skipped"
echo "- Reason: rebase conflict while applying fork-only commit(s)"
echo "- Action: resolve in awsl-project/CLIProxyAPI then rerun"
} >> "$GITHUB_STEP_SUMMARY"
echo "fork_changed=false" >> "$GITHUB_OUTPUT"
echo "sync_conflict=true" >> "$GITHUB_OUTPUT"
exit 0
fi

AFTER_SHA=$(git rev-parse HEAD)
if [ "$AFTER_SHA" = "$BEFORE_ORIGIN" ]; then
echo "Result is identical to current origin/$TARGET_BRANCH"
echo "fork_changed=false" >> "$GITHUB_OUTPUT"
exit 0
fi

git push -f origin "$TARGET_BRANCH"
echo "fork_changed=true" >> "$GITHUB_OUTPUT"

deps-update:
name: Update maxx CLIProxyAPI replace
runs-on: ubuntu-latest
needs: sync-cliproxyapi-fork
if: ${{ needs.sync-cliproxyapi-fork.outputs.fork_changed == 'true' }}
steps:
- name: Checkout maxx
uses: actions/checkout@v4

- name: Setup Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod

- name: Create PR with gh
env:
GH_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }}
run: |
BASE_BRANCH="main"
BRANCH="chore/cliproxyapi-replace-update"

git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"

git fetch origin "$BASE_BRANCH"
git checkout -B "$BRANCH" "origin/$BASE_BRANCH"

go mod edit -replace=github.com/router-for-me/CLIProxyAPI/v6=github.com/awsl-project/CLIProxyAPI/v6@latest
go mod tidy

git add go.mod go.sum

if git diff --cached --quiet; then
echo "No dependency changes"
exit 0
fi

git commit -m "chore: update CLIProxyAPI replace"
git push -f origin "$BRANCH"

PR_NUMBER=$(gh pr list \
--base "$BASE_BRANCH" \
--head "$BRANCH" \
--state open \
--json number \
--jq '.[0].number')

if [ -n "$PR_NUMBER" ]; then
echo "PR already exists: #$PR_NUMBER"
exit 0
fi

if ! gh pr create \
--base "$BASE_BRANCH" \
--head "$BRANCH" \
--title "chore: update CLIProxyAPI replace" \
--body "Automated dependency update by CLIProxyAPI Sync workflow."; then
{
echo "### PR creation skipped"
echo "- Branch pushed: $BRANCH"
echo "- Reason: token/repository policy denied automatic PR creation"
echo "- Action: open PR manually from $BRANCH to $BASE_BRANCH"
} >> "$GITHUB_STEP_SUMMARY"
exit 0
fi
3 changes: 3 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,3 +39,6 @@ jobs:

- name: Run lint
run: pnpm run lint

- name: Run type check
run: pnpm run typecheck
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
*.db-wal

# Binary
maxx
/maxx
build/bin/

# Wails build artifacts
Expand All @@ -21,6 +21,7 @@ web/package.json.md5
.gocache/
.gomodcache/
.gotmp/
.tmp/

# Claude Code local settings
.claude/settings.local.json
Expand Down
18 changes: 15 additions & 3 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,12 +1,24 @@
#!/bin/sh

# 进入 web 目录并运行类型检查
cd web && pnpm tsc --noEmit
cd web

# TypeScript 类型检查 (全量)
echo "🔍 运行 TypeScript 类型检查..."
pnpm tsc --build --force

if [ $? -ne 0 ]; then
echo "❌ TypeScript 类型检查失败,提交被阻止"
echo "请先修复类型错误再提交"
exit 1
fi

echo "✅ TypeScript 类型检查通过"
# Lint 和格式化 (仅暂存文件)
echo "🎨 运行 lint-staged (检查暂存文件)..."
pnpm lint-staged

if [ $? -ne 0 ]; then
echo "❌ Lint/格式化检查失败,提交被阻止"
exit 1
fi

echo "✅ 所有检查通过"
4 changes: 2 additions & 2 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -57,8 +57,8 @@ RUN CGO_ENABLED=0 GOOS=linux go build \
# Stage 3: Final runtime image
FROM alpine:latest

# Install runtime dependencies
RUN apk add --no-cache ca-certificates
# Install runtime dependencies (tzdata for timezone support)
RUN apk add --no-cache ca-certificates tzdata

WORKDIR /app

Expand Down
2 changes: 1 addition & 1 deletion Dockerfile.ci
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ FROM alpine:latest
# TARGETARCH is automatically set by Docker Buildx (amd64, arm64, etc.)
ARG TARGETARCH

RUN apk add --no-cache ca-certificates
RUN apk add --no-cache ca-certificates tzdata

WORKDIR /app

Expand Down
Loading