feeeei
f19095f96d
模型广场:分时时段行明确不含高峰倍率口径并披露叠加
...
- 实扣倍率为 基础 × 高峰 × 分时;时段行价格与整表一致,按不含高峰的口径展示
- 分组启用高峰时,时段行 tooltip 披露与高峰窗口重叠的部分实付再乘高峰倍率
- PlazaGroupSection 把高峰窗口描述与倍率传入价格表
2026-08-24 11:23:58 +08:00
feeeei
b07d85c497
模型广场:分时计价同步渠道仅工作日规则
...
- 阶梯表分时倍率透传渠道 weekdays_only;探针锚点显式固定在工作日
(原 2026-01-01 恰为周四是巧合,锚点落周末会把仅工作日时段整组剔除)
- 前端时段徽章加「工作日」前缀,tooltip 说明周末全天按标准价计费
2026-08-24 11:16:00 +08:00
feeeei
83d4eb6a43
模型广场:增加渠道分时段计价展示
...
- 阶梯表查询附带分时倍率时段:时段取自计费解析到的渠道定价,
每个时段的倍率由计费的 resolvedChannelTimeMultiplier 在时段内取值,
分组价卡覆盖或配置非法时自然不出现;倍率为 1 的时段不列
- 广场模型条目新增 time_pricing(时区 + 时段 + 倍率)
- 前端把分时时段展开为独立行:模型名旁标注时段,价格按时段倍率折算,
倍率列显示生效倍率;时区与计算口径放在提示中
2026-08-24 10:50:52 +08:00
feeeei
ecce0769c0
模型广场:上下文档位统一标签形态并保证升序
...
- 阶梯表标签由计费层统一生成:有上限的档为「≤上限」、末档为「>下限」
(达到阈值即进高档时用 < / ≥),不再沿用渠道区间的自定义 tier_label;
合并同价段只看单价
- 前端档位按下限升序兜底展示,无标签时按同一形态生成
2026-08-24 10:50:52 +08:00
feeeei
377d1230fc
模型广场:按计费阶梯单价表展示长上下文档位
...
- 新建 ModelPlazaService(持计费服务与定价解析器)承接广场聚合,
token 模型的单价与档位全部取自 ResolveContextPricingSchedule,
渠道选择与计费同源;图片/按次模型沿用原档位合成
- 官方参考价改走计费目录(LiteLLM → 内置兜底 → 模型策略),带官方阶梯
- DTO 增加 long_context_pricing_enabled / long_context_basis /
official_pricing.intervals
- 前端实付与官方三列按档分行(标签只在首列,其余列按行对齐),
缓存列按档展示写/读价,边际计价以徽章与 tooltip 标注,
分组关闭阶梯时在头部说明
2026-08-24 10:50:52 +08:00
Wesley Liddick
3e45d4e030
Merge pull request #6089 from lyen1688/feat/channel-time-pricing-weekdays
...
新增渠道时间段定价工作日生效规则
2026-08-24 10:21:47 +08:00
shaw
391d69e086
fix: preserve initial plugin bridge requests
2026-08-24 09:51:31 +08:00
shaw
684d9efb1f
fix: harden plugin runtime and UI bridge
2026-08-24 09:50:46 +08:00
shaw
40ea3aebad
feat: add OAuth outbound transport plugin system
2026-08-24 09:03:37 +08:00
lyen1688
77e0409f7c
新增渠道时间段定价工作日规则
2026-08-23 00:30:27 +08:00
yan9651688
d9d2854d27
Make enabled model plaza discoverable from /home
...
The model plaza route already supports public access, but both built-in /home headers omit its entry. Add the link to compact and default headers while keeping the existing feature and authentication settings authoritative, then cover the visibility matrix with focused component tests.
Constraint: Keep the change frontend-only and preserve router-owned access control
Rejected: Add the link to AppHeader only | /home renders its own headers and never mounts AppHeader
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep the model plaza entry gated by the existing opt-in flag and require-auth setting
Tested: HomeView focused Vitest, full frontend Vitest (223 files / 1554 tests), ESLint, vue-tsc, production build
Not-tested: Manual browser click-through against a running backend
Related: #5524
2026-08-21 21:29:39 +08:00
Wesley Liddick
beaeaaed06
Merge pull request #6009 from HypoxanthineOvO/fix/cn-quota-refresh-affordance
...
fix(frontend): make CN provider quota/balance refresh affordance explicit
2026-08-21 21:25:05 +08:00
Wesley Liddick
afa21336a5
Merge pull request #6048 from wucm667/fix/issue-5886-composite-messages-dispatch
...
fix: allow messages dispatch for composite groups
2026-08-21 21:24:06 +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
heyx
2e279c81d2
fix(frontend): make CN provider quota/balance refresh affordance explicit
...
The quota cell used the noun label "5-hour window/weekly window" and the
balance cell the balance value itself as the click target for a manual
refresh. Both read as passive captions, so users could not discover the
manual probe and reported the feature as missing ("only OpenAI has a
refresh button").
- Split data display from the refresh action: bars/balance render as
static rows (snapshot already paints on mount), with a dedicated
action button below, aligned with the OpenAI "Query" and Grok
"Probe" buttons (same icon, blue action styling).
- Label the control with a verb (cnProviders.probe: 查询 / Query) and
give the balance cell a tooltip (it previously had none).
- Keep the tier/label layout classes and data-test hooks intact.
- Extend the quota cell spec and add a balance cell spec covering
snapshot rendering, explicit action labeling and failure passthrough.
2026-08-21 16:23:11 +08:00
IanShaw027
7c53a842e4
合并上游 main,保留 5925 的 Grok 重试上限与 5888 的协议兼容修复
...
同账号重试采用次数上限加 deadline;畸形 tools 在出站前删除;compaction 422 与结构化错误扫描一并保留。
2026-08-21 08:49:44 +08:00
IanShaw
e62ec2c42f
Revert "feat(429): add configurable cooldown and retry strategies"
...
This reverts commit 6c3edc0956 .
2026-08-20 05:44:21 -07:00
IanShaw
6c3edc0956
feat(429): add configurable cooldown and retry strategies
2026-08-20 05:43:43 -07:00
IanShaw
39485f2e28
更新 Grok 默认模型与官方计费目录
2026-08-20 02:32:22 -07:00
IanShaw
48615d5d1f
Merge remote-tracking branch 'upstream/main' into fix/openai-responses-compatibility
...
# Conflicts:
# backend/internal/handler/ops_error_logger.go
2026-08-20 00:31:12 -07:00
Wesley Liddick
740f580801
Merge pull request #5842 from SavitarC/feat/adaptive-api-protocol
...
feat(accounts): 添加账号支持自适应API 协议
2026-08-20 14:43:41 +08:00
IanShaw
d1c6456d08
合并上游最新主分支兼容修复
2026-08-19 23:15:50 -07:00
IanShaw
e4f869e0c7
完善运维错误详情兼容展示
2026-08-19 23:13:47 -07:00
SavitarC
b3092145db
fix(accounts): harden adaptive protocol compatibility
2026-08-20 13:57:25 +08:00
Wesley Liddick
cb7fef14c0
Merge pull request #5838 from xuhaihan/fix/admin-user-role-select-styling
...
fix(frontend): align admin role selector styling
2026-08-20 13:40:21 +08:00
SavitarC
85051616f9
feat(accounts): add adaptive API protocol routing
2026-08-20 11:52:05 +08:00
Wesley Liddick
1b5dc676a9
Merge pull request #5851 from IanShaw027/feat/channel-pricing-tier-multipliers
...
fix(billing): restore Fast tier pricing under channel overrides, add configurable multipliers
2026-08-20 10:13:17 +08:00
hansnow
1f2a87adb0
fix(admin): 补全平台筛选选项
2026-08-20 10:00:09 +08:00
IanShaw
d4d2c746c5
前端:修正账号长上下文开关门控
2026-08-19 06:35:11 -07:00
IanShaw
26be82cc85
前端:配置渠道倍率并精简长上下文开关
2026-08-19 06:35:11 -07:00
Wesley Liddick
32a0d9ba2d
Merge pull request #5837 from xuhaihan/fix/cn-provider-quota-cell-layout
...
fix(frontend): prevent CN quota labels overlapping bars
2026-08-19 21:05:26 +08:00
Wesley Liddick
32ecd5cc62
Merge pull request #5847 from wucm667/feat/issue-5826-cn-header-overrides
...
feat(accounts): support header overrides for CN providers
2026-08-19 20:28:36 +08:00
wucm667
1b30a2d747
feat(accounts): support header overrides for CN providers
2026-08-19 19:03:39 +08:00
hank
63839f193a
fix(frontend): align admin role selector styling
2026-08-19 16:47:51 +08:00
hank
994fbfeddb
fix(frontend): prevent CN quota labels overlapping bars
2026-08-19 16:47:51 +08:00
hank
f917d19d3e
test(frontend): align Grok API key placeholder assertion
2026-08-19 16:47:11 +08:00
shaw
bd1ccd9736
Merge remote-tracking branch 'origin/main' into fix/issue-5796-composite-new-platforms
2026-08-19 14:47:34 +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
Kingsley
58e147fba6
feat(composite): support Codex endpoints
2026-08-19 04:40:32 +00:00
Wesley Liddick
e61595fb35
Merge pull request #5780 from Randark-JMT/fix/channel-monitor-p2
...
fix(monitor): P2 audit follow-ups — credential/balance semantics, capability checks, single account load, quota placeholder UI
2026-08-19 11:21:35 +08:00
Wesley Liddick
359fd12b2e
Merge pull request #5749 from Randark-JMT/chore/remove-sora-leftovers
...
chore: remove leftover Sora references after platform removal
2026-08-19 09:41:25 +08:00
Randark
2c250bfd73
fix(monitor-ui): localize the "quota" placeholder model across monitor views
...
纯配额模式的主模型存储值是占位符 "quota"(数据源是关联账号而非模型),
此前在管理列表主模型列、用户端监控卡片、用户端详情弹窗、运行结果弹窗
四处被当作真实模型名直接渲染,读起来像假模型。
新增 useChannelMonitorFormat.formatMonitorModel:占位符替换为本地化
「配额」标签(复用既有 monitorCommon.checkMode.quota,零新增 i18n 键),
quota_probe/probe 的真实模型名不受影响;纯匹配逻辑(如 15d/30d 可用率
按模型名回查 detail)仍用原始值。
问题定位备注:另一反馈「设置页看不到 channel_monitor_show_quota 开关」
经查为部署镜像过旧(开关随 #5761 于 08-18 合入,反馈环境容器构建于
08-15),上游代码中开关完整存在,更新镜像即可,无需改码。
2026-08-18 10:35:57 +00:00
Randark
c9effc4560
fix(frontend): monitor form check-mode restore, account unbinding and mode badge
...
审计 P2-7 三处前端收尾:
- 切离 antigravity 时对称还原 check_mode:antigravity 强制 quota,但反向
切走没有还原——编辑存量 antigravity 监控换平台后停留在 quota,目标平台
未必支持。现切走时还原为 probe 并清掉占位模型 'quota'(回填值),否则
probe 模式拿 'quota' 当探活模型(与离开 grok 清 DEFAULT_GROK_MODEL
同一先例)。
- update 切回 probe 显式发 account_id=0:后端语义 0=解绑、null=不动,
此前 probe 模式 payload 带 null,存量关联永远清不掉。仅 update——
create 发 0 会落 &0 触发外键违约(API 类型注释同步写明)。
- 管理列表 provider 徽章旁并列 check_mode 徽章(checkModeLabel 此前
定义了却无处使用):quota 系=蓝、probe=中性灰,三种模式一眼可分;
i18n 复用既有 monitorCommon.checkMode.*,零新增键。
2026-08-18 10:28:28 +00:00
Wesley Liddick
e0c48a19ed
Merge pull request #5761 from Randark-JMT/feat/channel-monitor-quota-mode
...
feat(monitor): 渠道监控配额模式——关联账号展示用量/余额(重启 #5387)
2026-08-18 17:36:27 +08:00
Randark
5cbd0c96a2
fix(monitor-ui): 关联账号选择器改服务端搜索+回填,OpenAI 配额模式加消耗提示
...
- 选择器改为 /admin/accounts?platform=&search= 服务端搜索(50 条/页,
300ms 防抖由 Select 承担),AbortController + 序列守卫防乱序覆盖
- 已绑定账号不在结果页时用 getById 回填为固定选项,删除「不在列表即
静默清空绑定」;绑定仅在显式切换 provider 或账号确实失效时清空(带提示)
- OpenAI 平台配额模式显示 Codex 探测额度消耗提示;checkModeQuotaHint
修正为「不发送探活请求」不再宣称「不产生 LLM 请求」
- grok spec 补齐缺失的 accounts mock;新增账号选择器 7 用例
(加载/防抖搜索/回填保留/失效清空/提示门控/固定选项/切平台清空)
2026-08-18 09:14:44 +00:00
Randark
03c3f3b6fc
feat(ui): Select 组件支持可选远程搜索(remote/loading props + search 事件)
...
- remote 模式始终显示搜索框且不做本地过滤,输入 300ms 防抖后 emit('search')
- 关闭/卸载时取消排队中的防抖定时器,避免尾随空 query
- loading 时空态显示加载文案;未设 remote 时行为不变(回归用例保障)
2026-08-18 09:14:31 +00:00
shaw
8f6f459835
fix(channels): support kimi/zhipu/deepseek platforms in channel pricing
...
- ChannelsView platformOrder now includes the three CN provider
platforms so channel pricing can be configured for them; composite
group expansion/attachment stays limited to the five main platforms
(matches backend isConcreteRequestPlatform and composite-routes
target_platform validation)
- SyncPricingModels maps kimi->moonshot, zhipu->zhipu,
deepseek->deepseek; also fixes gemini mapping to "google" which
matched zero catalog entries (provider key is "gemini")
- Add CN platform colors to channel pricing model tag classes
2026-08-18 17:12:01 +08:00
Wesley Liddick
685455985b
Merge pull request #5765 from IanShaw027/feat/grok-from-personal-main
...
feat(grok): 用量条补齐本站 24h/7d/30d 聚合,并隐藏空预付与 0 限额已用
2026-08-18 15:35:42 +08:00
IanShaw027
fd42d3722d
fix: hide Grok prepaid and used/limit when they are empty
...
Skip the prepaid chip without a positive balance, and skip used/limit when monthly limit is 0.
2026-08-18 14:55:08 +08:00