Commit Graph
100 Commits
Author SHA1 Message Date
Seefs 2d8e50bf36 refactor(web): prevent credential autofill in usage log filters (#6966) 2026-08-21 23:47:48 +08:00
Seefs 4add708ebe feat: channel test (#6917)
* feat: channel test

* fix: code smell
2026-08-18 18:03:59 +08:00
Seefs 2b0efd8484 refactor: advanced custom channel route editor (#6865)
* refactor: advanced custom channel route editor

* fix(channels): show raw balance response from balance cell
2026-08-18 17:31:21 +08:00
Seefs 3dda1d50c6 fix(relaykit): preserve parameterless tools in Claude conversion (#6862) 2026-08-18 17:30:59 +08:00
Seefs 116255f076 fix(oauth): align custom binding response fields in frontend (#6818)
* fix(oauth): align custom binding response fields in frontend

* fix(oauth): restore custom access policy guidance
2026-08-15 13:56:06 +08:00
Seefs e90a7c48e5 feat: add field passthrough controls for gateway channels (#6847) 2026-08-15 13:54:25 +08:00
Seefs 7d09c6954e fix: prompt_cache_key openai chat -> openai responses (#6861) 2026-08-15 13:09:50 +08:00
Seefs 4eaeefbdf5 fix: mobile sidebar (#6760)
* fix: mobile sidebar

* fix(web): prevent iOS sidebar taps from being swallowed
2026-08-11 13:50:39 +08:00
Seefs bb234ff418 refactor(responses): remove compact model suffix handling (#6770) 2026-08-11 13:42:32 +08:00
Seefs 9c97e78ace fix(web): require confirmation before rotating access token (#6749) 2026-08-10 13:12:59 +08:00
Seefs 4cf9107f04 feat(billing): highlight matched conditional multipliers in logs (#6561)
* feat(billing): highlight matched conditional multipliers in usage logs

* fix(billing): make request rule tracing stable and type-safe
2026-08-10 12:50:27 +08:00
Seefs d49160f0e5 fix: backend length validation (#5548) 2026-08-10 12:50:08 +08:00
Seefs 8ad159a3bb fix(ollama): preserve reasoning and tool-call context (#6605) 2026-08-10 12:49:26 +08:00
Seefs 85feb7a345 feat(relay): expose user and group context to parameter overrides (#6534) 2026-08-10 12:49:06 +08:00
Seefs eab18a8357 fix: record reasoning effort consistently in usage logs (#6641) 2026-08-10 12:48:14 +08:00
Seefs 7dd1000a19 perf(web): debounce server and large-list searches (#6727) 2026-08-10 12:47:55 +08:00
Seefs 5d3423bec1 feat(channels): add auto-disable-only channel test mode (#6728) 2026-08-10 12:47:44 +08:00
Seefs 823e26304a fix(channels): classify Qwen TTS models correctly (#6711) 2026-08-08 14:31:29 +08:00
Seefs b941253aea fix: test Claude/Gemini endpoints with native request format (#6698) 2026-08-07 13:35:46 +08:00
Seefs c9bc038649 feat(channels): refine fetched model categorization (#6632)
* feat(channels): refine fetched model categorization

* fix: channel category

* fix: hy3 category
2026-08-07 13:34:56 +08:00
Seefs 9724ef1b24 feat: deepseek responses api (#6562) 2026-07-31 15:23:13 +08:00
Seefs 8461e5339d fix(relay): preserve multipart image edits for New API channels (#6559) 2026-07-31 13:46:13 +08:00
Seefs 84834eee85 feat(logs): expose stream status to log owners (#6558) 2026-07-31 13:29:07 +08:00
Seefs 0f9f668c60 feat: support zstd request decompression (#6545) 2026-07-31 11:17:55 +08:00
Seefs cbd9b30aa4 fix(github): restore issue form visibility (#6454) 2026-07-24 13:53:56 +08:00
Seefs cb96ab0208 chore(github): migrate issue templates to required forms (#6452) 2026-07-24 13:46:54 +08:00
SeefsandCaIon a6cf42c0f1 feat: support upstream model fetch for advanced custom channels (#5971)
* feat: support upstream model fetch for advanced custom channels

* fix: add advanced custom routes as separate groups

* fix: select advanced custom route entry before adding

---------

Co-authored-by: CaIon <i@caion.me>
2026-07-18 13:39:53 +08:00
Seefs 57746fc972 feat(channel): support Codex upstream model discovery (#6184)
* fix(i18n): clarify Go regex and field passthrough copy

* feat(channel): support Codex upstream model discovery

* Revert "fix(i18n): clarify Go regex and field passthrough copy"

This reverts commit d63d7975db3e34ff44e189112d3c15ad8c24ad88.
2026-07-18 13:04:16 +08:00
Seefs b6b97a66e3 fix: purge authentication data on hard user deletion (#6168)
* fix: purge authentication data on hard user deletion

* fix: fail closed when 2FA status lookup fails

* fix: reject stale Telegram login callbacks

* fix(twofa): prevent concurrent backup code and lockout bypasses

* fix(auth): harden user deletion and Telegram verification
2026-07-14 14:25:54 +08:00
Seefs dad57a6bb8 fix: sync codex field (#6018) 2026-07-11 11:04:15 +08:00
Seefs 4e570389dd fix: use GORM v2 row locking for subscription resets (#6057)
* fix: use GORM v2 row locking for subscription resets

* docs: codify GORM row locking rules
2026-07-10 10:21:00 +08:00
Seefs a72e5082e9 feat(system-info): add stale instance cleanup actions (#5953) 2026-07-07 21:22:49 +08:00
Seefs 9b93d61b7f feat(subscription): add admin quota reset actions (#5952)
* feat(subscription): add admin quota reset actions

* fix(subscription): keep quota reset in plan row actions

* refactor(subscription): move user subscription actions into menu
2026-07-07 12:47:41 +08:00
Seefs 45f0484dc1 Fix/build date dns error (#5945)
* Revert "fix(classic): fix classic web build failures"

This reverts commit 997926bbe1.

* fix(classic): use available Slack icon export
2026-07-06 22:32:26 +08:00
SeefsandCaIon 153d7f01a2 fix: avoid stale stream writes after client disconnect (#5710)
* fix: avoid stale stream writes after client disconnect

* fix: wait for stream ping goroutines before returning

* fix: log stream results after goroutine cleanup

* fix: broadcast stream stop signals

* fix: abort upstream on client disconnect and restore write error contracts

Keep the goroutine-lifecycle fix (unconditional wg.Wait before returning the
gin.Context, close resp.Body inside cleanup), but drop the drain-on-disconnect
behavior: when the client goes away, cleanup now runs immediately so the
upstream body is closed, the provider stops generating, and users are not
billed for tokens produced after they disconnected.

Also restore FlushWriter/StringData/PingData returning an error when the
request context is done, so non-scanner relay loops (ollama, fake-stream,
audio, image) keep their disconnect awareness instead of silently consuming
the upstream to completion. ResponseChunkData now propagates write errors.

Add a bounded per-write deadline (http.NewResponseController) before each
locked stream write so a slow-but-connected client cannot block a write
forever and hang the unconditional wg.Wait.

---------

Co-authored-by: CaIon <i@caion.me>
2026-07-06 21:40:23 +08:00
Seefs 4ae341756e fix(channels): show field passthrough controls for Codex (#5902) 2026-07-04 19:50:15 +08:00
Seefs c12e5db4f9 fix(ci): install classic workspace dependencies for releases (#5719) 2026-06-24 21:06:58 +08:00
Seefs 64eafc9414 fix: date-fns-tz classic theme build error (#5676) 2026-06-24 15:54:51 +08:00
Seefs 0b7ae4ea79 fix: StepFun -> Stepfun (#5636) 2026-06-21 12:20:14 +08:00
Seefs 3fcd741c6e refactor: codex usage ui (#5595)
* refactor: codex usage ui

* feat: show Codex reset credit details

* feat: add Codex usage reset flow
2026-06-19 16:07:32 +08:00
Seefs 3f2c0aeda7 feat: advanced custom channel (#5590) 2026-06-18 18:00:27 +08:00
Seefs 97eadbefa6 fix(oauth): clear bindings when hard deleting users (#5582) 2026-06-18 12:16:23 +08:00
Seefs 8d87d5fd8b test: clean up reward-hacking backend tests (#5563) 2026-06-17 16:47:52 +08:00
Seefs b798e3496f fix: aws ak/sk context management (#5547) 2026-06-17 16:17:07 +08:00
Seefs 43c7e30a47 fix: restore custom home iframe viewport height (#5545) 2026-06-16 23:15:39 +08:00
Seefs 9bc1a53dea fix: fix CC Switch model selector (#5515) 2026-06-15 16:35:18 +08:00
Seefs 51475c8062 fix: only fetch deployment settings on deployments page (#5466) 2026-06-13 00:10:26 +08:00
Seefs 1507229238 fix: add deleted user status filter (#5464) 2026-06-13 00:03:28 +08:00
Seefs 1292b8b2d5 chore: update Codex channel (#5461) 2026-06-12 23:45:15 +08:00
Seefs d2f7f9ee3a fix: limit anonymous request body (#5244)
* fix: limit anonymous request body (env ANONYMOUS_REQUEST_BODY_LIMIT_KB = 512)

* fix: allow disabling anonymous request body limit
2026-06-05 11:39:29 +08:00
Seefs 933ea0cddc fix: add relay idle connection timeout config (#5309) 2026-06-05 11:30:08 +08:00
Seefs d17b566bcc docs: refine issue templates (#5271) 2026-06-03 12:04:40 +08:00
Seefs 30025aeba3 fix: use actual user id for channel tests (#5109) 2026-05-26 12:32:20 +08:00
Seefs c91ba0c4eb fix: consolidate Waffo payment settings save flow (#5110) 2026-05-26 12:32:05 +08:00
Seefs 1288028181 fix: truncate oversized upstream error logs (#5083) 2026-05-25 23:10:30 +08:00
Seefs 49bc3a1175 fix(payment): hide classic Waffo Pancake settings (#5085) 2026-05-24 16:37:43 +08:00
Seefs f2c7647ecf fix: enforce Waffo subscription compliance and product ID update (#5038)
* fix: enforce Waffo subscription compliance and product ID updates

* fix: hide Waffo Pancake settings in classic UI
2026-05-22 11:48:32 +08:00
Seefs ae6a03364d perf: optimize request metadata extraction and disabled field filtering (#5009)
* perf: optimize request metadata extraction and disabled field filtering

* perf: optimize stream usage estimation path
2026-05-22 10:32:11 +08:00
Seefs 20d3e73734 fix: filter perf metrics summary by active groups (#4976) 2026-05-20 11:38:09 +08:00
Seefs 2d1ca15384 fix: respect dashboard content visibility settings (#4975) 2026-05-19 18:46:21 +08:00
Seefs 0d4b25795a fix: expose param override audits for sensitive message fields (#4974) 2026-05-19 18:28:03 +08:00
Seefs 0936e25046 perf: avoid eager formatting in debug log calls (#4929) 2026-05-19 12:11:24 +08:00
Seefs 68830e6097 feat: support request_header key source (#4903)
* feat: support request_header key source in backend and settings UI

* feat: support request_header channel affinity source
2026-05-17 11:44:38 +08:00
Seefs cb7a61466e Merge pull request #4684 from SAY-5/fix/perf-metric-ambiguous-column
fix: qualify column names in PerfMetric upsert to avoid PG ambiguity
2026-05-16 22:11:38 +08:00
Seefs 38a3314b9b fix: preserve OpenAI image edit reference fields (#4646)
* fix: preserve OpenAI image edit reference fields

* feat: support json image edit requests
2026-05-06 21:27:47 +08:00
Seefs f424f906d8 feat: sync upstream pricing from pricing endpoint (#4452)
* feat: sync upstream pricing from pricing endpoint

* feat: sync upstream pricing with expression priority

* fix: add feedback while syncing upstream pricing

* fix: show loading state for empty upstream pricing sync
2026-04-26 20:17:35 +08:00
Seefs 1d83b5472a fix: require proper verification for passkey changes (#4393) 2026-04-22 22:55:06 +08:00
Seefs e729b22197 fix: refresh codex credentials for auto-disabled channels (#4324) 2026-04-22 22:54:52 +08:00
Seefs 5f67d2a28b fix: use stream for codex auto test (#4325) 2026-04-22 22:54:41 +08:00
Seefs d586a567e4 chore: refine codex usage modal layout (#4386)
* chore: refine codex usage modal layout

* fix: polish codex usage modal responsiveness
2026-04-22 22:54:28 +08:00
Seefs f995a868e4 Merge pull request #4089 from seefs001/feature/waffo-pay
rafactor: payment
2026-04-18 14:22:54 +08:00
Seefs 5b9dcf1bda Merge pull request #4311 from KoellM/fix-gemini-3-toolconfig
fix(gemini): add IncludeServerSideToolInvocations field to ToolConfig
2026-04-18 01:13:48 +08:00
Seefs f7adf02eb4 feat(claude): add cache_control and speed passthrough controls (#4247) 2026-04-15 20:55:01 +08:00
Seefs 0664bb3f65 Merge pull request #4076 from seefs001/ci/add-pr-check
ci: refine PR template and add PR submission checks
2026-04-09 14:35:38 +08:00
Seefs c7cf20391e fix: document render (#4153) 2026-04-09 14:35:31 +08:00
Seefs 3bda738ec1 fix: prefer explicit pricing for compact models (#4156) 2026-04-09 14:34:14 +08:00
Seefs 48695e0e6f Merge pull request #3350 from goodmorning10/feat/error-boundary
feat: add ErrorBoundary to prevent full-page crashes
2026-04-08 12:21:11 +08:00
Seefs e96ca77542 Merge branch 'main' into feat/error-boundary 2026-04-08 12:20:50 +08:00
Seefs 1ad2557668 Merge pull request #3488 from clansty/feature/channel-affinity-include-model
feat: add IncludeModelName option to channel affinity rules
2026-04-08 11:54:31 +08:00
Seefs 495e4f5e17 Merge pull request #4087 from D26FORWARD/fix/gemini-native-stream-detection
fix(gemini): detect streaming from URL path :streamGenerateContent
2026-04-04 19:04:32 +08:00
Seefs c766913baf Merge pull request #3507 from QuantumNous/dependabot/go_modules/golang.org/x/image-0.38.0
chore(deps): bump golang.org/x/image from 0.23.0 to 0.38.0
2026-03-31 16:52:35 +08:00
Seefs fbf235d222 Merge pull request #3461 from feitianbubu/pr/0ec3d7a1b2cc1375b5c7fe041ae94d714eb03a69
feat: prevent metadata from overriding model fields
2026-03-27 15:36:01 +08:00
Seefs 3c516084f8 Merge pull request #3360 from lcq225/docs/improve-bt-installation-guide
docs: 完善宝塔面板部署教程并修复链接错误
2026-03-22 00:43:13 +08:00
Seefs 4d675b4d1f Merge pull request #3357 from wenyifancc/cache_llama_cpp
feat: Add support for counting cache-hit tokens in llama.cpp
2026-03-22 00:39:49 +08:00
Seefs 87b426f306 Merge pull request #3369 from RedwindA/feat/logsManagement
feat: add server log file management to performance settings
2026-03-22 00:32:01 +08:00
Seefs 04f5dd0206 Merge pull request #3293 from zhongyuanzhao-alt/ft-waffo-payment-zzy20260317
feat(waffo): Waffo payment gateway integration
2026-03-18 23:48:05 +08:00
Seefs ede0ad117b Merge pull request #3316 from Honghurumeng/main
fix: 修正 Codex free 账号用量显示到每周窗口
2026-03-18 21:34:29 +08:00
Seefs a1a92c1918 Merge pull request #3313 from ywandy/feat-search-ratelimit
feat: 支持通过环境变量配置搜索接口限流参数
2026-03-18 18:19:05 +08:00
Seefs a4fd2246ba Merge pull request #3267 from feitianbubu/pr/eb2ed7806ae5f2348681ce9fcff3f3572f535919
feat: add logs content tooltip
2026-03-16 16:59:56 +08:00
Seefs efab41c476 Merge pull request #3233 from KiGamji/round-remaining-balance
Round remaining balance
2026-03-15 00:58:33 +08:00
Seefs 24ec27f844 Merge pull request #3221 from RedwindA/chore/updateModelList
chore: update model lists for frequently used channels
2026-03-12 15:13:03 +08:00
Seefs cd1d43ae47 Merge pull request #3120 from nekohy/main
feats: repair the thinking of claude to openrouter convert
2026-03-05 18:10:46 +08:00
Seefs 5bd67d0a4e Merge pull request #3130 from feitianbubu/pr/ce221d98d71ab7aec3eb60f27ca33dbb4dc9610a
fix: fetch model add header passthrough rule key check
2026-03-05 18:09:44 +08:00
Seefs 70821e2051 feat: auto fetch upstream models (#2979)
* feat: add upstream model update detection with scheduled sync and manual apply flows

* feat: support upstream model removal sync and selectable deletes in update modal

* feat: add detect-only upstream updates and show compact +/- model badges

* feat: improve upstream model update UX

* feat: improve upstream model update UX

* fix: respect model_mapping in upstream update detection

* feat: improve upstream update modal to prevent missed add/remove actions

* feat: add admin upstream model update notifications with digest and truncation

* fix: avoid repeated partial-submit confirmation in upstream update modal

* feat: improve ui/ux

* feat: suppress upstream update alerts for unchanged channel-count within 24h

* fix: submit upstream update choices even when no models are selected

* feat: improve upstream model update flow and split frontend updater

* fix merge conflict
2026-03-02 22:01:53 +08:00
Seefs 618fce621b Revert "fix: aws text content blocks must be non-empty" 2026-03-02 19:43:00 +08:00
Seefs 04954f1058 Revert "Fix/aws non empty text" 2026-03-02 19:40:53 +08:00
Seefs ad326beb10 Merge pull request #3066 from seefs001/fix/aws-header-override
Fix/aws header override
2026-03-02 18:54:56 +08:00
Seefs 8ae96be365 Merge pull request #3077 from seefs001/fix/aws-non-empty-text
fix: aws text content blocks must be non-empty
2026-03-02 16:33:03 +08:00
Seefs 530e43b21c Merge pull request #3060 from QuantumNous/dependabot/npm_and_yarn/electron/minimatch-3.1.5
chore(deps-dev): bump minimatch from 3.1.2 to 3.1.5 in /electron
2026-03-01 14:50:03 +08:00
Seefs 4f4a04ab2c Merge pull request #2720 from QuantumNous/dependabot/npm_and_yarn/electron/lodash-4.17.23
build(deps-dev): bump lodash from 4.17.21 to 4.17.23 in /electron
2026-03-01 14:49:41 +08:00