wucm667
|
29b2d721f4
|
test(web): use shipped SVG asset in embedded frontend tests
|
2026-10-10 08:39:49 +08:00 |
|
wucm667
|
7cd3dc85c3
|
fix(channel-monitor): require request samples before health scoring
|
2026-10-08 10:41:20 +08:00 |
|
wucm667
|
d5f490e106
|
fix(usage): replace misleading long-context multiplier badge
|
2026-10-07 10:48:38 +08:00 |
|
wucm667
|
9f84204c21
|
fix(streaming): preserve chat stream heartbeat comments
|
2026-10-04 09:13:04 +08:00 |
|
wucm667
|
679a7186fb
|
feat(accounts): compact account search and filters
|
2026-10-04 08:43:47 +08:00 |
|
wucm667
|
5800abf1cb
|
fix(models): preserve composite catalog isolation after base update
|
2026-10-03 09:11:53 +08:00 |
|
wucm667
|
1888de135d
|
fix(models): list composite exact route aliases
|
2026-10-01 22:54:05 +08:00 |
|
wucm667
|
27de27ac64
|
fix(risk-control): remove deleted groups from moderation scope
|
2026-09-29 23:24:45 +08:00 |
|
wucm667
|
a4ea8059b7
|
fix(openai): recover rejected encrypted reasoning signatures
|
2026-09-29 16:42:02 +08:00 |
|
wucm667
|
27a9421e6a
|
fix(anthropic): rewrite tool names in one body pass
|
2026-09-29 15:00:16 +08:00 |
|
wucm667
|
aa3a3ea787
|
feat(dashboard): toggle recent usage between tokens and spending
|
2026-09-28 14:48:42 +08:00 |
|
wucm667
|
bd48b2b2d2
|
fix(antigravity): keep compat streams alive before first content
|
2026-09-28 12:15:27 +08:00 |
|
wucm667
|
512aa8bc93
|
fix(setup): omit obsolete rate limit defaults
|
2026-09-28 08:50:36 +08:00 |
|
wucm667
|
82d2552360
|
fix(apicompat): mark converted role items as messages
|
2026-09-28 08:40:41 +08:00 |
|
wucm667
|
02088be2d1
|
fix(openai): retain quota pause until known future reset
|
2026-09-27 14:56:38 +08:00 |
|
wucm667
|
f0ebc183e1
|
feat(groups): allow wildcard positions in model allowlist
|
2026-09-25 09:12:09 +08:00 |
|
wucm667
|
e2c35cf394
|
fix(account): prevent whitelist model mapping conflicts
|
2026-09-23 17:47:47 +08:00 |
|
wucm667
|
453b796df0
|
fix(gateway): enforce composite model ownership in legacy scheduling
|
2026-09-23 15:29:11 +08:00 |
|
wucm667
|
e878ab710f
|
fix(gateway): constrain account model route ownership
|
2026-09-23 15:29:11 +08:00 |
|
wucm667
|
13fcfc0f3b
|
fix(gateway): resolve composite routes for websocket aliases
|
2026-09-23 15:29:11 +08:00 |
|
wucm667
|
0416c9ede4
|
fix(gateway): avoid ambiguous late-cache input subtraction
|
2026-09-23 15:27:53 +08:00 |
|
wucm667
|
a5d8db2445
|
fix(responses): strip oversized input item IDs
|
2026-09-22 19:47:12 +08:00 |
|
wucm667
|
66843cc95c
|
fix(moderation): handle trailing Anthropic system messages
|
2026-09-22 19:07:04 +08:00 |
|
wucm667
|
ece1ecccca
|
fix(gateway): normalize streamed Anthropic usage
|
2026-09-21 12:58:56 +08:00 |
|
wucm667
|
b13200d7a1
|
fix(gateway): forward received chat stream usage
|
2026-09-21 12:58:56 +08:00 |
|
wucm667
|
386f321d3c
|
fix(usage): export missing reasoning effort cleanly
|
2026-09-21 12:41:01 +08:00 |
|
wucm667
|
60a64568bf
|
ci: run simple mode compose environment test
|
2026-09-21 11:06:25 +08:00 |
|
wucm667
|
de98bdff1e
|
fix(images): preserve insufficient balance failures
|
2026-09-21 10:23:10 +08:00 |
|
wucm667
|
992c4f4b89
|
test(frontend): run platform quota modal spec in CI
|
2026-09-21 08:16:18 +08:00 |
|
wucm667
|
b252821c59
|
fix(accounts): preserve refresh errors during usage queries
|
2026-09-19 17:22:39 +08:00 |
|
wucm667
|
68aa26477f
|
feat(simple): make startup default group creation optional
|
2026-09-19 16:47:17 +08:00 |
|
wucm667
|
2d37088bd9
|
fix(settings): preserve client version on invalid user agent
|
2026-09-19 10:36:51 +08:00 |
|
wucm667
|
7b4de8b6ae
|
fix(moderation): prevent reminder tags from bypassing keyword checks
|
2026-09-18 14:54:18 +08:00 |
|
wucm667
|
0920e06a42
|
fix(gateway): restore public response model aliases
|
2026-09-18 13:31:58 +08:00 |
|
wucm667
|
94225b5ed3
|
fix(admin): align platform quota editor with supported platforms
|
2026-09-18 08:42:21 +08:00 |
|
wucm667
|
a9ed218989
|
feat(redeem): paginate user redemption history
|
2026-09-16 13:19:15 +08:00 |
|
wucm667
|
35e69af41b
|
feat(accounts): show estimated OpenAI weekly cost
|
2026-09-07 18:37:15 +08:00 |
|
wucm667
|
8c8fd6e298
|
feat(admin): link subscriptions to user usage
|
2026-09-07 10:13:18 +08:00 |
|
wucm667
|
b59f3bf46c
|
fix(simple-mode): enforce basic group boundaries
|
2026-09-07 09:20:48 +08:00 |
|
wucm667
|
8363d537e0
|
fix(gateway): fail over model-not-found responses
|
2026-09-06 20:38:17 +08:00 |
|
wucm667
|
4a4fd35e0c
|
fix(simple-mode): guard non-empty group deletion
|
2026-09-06 08:11:23 +08:00 |
|
wucm667
|
f46038820b
|
fix(simple-mode): enforce group capability allowlist
|
2026-09-06 08:11:23 +08:00 |
|
wucm667
|
05ad6b49a1
|
fix(simple-mode): enforce basic group capabilities
|
2026-09-06 08:10:41 +08:00 |
|
wucm667
|
a3675552bd
|
feat(simple-mode): allow basic account grouping
|
2026-09-06 08:10:41 +08:00 |
|
wucm667
|
7969751f1f
|
feat(openai): allow none as reasoning mapping source
|
2026-09-05 12:32:30 +08:00 |
|
wucm667
|
4aaf5cb73b
|
fix(openai): enable Astra messages prompt caching
|
2026-09-05 10:58:05 +08:00 |
|
wucm667
|
28f673e4cd
|
fix(gemini): honor custom native models list
|
2026-09-04 22:29:36 +08:00 |
|
wucm667
|
9ddf69698d
|
fix(ops): preserve zero-valued system metrics
|
2026-09-04 18:51:24 +08:00 |
|
wucm667
|
51631d0324
|
fix(apicompat): preserve discovered tools in chat fallback
|
2026-09-04 18:33:23 +08:00 |
|
wucm667
|
c7538cd256
|
fix(codex): advertise search capability for bridged routes
|
2026-09-04 16:43:15 +08:00 |
|
wucm667
|
f5ae32e53f
|
fix(gateway): normalize GLM-5.3 thinking effort
|
2026-09-04 08:15:41 +08:00 |
|
wucm667
|
28dde982cb
|
fix(openai): normalize automation heartbeat bootstrap
|
2026-09-03 17:29:04 +08:00 |
|
wucm667
|
78fc7b171e
|
test: skip live token comparison on network errors
|
2026-09-03 15:16:18 +08:00 |
|
wucm667
|
62198286e9
|
[verified] fix(handler): distinguish gateway admission rejections
|
2026-09-03 12:48:02 +08:00 |
|
wucm667
|
5e4958c889
|
fix(openai): schedule accounts with mapped model
|
2026-09-03 10:51:12 +08:00 |
|
wucm667
|
b6740c937f
|
fix(openai): recover unavailable continuation responses
|
2026-09-03 10:26:12 +08:00 |
|
wucm667
|
10c8f523c4
|
fix(openai): preserve passthrough reasoning effort
|
2026-09-03 09:42:50 +08:00 |
|
wucm667
|
504919a054
|
fix(openai): preserve API key chat cache identity
|
2026-09-01 19:10:37 +08:00 |
|
wucm667
|
5fb5dfb34c
|
fix(openai): reacquire passthrough turn slots
|
2026-09-01 08:13:29 +08:00 |
|
wucm667
|
e21b849a92
|
fix(openai): avoid synthesized instructions for API keys
|
2026-08-31 20:58:49 +08:00 |
|
wucm667
|
1be69e56aa
|
fix(openai): accept delegation bootstrap without call id
|
2026-08-31 12:57:06 +08:00 |
|
wucm667
|
897faea333
|
fix(account): reset quota cooldown atomically
|
2026-08-31 09:12:09 +08:00 |
|
wucm667
|
d5a0124637
|
fix(openai): isolate passthrough websocket sessions
|
2026-08-30 16:49:01 +08:00 |
|
wucm667
|
9f1effd71c
|
fix(admin): preserve quota limits on partial group updates
|
2026-08-30 16:36:13 +08:00 |
|
wucm667
|
a3bbf33c05
|
fix(monitor): scope groups by user access
|
2026-08-30 09:28:40 +08:00 |
|
wucm667
|
7c616db07a
|
fix(openai-ws): bridge oversized passthrough requests
|
2026-08-30 08:41:08 +08:00 |
|
wucm667
|
c037766040
|
fix(keys): preserve Claude attribution headers
|
2026-08-28 20:42:58 +08:00 |
|
wucm667
|
da10822d7d
|
fix(gateway): preserve Anthropic tool arguments
|
2026-08-28 19:08:26 +08:00 |
|
wucm667
|
5345881b1d
|
Merge remote-tracking branch 'upstream/main' into fix/issue-5843-antigravity-mixed-tools
# Conflicts:
# backend/internal/repository/group_usage_rollup_trigger_integration_test.go
|
2026-08-28 17:36:43 +08:00 |
|
wucm667
|
c5ff640dff
|
test(repository): pin rollup trigger session timezone
|
2026-08-28 17:34:42 +08:00 |
|
wucm667
|
02eee39ddf
|
fix(payment): show selected currency in recharge rate
|
2026-08-28 16:54:33 +08:00 |
|
wucm667
|
6ff771d3d3
|
feat(openai): configure image tool cooldown
|
2026-08-26 19:07:39 +08:00 |
|
wucm667
|
50ba146298
|
fix(openai): preserve multimodal client tool outputs
|
2026-08-26 15:04:17 +08:00 |
|
wucm667
|
3802268e2d
|
fix(kimi): keep concurrency 403 recoverable
|
2026-08-25 19:40:39 +08:00 |
|
wucm667
|
1a9898a6a4
|
fix(antigravity): clamp compatible token limits
|
2026-08-25 13:13:08 +08:00 |
|
wucm667
|
71aa6e3574
|
fix(antigravity): preserve explicit Sonnet 4.5 routing
|
2026-08-24 16:07:27 +08:00 |
|
wucm667
|
99ec347eaf
|
fix(antigravity): migrate legacy Sonnet tests to 4.6
|
2026-08-24 15:58:47 +08:00 |
|
wucm667
|
bc4a9ae432
|
fix: prevent duplicate Anthropic cache TTL billing
|
2026-08-24 11:05:57 +08:00 |
|
wucm667
|
616df479e8
|
fix(admin): show account priority by default
|
2026-08-23 19:03:59 +08:00 |
|
wucm667
|
19da0f240e
|
fix(gemini): sanitize unsupported tool schema fields
|
2026-08-23 18:38:11 +08:00 |
|
wucm667
|
4eadee1074
|
[verified] test(openai): update responses bridge signature
|
2026-08-23 08:45:04 +08:00 |
|
wucm667
|
31d5b67baa
|
fix(openai): restore namespaced custom tool aliases
|
2026-08-23 08:11:20 +08:00 |
|
wucm667
|
7498d8fdc8
|
fix(openai): enforce serial tool calls for Responses Lite
|
2026-08-22 19:40:19 +08:00 |
|
wucm667
|
7a09a2eaf7
|
fix(responses): remove orphan deferred tool flags
|
2026-08-22 16:42:56 +08:00 |
|
wucm667
|
3445485ebc
|
fix(frontend): prevent token refresh lock loop
|
2026-08-21 19:14:04 +08:00 |
|
wucm667
|
68653fb2cc
|
fix: allow messages dispatch for composite groups
|
2026-08-21 18:01:16 +08:00 |
|
wucm667
|
66808413df
|
fix(openai): drop orphan replay tool calls
|
2026-08-20 20:10:57 +08:00 |
|
wucm667
|
25da02dddd
|
fix(openai): avoid duplicate HTTP bridge replay
|
2026-08-20 20:10:57 +08:00 |
|
wucm667
|
6b0ec50f24
|
fix(ops): exclude model configuration errors from SLA
404 model_not_found remains unchanged while ops attribution becomes routing/business-limited.
|
2026-08-20 10:52:29 +08:00 |
|
wucm667
|
b1737cc841
|
fix(antigravity): preserve mixed built-in chat tools
|
2026-08-20 00:29:33 +08:00 |
|
wucm667
|
1b30a2d747
|
feat(accounts): support header overrides for CN providers
|
2026-08-19 19:03:39 +08:00 |
|
wucm667
|
4d3b300a25
|
test(scheduler): update CN platform expectations
|
2026-08-19 14:05:52 +08:00 |
|
wucm667
|
b171bb0e4a
|
fix(composite): support CN providers
Extend composite routing, pricing, migrations, and admin options for Kimi, GLM, and DeepSeek.
|
2026-08-19 13:01:25 +08:00 |
|
wucm667
|
b410c39133
|
fix(security): add nanoid audit exception for GHSA-2v37-7h3g-55p8
|
2026-08-19 10:17:52 +08:00 |
|
wucm667
|
971544570d
|
test(antigravity): check tool config assertions
|
2026-08-17 17:11:33 +08:00 |
|
wucm667
|
cb5e03a720
|
fix(antigravity): preserve mixed Gemini tool config
|
2026-08-17 12:36:58 +08:00 |
|
wucm667
|
1977810cf2
|
fix(frontend): isolate account helper data loading
|
2026-08-17 11:04:50 +08:00 |
|
wucm667
|
79c2eb5020
|
fix: skip expiry reminders without SMTP config
|
2026-08-17 10:59:43 +08:00 |
|
wucm667
|
5f19433103
|
fix(ops): avoid single-insert fallback after batch failure
|
2026-08-17 10:52:57 +08:00 |
|
wucm667
|
44ef88f659
|
fix(openai): restore API-key custom tools
|
2026-08-15 11:02:59 +08:00 |
|