Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
49 commits
Select commit Hold shift + click to select a range
e068c3d
fix(openai): preserve overload retries after queued and metadata events
zenggang Oct 16, 2026
7fcaa32
fix(accounts): persist platform and status filters
qhmhyp Oct 16, 2026
b0a02a3
chore: sync VERSION to 0.2.17 [skip ci]
github-actions[bot] Oct 16, 2026
2b1f129
fix(gemini): 流式中途客户端断开时按已收集用量计费
feeeei Oct 16, 2026
1cdecf4
fix(billing): Grok 4.7 Fast 按官方 Fast 价卡计费 (#8119)
StarryKira Oct 17, 2026
9c41b32
fix(gemini): prompt 被拦截只报缓存命中时 input_tokens 不再为负
feeeei Oct 17, 2026
c7bfcd9
fix(tools): normalize parameter constants and annotations
wucm667 Oct 17, 2026
94c7d6b
fix(gateway): Anthropic 账号 chat/responses 兼容流式客户端断开后读完上游再计费
feeeei Oct 19, 2026
ab71e12
fix(images): 异步生图转存的图片下载与同步回填策略对齐
Wei-Shaw Oct 19, 2026
378984d
Merge pull request #8223 from Wei-Shaw/fix/async-image-download-policy
Wei-Shaw Oct 19, 2026
afbef7c
fix(deepseek): avoid duplicate image payloads
wucm667 Oct 19, 2026
0fa0281
Merge pull request #8168 from feeeei/fix/gemini-stream-client-disconn…
Wei-Shaw Oct 19, 2026
8f2cbb5
Merge pull request #8177 from feeeei/fix/gemini-negative-input-tokens
Wei-Shaw Oct 19, 2026
d6120b5
feat(account): Vertex 账号支持配额上限
feeeei Oct 19, 2026
47cb84b
fix(gemini): 分组「允许当前分组生图」开关对 Gemini 系入口生效
feeeei Oct 16, 2026
4355236
fix(gateway): 兼容流上游未正常结束时报错并对齐原生收尾
feeeei Oct 19, 2026
8965487
perf(account): 模型映射签名改为与遍历顺序无关、零分配
feeeei Oct 20, 2026
38b72d7
fix(ratelimit): 模型限流快照写入改为写时复制
feeeei Oct 20, 2026
d5dbb5c
perf(gateway): 单 antigravity 账号分组判定改为按需求值
feeeei Oct 20, 2026
53002f6
perf(scheduler): 调度快照解码结果常驻进程内存
feeeei Oct 20, 2026
e0fa4b9
fix(ratelimit): avoid penalizing Cloudflare 1010 blocks
wucm667 Oct 20, 2026
cacc80b
fix(security): clear dependency security scan failures
wucm667 Oct 21, 2026
4c940c3
fix(ci): synchronize Go patch version checks
wucm667 Oct 21, 2026
4942b2a
Merge pull request #8139 from zenggang/contribute/openai-preoutput-me…
Wei-Shaw Oct 21, 2026
d744c22
Merge pull request #8142 from qhmhyp/fix/account-filter-persistence
Wei-Shaw Oct 21, 2026
9a16800
Merge pull request #8267 from wucm667/fix/issue-8266-security-scan
Wei-Shaw Oct 21, 2026
4c7e9b5
Merge pull request #8166 from feeeei/feat/vertex-account-quota
Wei-Shaw Oct 21, 2026
98f83b7
Merge pull request #8167 from feeeei/fix/gemini-group-image-generatio…
Wei-Shaw Oct 21, 2026
b751230
Merge pull request #8210 from feeeei/fix/anthropic-compat-stream-disc…
Wei-Shaw Oct 21, 2026
b6c3663
Merge pull request #8249 from feeeei/perf/lazy-single-antigravity-probe
Wei-Shaw Oct 21, 2026
b3e66f7
Merge pull request #8250 from feeeei/perf/model-mapping-signature
Wei-Shaw Oct 21, 2026
a34f373
Merge pull request #8251 from feeeei/perf/scheduler-snapshot-memo
Wei-Shaw Oct 21, 2026
67dca96
perf(billing): 账号配额累加按已设置的周期维度选择语句
feeeei Oct 21, 2026
624874b
Merge pull request #8269 from feeeei/perf/account-quota-increment-var…
Wei-Shaw Oct 21, 2026
5e45fa4
Merge pull request #8224 from wucm667/fix/issue-8222-deepseek-image-size
Wei-Shaw Oct 21, 2026
888c605
Merge pull request #8188 from wucm667/fix/issue-8187-tool-schema-cons…
Wei-Shaw Oct 21, 2026
aa48a8b
Merge pull request #8255 from wucm667/fix/issue-8248-cloudflare-json-403
Wei-Shaw Oct 21, 2026
7da09ca
chore: update sponsors
Wei-Shaw Oct 21, 2026
59100d3
fix(build): 对齐上游 Go 1.27.3 镜像版本
apple050620312 Oct 21, 2026
21cc926
Merge pull request #8275 from apple050620312/fix/docker-go-1.27.3
Wei-Shaw Oct 22, 2026
dba770d
Merge pull request #8170 from StarryKira/fix/issue-8119-grok-fast-pri…
Wei-Shaw Oct 22, 2026
c591412
fix(openai): 合并 Codex overload 身份与空流安全重试修复
apple050620312 Oct 22, 2026
c5b8112
Merge pull request #8305 from apple050620312/fix/openai-overload-reco…
Wei-Shaw Oct 23, 2026
8286268
fix(deps): bump dompurify to 3.4.17 for GHSA-cg2g-xh64-v4q7 / GHSA-mr…
Wei-Shaw Oct 23, 2026
ac1b8f1
chore: update sponsors
Wei-Shaw Oct 23, 2026
9f14643
merge: integrate official v0.2.18 with reviewed upstream resolutions
Oct 24, 2026
da25c2f
docs: clarify official billing timer startup behavior
Oct 24, 2026
2f725ae
test: initialize Gemini compatibility service in image gate fixture
Oct 24, 2026
b711f9c
test: assert quota SQL errors with the existing pgx driver
Oct 24, 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
11 changes: 8 additions & 3 deletions .downstream/native-domains.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,11 +78,16 @@ invented from an empty request. Reads never persist identities or timestamps.
The page loads full identities automatically, limits detail reads to three,
rejects obsolete page/policy/mode responses, and retains unsaved mode drafts.
General account edits preserve the latest stored mode when it is omitted.
Existing seeds and persisted TUI identities are retained, and new accounts still
Existing seeds and persisted device identities are retained, and new accounts still
default to `device`.

Enabled simulation uses one fixed credential-source TUI device with independent
real conversations. Stored `session` / `full` values and API inputs remain
Enabled simulation uses one randomly seed-derived, fixed credential-source device
with independent real conversations. The final outbound identity uses official
`codex_cli_rs` normalization for both originator and User-Agent, including the
per-account device path. Stored device fields, OS/architecture/terminal, effective
version and conversation identities retain their existing selection. Persisted
TUI values remain stored; normalization does not regenerate the device.
Stored `session` / `full` values and API inputs remain
compatible but have effective mode `device`; the UI offers only `off` and
fixed-device/multiple-conversation mode. Their stored raw values are not migrated.
Every enabled mode scopes session/thread/parent/window identities one-to-one by
Expand Down
2 changes: 1 addition & 1 deletion .downstream/upstream-base
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v0.2.17
v0.2.18
51 changes: 51 additions & 0 deletions .downstream/upstream-review-v0.2.18.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Official v0.2.18 integration

- Official tag: `v0.2.18`, commit `ac1b8f1271be0d674fa6f074403c1410f30a3a81`.
- Downstream starting commit: `48da9d2dd3c5cfceaaf5f8477556e32b83fd2852`.
- The operator explicitly selected the resolutions below before implementation.
Machine-readable risk and final unresolved-conflict status belong to
`upstream-risk.json`; source admission and production delivery are recorded
separately in the operator workspace.

## Initial text conflicts and selected resolutions

| Conflict files | Resolution |
| --- | --- |
| `backend/internal/repository/scheduler_cache.go` | Use the official memo/revision algorithm, original key names and batch Pipeline. Remove downstream v2 isolation, legacy-key cleanup and extra batch transactions. Retain independent account metadata projections and the official delete-account transaction. No cache migration, Redis clearing or startup barrier is added. |
| `backend/internal/service/gateway_forward.go` | Ordinary Claude SSE handling uses the official 403/529 helper. Retire the downstream SSE classifier, prelude buffering and same-account thinking repair; retain official HTTP 400 thinking/tool repair and historical diagnostic readers. |
| `backend/internal/service/gateway_forward_as_chat_completions.go`, `backend/internal/service/gemini_chat_completions_compat_service.go` | Adopt official disconnect/usage accounting and stream readers. Retire the downstream streaming tool consistency guard and its dedicated error handling in the shared converter and all callers. Retain independent buffered argument reconstruction by actual call ID. |
| `backend/internal/service/openai_gateway_upstream_errors.go` | Remove the downstream special HTTP 400 upstream-error-wrapper classifier and all dependent calls/annotations. Use official error classification and capacity Retry-After waiting. |
| `backend/internal/service/openai_oauth_passthrough_test.go`, `backend/internal/service/openai_setup_token_compat_test.go` | Assertions use the final per-account CLI identity. Retain fixed randomly derived devices, independent conversations, turn state and strict transport; reuse the official normalization helper at the final outbound selector. |
| `frontend/package.json`, `frontend/pnpm-lock.yaml` | Use official v0.2.18 overrides, DOMPurify 3.4.17 and follow-redirects 1.16.1; remove redundant nanoid/Vue constraints. Preserve the independent xlsx 0.20.3 author-distribution dependency. |
| `frontend/src/components/account/AccountUsageCell.vue` | Use the official Gemini/Vertex usage region and service-account quota capability. Remove the former common quota bars and loading-with-old-values condition in that region. |
| `frontend/src/components/account/CreateAccountModal.vue`, `frontend/src/components/account/EditAccountModal.vue`, `frontend/src/components/admin/account/AccountActionMenu.vue` | Merge the imports used by official quota support and the independent model-sync/system-prompt features. Adopt official Vertex quota editing/reset behavior. |
| `frontend/src/views/admin/AccountsView.vue` | Platform/status return to official single-select localStorage persistence. Ignore old plural platform/status URL conditions; keep other filters and sensitive session state. Restore the official timer verbatim with `immediate: false`; it remains inactive, as explicitly selected after checking the library startup behavior. |

These rows cover all 14 initial conflict files. Clean textual merges do not
override these decisions: the final per-account identity, shared tool converter,
filter state and dependent error-classification calls follow the same contract.

## Official additions and retained boundaries

- Preserve official `246_enable_gemini_image_generation_groups.sql` unchanged
alongside historical `246_plugin_extension_state.sql`. Existing Gemini and
Antigravity groups are enabled for image generation. Composite groups retain
their stored switch and reject Gemini image requests when it is off.
- Adopt the remaining conflict-free v0.2.18 changes, including stream billing,
Vertex quota accounting, scheduling performance, Cloudflare 1010 handling,
Gemini tool schemas, DeepSeek image payloads and image-storage download rules.
Go, Docker and CI use official 1.27.3.
- Preserve independent system prompts, DeepSeek default effort, model capacity
evidence and source binding, administrator visibility, account jobs/taxonomy,
login protection, strict Codex transport and Pelican workbench behavior.
Retired borrowing and recovery interfaces remain absent. Historical SQL names,
checksums and diagnostic records remain intact.
- Use the existing required PR checks and fixed-image release/deploy flow. Local
checks are limited to the changed risks; successful checks for the same code
tree are reused. No new fallback, retry, recovery switch or compatibility layer
is introduced. No real model calls or live payment tests are part of this
integration.

Source integration does not establish release or deployment completion. The
operator production pointer and delivery evidence remain authoritative for the
running version, immutable image digest and actual verification results.
Loading
Loading