Commit Graph

134 Commits

Author SHA1 Message Date
Cita 4686c558aa Merge origin/main into codex/single-source-consolidation 2026-03-23 14:44:52 +08:00
Cita 86518202fa refactor: move platform discovery out of model service 2026-03-23 12:14:22 +08:00
Cita 3877f3a3f1 refactor: centralize oauth identity and route refresh workflow 2026-03-23 11:53:59 +08:00
Cita 328b492ab3 fix: finish review-driven single-source cleanup 2026-03-23 11:26:01 +08:00
Cita 29c9fcbd29 fix: resolve remaining review follow-ups 2026-03-22 23:53:41 +08:00
Cita 5d78658af9 fix: address review feedback and code scanning alerts 2026-03-22 23:41:45 +08:00
Cita 32d7037629 refactor: share platform file and route helpers 2026-03-22 22:17:50 +08:00
Cita 9290e51ecc refactor: consolidate single-source routing and protocol helpers 2026-03-22 21:27:09 +08:00
Hureru 26be7c024a fix: address review issues across settings, sites, brand matcher, and token routes
- settings.ts: trigger route rebuild after globalBlockedBrands changes in both
  import and PUT handler; reject non-array payloads with 400 instead of silently
  defaulting to empty array
- sites.ts: trim model names before deduplication so whitespace variants merge
- brandMatcher.ts: align boundary regex with frontend delimiter class [/:_\-\s]
- Settings.tsx: add role="switch" and aria-checked to brand filter chips; make
  getBrandList best-effort so its failure doesn't block page load
- Sites.tsx: build brandGroups from union of availableModels and disabledModels
  so legacy/removed models remain visible; add stale-response guard and error
  logging for disabled/available model fetches
- TokenRoutes.tsx: use baseFilteredRoutes.length for totalRouteCount to keep
  enabled/disabled counts in sync with status filter; add candidatesVersionRef
  to invalidate lazy caches on payload change; add per-channel in-flight guard
  on toggle; invalidate channel cache after rebuild and site-block operations
2026-03-22 20:18:50 +08:00
Hureru 4415317bdc fix: align brand matcher with frontend logic and remove manual model input
- brandMatcher: port collectBrandCandidates + buildMatchContext from
  frontend BrandIcon.tsx so matching is identical between route display
  and rebuild filtering; segments now split on /,:,\s only (not - or _),
  and candidates are recursively generated from /,:,, splits
- Sites.tsx: remove manual model name input and handleAddDisabledModel;
  the checkbox-based batch selection UI fully replaces it
2026-03-22 18:55:40 +08:00
Hureru f14ffd7dc9 fix: address review issues in model filter system
- brandMatcher: split keywords into includes/startsWith/segment/boundary
  modes to align with frontend BrandIcon.tsx matching semantics, preventing
  false-positive blocking from short keywords like o1, tts, command
- handleSiteBlockModel: reject wildcard route patterns (e.g. gpt-*) from
  being written to site disabled list; only allow exact model names
- Sites.tsx: extract brand grouping to useMemo, convert disabledModels
  to Set for O(1) lookup, remove duplicate IIFE computations in JSX
- handleSiteBlockModel: replace window.confirm with project-style DOM
  dialog for visual consistency
- enabledCounts: compute from filtered scope (excluding enabled filter
  itself) so counts reflect current brand/site/search filters
- Fix declaration order: move enabledCounts after sortedRoutes to avoid
  ReferenceError
2026-03-22 18:55:40 +08:00
Hureru cf6ed7db91 feat: add model filter system with site-level batch disable, global brand filter, route status filter, and channel site-block shortcut
- Route status filter: add enabled/disabled filter chips to RouteFilterBar
- Channel site-block: add "站点屏蔽" button on channel rows to quickly
  add a model to a site's disabled list and trigger rebuild
- Site batch selection: new GET /api/sites/:id/available-models endpoint;
  Sites.tsx now shows a brand-grouped checkbox list for batch model disable
- Global brand filter: new brandMatcher.ts service; settings API and UI
  for blocking entire brands from route generation
- Fix infinite scroll race condition when sentinel ref is null during
  IntersectionObserver effect setup after filter changes
