From c9d4ee1cf57a75b0b7ca729ceb348a09162c42f2 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Thu, 16 Oct 2025 07:36:19 +0000 Subject: [PATCH 1/6] chore: sync VERSION file with release v1.1.179 [skip ci] --- VERSION | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/VERSION b/VERSION index fef593f4..0f0b2557 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.1.178 +1.1.179 From be67af6340e4fdad663aa04435bdc6d6d6b233ec Mon Sep 17 00:00:00 2001 From: shaw Date: Thu, 16 Oct 2025 15:56:17 +0800 Subject: [PATCH 2/6] =?UTF-8?q?fix:=20=E8=B0=83=E6=95=B4=E4=B8=BAWei-Shaw/?= =?UTF-8?q?codex-action@crs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/codex-pr-review.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/codex-pr-review.yml b/.github/workflows/codex-pr-review.yml index 2450f416..d7fa70b0 100644 --- a/.github/workflows/codex-pr-review.yml +++ b/.github/workflows/codex-pr-review.yml @@ -27,7 +27,7 @@ jobs: - name: Run Codex id: run_codex - uses: hewenyu/codex-action@crs + uses: Wei-Shaw/codex-action@crs with: crs-api-key: ${{ secrets.CRS_API_KEY }} crs-base-url: ${{ secrets.CRS_API_BASE_URL }} From b5efb23a5e3f38b1b41679c55449962a4ee305e8 Mon Sep 17 00:00:00 2001 From: shaw Date: Thu, 16 Oct 2025 19:32:50 +0800 Subject: [PATCH 3/6] =?UTF-8?q?fix:=20codex-pr-review=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=A7=98=E9=92=A5=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/codex-pr-review.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/codex-pr-review.yml b/.github/workflows/codex-pr-review.yml index d7fa70b0..200bf6f5 100644 --- a/.github/workflows/codex-pr-review.yml +++ b/.github/workflows/codex-pr-review.yml @@ -25,6 +25,23 @@ jobs: ${{ github.event.pull_request.base.ref }} \ +refs/pull/${{ github.event.pull_request.number }}/head + - name: 校验CRS密钥 + if: ${{ secrets.CRS_API_KEY == '' || secrets.CRS_API_BASE_URL == '' }} + env: + CRS_API_KEY: ${{ secrets.CRS_API_KEY }} + CRS_API_BASE_URL: ${{ secrets.CRS_API_BASE_URL }} + run: | + missing=0 + if [ -z "$CRS_API_KEY" ]; then + echo "::error::CRS_API_KEY 缺失,终止流程" + missing=1 + fi + if [ -z "$CRS_API_BASE_URL" ]; then + echo "::error::CRS_API_BASE_URL 缺失,终止流程" + missing=1 + fi + exit $missing + - name: Run Codex id: run_codex uses: Wei-Shaw/codex-action@crs From cad285e8af35edb6d479dc65466b9c5363ef2c93 Mon Sep 17 00:00:00 2001 From: shaw Date: Thu, 16 Oct 2025 20:27:30 +0800 Subject: [PATCH 4/6] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8Dcodex-pr-review.ym?= =?UTF-8?q?l=E6=A0=BC=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/codex-pr-review.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/codex-pr-review.yml b/.github/workflows/codex-pr-review.yml index 200bf6f5..63260209 100644 --- a/.github/workflows/codex-pr-review.yml +++ b/.github/workflows/codex-pr-review.yml @@ -26,7 +26,6 @@ jobs: +refs/pull/${{ github.event.pull_request.number }}/head - name: 校验CRS密钥 - if: ${{ secrets.CRS_API_KEY == '' || secrets.CRS_API_BASE_URL == '' }} env: CRS_API_KEY: ${{ secrets.CRS_API_KEY }} CRS_API_BASE_URL: ${{ secrets.CRS_API_BASE_URL }} From 28b709d30ba3435a2b594e597821fed81f2cd70f Mon Sep 17 00:00:00 2001 From: shaw Date: Thu, 16 Oct 2025 21:20:14 +0800 Subject: [PATCH 5/6] =?UTF-8?q?fix:=20=E6=94=B9=E4=B8=BApull=5Frequest=5Ft?= =?UTF-8?q?arget?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/codex-pr-review.yml | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/.github/workflows/codex-pr-review.yml b/.github/workflows/codex-pr-review.yml index 63260209..d6a98b10 100644 --- a/.github/workflows/codex-pr-review.yml +++ b/.github/workflows/codex-pr-review.yml @@ -1,7 +1,7 @@ name: Codex PR Review on: - pull_request: + pull_request_target: types: [opened, reopened, synchronize] jobs: @@ -14,16 +14,28 @@ jobs: environment: CODEX name: Codex PR Review steps: - - name: Checkout + - name: Checkout base revision uses: actions/checkout@v5 with: - ref: refs/pull/${{ github.event.pull_request.number }}/merge + ref: ${{ github.event.pull_request.base.sha }} + fetch-depth: 0 + persist-credentials: false - name: Pre-fetch base and head refs for the PR + env: + GITHUB_TOKEN: ${{ github.token }} run: | + git remote set-url origin https://x-access-token:${GITHUB_TOKEN}@github.com/${{ github.repository }} git fetch --no-tags origin \ ${{ github.event.pull_request.base.ref }} \ - +refs/pull/${{ github.event.pull_request.number }}/head + +refs/pull/${{ github.event.pull_request.number }}/head:refs/pr/${{ github.event.pull_request.number }}/head \ + +refs/pull/${{ github.event.pull_request.number }}/merge:refs/pr/${{ github.event.pull_request.number }}/merge + + - name: 准备PR工作区 + run: | + rm -rf ../pr-worktree + git worktree prune + git worktree add ../pr-worktree refs/pr/${{ github.event.pull_request.number }}/merge - name: 校验CRS密钥 env: @@ -49,6 +61,7 @@ jobs: crs-base-url: ${{ secrets.CRS_API_BASE_URL }} crs-model: "gpt-5-codex" crs-reasoning-effort: "high" + working-directory: ../pr-worktree prompt: | This is PR #${{ github.event.pull_request.number }} for ${{ github.repository }}. Base SHA: ${{ github.event.pull_request.base.sha }} From 8f58fe62642747e967756a4ada2dababdc176a56 Mon Sep 17 00:00:00 2001 From: AAEE86 Date: Thu, 16 Oct 2025 22:54:17 +0800 Subject: [PATCH 6/6] =?UTF-8?q?feat:=20=E8=B4=A6=E5=8F=B7=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E8=B6=8B=E5=8A=BF=E5=A2=9E=E5=8A=A0=E5=AF=B9Droid?= =?UTF-8?q?=E8=B4=A6=E6=88=B7=E7=9A=84=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/admin.js | 16 ++++++++++++++-- web/admin-spa/src/views/DashboardView.vue | 3 ++- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/routes/admin.js b/src/routes/admin.js index 0206c6c1..2556bf35 100644 --- a/src/routes/admin.js +++ b/src/routes/admin.js @@ -5736,7 +5736,7 @@ router.get('/account-usage-trend', authenticateAdmin, async (req, res) => { try { const { granularity = 'day', group = 'claude', days = 7, startDate, endDate } = req.query - const allowedGroups = ['claude', 'openai', 'gemini'] + const allowedGroups = ['claude', 'openai', 'gemini', 'droid'] if (!allowedGroups.includes(group)) { return res.status(400).json({ success: false, @@ -5747,7 +5747,8 @@ router.get('/account-usage-trend', authenticateAdmin, async (req, res) => { const groupLabels = { claude: 'Claude账户', openai: 'OpenAI账户', - gemini: 'Gemini账户' + gemini: 'Gemini账户', + droid: 'Droid账户' } // 拉取各平台账号列表 @@ -5815,6 +5816,17 @@ router.get('/account-usage-trend', authenticateAdmin, async (req, res) => { platform: 'gemini' } }) + } else if (group === 'droid') { + const droidAccounts = await droidAccountService.getAllAccounts() + accounts = droidAccounts.map((account) => { + const id = String(account.id || '') + const shortId = id ? id.slice(0, 8) : '未知' + return { + id, + name: account.name || account.ownerEmail || account.ownerName || `Droid账号 ${shortId}`, + platform: 'droid' + } + }) } if (!accounts || accounts.length === 0) { diff --git a/web/admin-spa/src/views/DashboardView.vue b/web/admin-spa/src/views/DashboardView.vue index 6a19cd24..61ac8124 100644 --- a/web/admin-spa/src/views/DashboardView.vue +++ b/web/admin-spa/src/views/DashboardView.vue @@ -726,7 +726,8 @@ let accountUsageTrendChartInstance = null const accountGroupOptions = [ { value: 'claude', label: 'Claude' }, { value: 'openai', label: 'OpenAI' }, - { value: 'gemini', label: 'Gemini' } + { value: 'gemini', label: 'Gemini' }, + { value: 'droid', label: 'Droid' } ] const accountTrendUpdating = ref(false)