ggbond
35207da958
fix(gateway): raise and make configurable the core config-acceptance timeout ( #1761 )
2026-09-13 22:12:14 +08:00
musistudio
afba89fa37
Refactor router configuration and request handling
2026-09-10 14:47:43 +08:00
musistudio
cfe7d530d1
Update model catalog for 3.1.0
2026-09-10 14:11:51 +08:00
musistudio
0712db134f
chore(release): 3.1.0
2026-09-10 11:53:12 +08:00
musistudio
49fdd1a4a4
fix(claude-design): preserve interactive style questions
2026-09-10 11:20:47 +08:00
musistudio
39e4da3a03
fix(meta): enforce output token floor and verify tool IDs ( #1781 )
2026-09-09 20:33:56 +08:00
musistudio
bc630ffc21
fix(claude-code): default to helper auth and honor provider limits ( #1779 )
2026-09-09 20:28:29 +08:00
musistudio
b229bd86d3
fix(search): recognize Cowork WebSearch declarations ( #1766 )
2026-09-09 20:25:09 +08:00
musistudio
c7e9a4cb4b
fix(opencode): supply required session headers ( #1780 )
2026-09-09 20:25:09 +08:00
musistudio
b1fd1e242f
fix(gemini): honor selected protocols and API key auth ( #1778 )
2026-09-09 20:25:09 +08:00
musistudio
9387b5b190
fix(providers): persist deselected protocols ( #1765 )
2026-09-09 20:13:51 +08:00
musistudio
9f45399bc7
perf(app): avoid repeated eager executable discovery ( #1776 )
2026-09-09 20:12:07 +08:00
musistudio
687b84f242
perf(routing): reuse provider identity sets ( #1777 )
2026-09-09 20:09:07 +08:00
musistudio
09d41b0a21
perf(providers): cache bounded catalog lookups ( #1775 )
2026-09-09 20:07:50 +08:00
musistudio
82d2f52738
fix(claude-app): remove deprecated configuration keys ( #1772 )
2026-09-09 20:06:04 +08:00
musistudio
37ae4f51e4
fix(claude-app): preserve preferences on restore ( #1768 )
2026-09-09 20:04:49 +08:00
musistudio
b0d59afe08
Refactor routing configuration and improve provider support
2026-09-09 19:43:16 +08:00
musistudio
2b57c6078f
Merge branch 'feat/ai-gateway' into dev/3.1
...
# Conflicts:
# packages/core/src/gateway/core-runtime/upstream-header-sanitizer.ts
2026-09-02 20:24:42 +08:00
musistudio
61f8d8a60a
Merge branch 'main' into dev/3.1
2026-09-02 20:21:32 +08:00
musistudio
923c742103
Add overview statistics reset with persistent reset tracking
2026-09-02 19:40:54 +08:00
musistudio
4bf550824d
Disable streaming replies for Weixin iLink
2026-09-02 19:29:25 +08:00
musistudio
4afd350eef
Implement comprehensive application updates
2026-09-02 18:37:11 +08:00
musi
5ad5083b4e
Merge pull request #1742 from Pgooone/fix/overview-account-bento-row-clip
...
fix(ui): 修复账户余额网格行数超限导致的卡片裁切
2026-09-01 22:36:00 +08:00
musi
474dccb0e0
Merge pull request #1736 from BetterAndBetterII/fix/preserve-cowork-egress-hosts
...
fix: preserve coworkEgressAllowedHosts when rewriting Claude App config
2026-09-01 22:35:15 +08:00
Pgooone and Claude Code
ca99139285
fix(ui): 修复账户余额网格行数超限导致的卡片裁切
...
供应商账户较多时,双行卡片会把 dense 排布撑出超出组件高度档位的
行数,auto-rows-fr 将组件高度均分给每一行后行高被压到单行卡片
最小内容高度以下,卡片文字被裁切、网格出现空洞。
## 根因
- providerAccountBentoRowCount 把 height=2 的组件映射为最多 3 行,
而每档组件高度只够容纳一行 ~120px 的卡片
- providerAccountBentoLayout 只按格子数(列数 x 行数上限)做预算,
格子预算无法约束实际 dense 排布占用的行数
## 修复
- 行数上限改为跟随组件高度档位(height 即行数)
- 布局新增行数收敛阶段:模拟 CSS dense 排布计算真实占用行数,
超限时先从尾部降级双行卡片(跳过手动设定尺寸),仍超限再隐藏
进 "+N" 溢出块;溢出块同样参与占位模拟,不撑出新行
Co-Authored-By: Claude Code <noreply@anthropic.com >
2026-08-31 05:22:25 +08:00
musi
c3231f84d7
Merge pull request #1723 from gtapps/fix/1722-responses-tool-strictness
...
fix(gateway): opt OpenAI Responses tools out of implicit strict mode
2026-08-30 10:46:26 +08:00
musi
51ab4ecafa
Merge pull request #1718 from diogomcd/feat/codex-explicit-context-window
...
feat: allow explicit context window overrides for local Codex providers
2026-08-30 10:45:50 +08:00
Gabriel Tavares
197a8a604f
fix(gateway): stamp Responses tool strictness only for Anthropic conversions
...
Native /v1/responses clients omit strict as API semantics; forcing false opted them out of strict tool schemas.
2026-08-30 01:19:28 +01:00
Yuzhong Zhang
dc82dc9e47
fix: preserve coworkEgressAllowedHosts when rewriting Claude App config
...
Merge existing configLibrary JSON before writing gateway fields so CCR
restarts no longer wipe sandbox egress allowlists.
Fixes #1735
2026-08-29 13:28:08 +00:00
Diogo Macedo
d5638fb4f3
fix: honor pinned context windows in Claude App routes with a shared percent helper
2026-08-27 19:20:43 -03:00
Diogo Macedo
49a8b5bd78
fix: remove the hardcoded imported Codex context-window cap
2026-08-27 19:19:34 -03:00
musi
aec22a00cc
Merge pull request #1682 from songkuan-zheng/feat/ui-provider-advanced-json
...
feat(ui): edit extraBody and extraHeaders from Advanced settings
2026-08-27 22:41:36 +08:00
musi
46e3232913
Merge pull request #1699 from krajcik/fix/gateway-preload-undici-major-mismatch
...
fix(gateway): pair dispatchers with bundled undici fetch on undici major mismatch (Node >= 25)
2026-08-27 22:35:35 +08:00
musi
44e3a52990
Merge pull request #1715 from diogomcd/fix/responses-unsupported-metadata
...
fix: skip session affinity body fields for Codex Responses upstreams
2026-08-27 22:25:18 +08:00
musi
e7ff249367
Merge pull request #1711 from diogomcd/fix/invalidate-claude-gateway-model-cache
...
fix: invalidate Claude gateway model discovery cache when the profile allowlist changes
2026-08-27 22:19:55 +08:00
krajcik
98b30c2510
refactor(gateway): defer dispatcher pairing to ai-gateway 1.0.18
2026-08-26 15:35:41 +03:00
Gabriel Tavares
54f57a35d5
fix(gateway): opt OpenAI Responses tools out of implicit strict mode
...
Claude Code omits tool.strict, so Responses promotes optional fields to required and models emit both Monitor command and ws.
2026-08-25 23:30:35 +01:00
Diogo Macedo
7c1c0d49b4
feat: respeita Entry mode dos perfis no sync da config do app Claude
2026-08-25 16:17:27 -03:00
Diogo Macedo
92d771feb6
fix: honor pinned context windows through metadata merges and effective percent
2026-08-25 15:20:36 -03:00
Diogo Macedo
7a2b4c3a75
feat: respect explicit user context windows over imported Codex caps
2026-08-25 13:03:59 -03:00
musi
99f24806c6
update sponsor
2026-08-25 22:03:48 +08:00
musistudio
a8d7038778
Add account filtering and range-aware tray activity widgets
2026-08-25 19:06:24 +08:00
songkuan-zheng
7f2500980d
fix(ui): document the raw ai-gateway extraBody shape instead of byModel
...
Review follow-up: byModel is ai-gateway's normalized internal form
(parseModelScopedBody treats only `default` and actual model names as
scope keys); the raw config saved to disk is `default` plus top-level
model-name keys. The help text, i18n rows and the round-trip test now
use that raw shape.
2026-08-25 06:08:44 +00:00
songkuan-zheng
e4ad5db099
feat(ui): edit extraBody and extraHeaders from Advanced settings
...
The provider dialog had no field for either, so both were config-file
only: invisible in the UI and only editable by hand-writing the config
or writing to the config database directly.
Adds two JSON boxes to the Advanced settings section, next to the usage
connector body that already uses this pattern. They open pre-filled with
whatever the provider carries, and a malformed or non-object value blocks
the save with an inline error instead of writing something the gateway
would ignore.
extraBody and extraHeaders leave providerManualFieldsForSave now that the
draft round-trips them; billing, provider and transformer stay there.
2026-08-25 06:08:22 +00:00
songkuan-zheng
1e696434c8
fix(ui): keep hand-written provider fields when saving from the dialog
...
Saving a provider from the setup dialog replaced the stored entry with an
object rebuilt from the dialog draft, so every field the form does not
expose was dropped: extraBody, extraHeaders, transformer, billing and the
legacy provider protocol alias.
These only ever come from a hand-written config, and the loss is silent —
the provider keeps working, just without the upstream parameters it was
configured with. Re-typing a base URL on a provider carrying
`extraBody: { default: { reasoning_effort: "high" } }` is enough to turn
reasoning off with no error and no visible change in the UI.
Carry those fields over from the existing provider on edit. The legacy
apiKey/apikey/baseUrl/baseurl aliases are deliberately not carried over:
the form writes the canonical api_key/api_base_url, and a stale alias
would shadow the value the user just typed.
2026-08-25 06:08:13 +00:00
Diogo Macedo
23592a893b
fix: contain Claude model discovery cache invalidation failures in the claude-code profile status
2026-08-24 12:06:31 -03:00
Diogo Macedo
6040d66f37
fix: hash generated Claude discovery and bootstrap payloads in the model cache fingerprint
2026-08-24 11:51:46 -03:00
Diogo Macedo
c15b668910
fix: skip session affinity body fields for codex responses upstreams
2026-08-24 10:41:34 -03:00
musistudio
829298cf8b
Update model catalog for 3.0.22
2026-08-24 20:19:33 +08:00
musistudio
19e5d4909e
Release 3.0.22
2026-08-24 20:16:17 +08:00