2026-03-22 18:55:40 +08:00
Cita 3cc6b7be45 Merge pull request #238 from cita-777/codex/mobile-panel-refactor-final
feat: overhaul mobile management layouts
2026-03-21 20:47:56 +08:00
Cita 09fbf258e2 feat: overhaul mobile management layouts 2026-03-21 20:42:25 +08:00
Cita a81965176f fix: preserve inactive availability after main merge 2026-03-21 20:34:52 +08:00
Cita 3775ee059c Merge remote-tracking branch 'origin/main' into codex/codex-review-fixes
# Conflicts:
#	src/server/services/modelService.ts
2026-03-21 20:31:30 +08:00
Cita fa372d121a fix: preserve availability on inactive refresh failure 2026-03-21 20:27:18 +08:00
Cita 4c14f9c9b0 Merge pull request #234 from cita-777/codex/gemini-oauth-hardening
Fix Gemini OAuth refresh and failure coverage
2026-03-21 20:13:08 +08:00
Cita d9e550c279 fix: address codex review findings 2026-03-21 19:45:29 +08:00
Cita b7a1e523e7 fix: reuse oauth singleflight in gemini discovery 2026-03-21 19:29:33 +08:00
Cita 1d8889001f fix: harden codex runtime routing and oauth recovery 2026-03-21 19:07:14 +08:00
Cita dc93c58582 Fix Claude count tokens routing and model discovery 2026-03-21 18:42:28 +08:00
Cita dd48550ffa Fix Gemini OAuth refresh and failure coverage 2026-03-21 18:38:00 +08:00
ciat-777 89d0aba497 fix: refine config backup import semantics 2026-03-21 16:55:32 +08:00
ciat-777 ab31e0b1c9 fix: preserve local usage state on backup import 2026-03-21 15:41:46 +08:00
ciat-777 04655a8b17 fix(proxy): honor account proxy during oauth discovery 2026-03-21 12:46:46 +08:00
Hureru 4d0c4b8129 feat(proxy): propagate account-level proxy across all surfaces
- chatSurface/openAiResponsesSurface: extract channelProxyUrl once and pass to withSiteRecordProxyRequestInit
- geminiSurface: switch from withSiteProxyRequestInit to withSiteRecordProxyRequestInit with channelProxyUrl
- balanceService: pass accountProxyUrl to sub2api token refresh requests
- siteProxy: fix isAccountOverride to only be true when account proxy differs from site proxy
- Accounts.tsx: use parseAccountExtraConfig helper for proxy badge display
2026-03-21 11:44:57 +08:00
Hureru 8df3b1431f Merge remote-tracking branch 'origin/main' into feat/account-level-proxy
# Conflicts:
#	src/server/proxy-core/surfaces/chatSurface.ts
#	src/server/proxy-core/surfaces/openAiResponsesSurface.ts
#	src/server/routes/proxy/embeddings.ts
#	src/server/routes/proxy/images.ts
#	src/server/services/modelService.ts
2026-03-21 10:09:19 +08:00
Cita 4ba7749391 Merge pull request #220 from cita-777/codex/webdav-backup-armv7l
Add WebDAV backup sync and armv7 Docker builds
2026-03-21 01:24:51 +08:00
ciat-777 1ce036fd46 Address PR review for WebDAV and armv7 2026-03-21 00:48:42 +08:00
ciat-777 bc52b6b5fd Add WebDAV backup sync and armv7 Docker builds 2026-03-21 00:06:16 +08:00
cita 95bf8df499 fix modeltester attachment replay and add proxy file retention 2026-03-21 00:04:06 +08:00
cita 9bc804c121 fix sqlite bootstrap and site announcement migration 2026-03-20 22:51:57 +08:00
Cita a2a93abb69 Merge pull request #214 from zmoon460/main
Fix: postgres 环境下无法保存 模型白名单和群组选择
2026-03-20 21:21:44 +08:00
Cita 485e7a0e7c Merge pull request #215 from Brucents/fix/direct-credential-route-binding
fix(routes): dedupe direct credentials and clarify binding labels
2026-03-20 21:19:48 +08:00
Brucents 5ee493778f fix(routes): dedupe direct credentials and clarify binding labels 2026-03-20 20:41:32 +08:00
zmoon460 da76f56721 Refactor parseJson to handle different value types
Refactor parseJson function to handle various input types and improve null checks.
2026-03-20 20:10:12 +08:00
Cita 0d70dba4e6 Merge pull request #212 from Brucents/fix/proxy-upstream-resolution
fix(proxy): 修正代理上游解析并补齐系统代理测试能力
2026-03-20 19:21:30 +08:00
Brucents a66cbafeb8 fix(proxy): separate upstream target resolution from proxy dispatch and add site-level proxy URLs 2026-03-20 17:40:02 +08:00
cita 3601e7a708 fix explicit-group source-model fallback 2026-03-20 16:45:19 +08:00
Bainily e9c1bd898e [codex] improve proxy stability, routing, and site subscription visibility (#194)
* wip: preserve local changes before upstream merge

* Improve proxy routing stability and add stable-first strategy
2026-03-20 16:18:28 +08:00
cita 4f94393806 fix checkin settings styling and empty updates 2026-03-20 13:31:26 +08:00
Cita 029ee10d26 Merge pull request #187 from cita-777/codex/proxy-log-client-detection-main
feat: add proxy log client detection filters
2026-03-20 12:51:53 +08:00
cita 4e60290838 feat: add proxy log client detection filters 2026-03-20 12:25:30 +08:00
cita 220f786204 fix desktop tray icon telegram topics and checkin intervals 2026-03-20 12:23:13 +08:00
Cita 2de5eebf29 Merge pull request #179 from Shinku-Chen/tg-proxy
增加TG代理选项
2026-03-20 11:40:29 +08:00
Cita 08e7b052da Merge pull request #185 from cita-777/codex/site-announcements
[codex] add site announcements
2026-03-20 11:28:33 +08:00
Cita 0f5ec9a1c1 Merge pull request #184 from cita-777/codex/full-cliproxyapi-parity
[codex] complete codex cliproxyapi parity
2026-03-20 11:28:24 +08:00
cita 940bc1d71c add site announcements 2026-03-20 11:24:29 +08:00
cita adc4fb1be7 complete codex cliproxyapi parity 2026-03-20 11:23:29 +08:00