Wesley Liddick
32e4de7942
Merge pull request #5231 from fengshao1227/fix/upstream-dial-timeout
...
fix(upstream): set explicit TCP dial timeout on upstream transports
2026-08-07 16:24:53 +08:00
wucm667
9b54b46b06
fix(admin): enable image generation permission for Composite groups
...
- Add 'composite' to imagePricingPlatforms set in groupsImagePricing.ts
- Allow Composite groups to toggle allow_image_generation in admin UI
- Backend already supports allow_image_generation field for all platforms
- Add test case to verify Composite platform is included
Fixes #5369
2026-08-07 16:22:37 +08:00
Wesley Liddick
8f55e0a7cd
Merge pull request #5267 from wucm667/fix/issue-5264-model-plaza-composite
...
fix(model-plaza): show Composite group models
2026-08-07 16:17:52 +08:00
Wesley Liddick
5ec11885d1
Merge pull request #5307 from lenzhang/fix/ws-prewarm-continuation
...
fix(ws): allow Codex prewarm continuation
2026-08-07 16:15:11 +08:00
Wesley Liddick
c8af48d769
Merge pull request #5315 from wucm667/fix/issue-5312-ops-custom-error-range
...
fix(ops): preserve custom range in error lists
2026-08-07 16:15:00 +08:00
Wesley Liddick
dce0f6b4e3
Merge pull request #5337 from wucm667/fix/issue-5331-oauth-count-tokens-fallback
...
fix: avoid cooling OAuth accounts for HTML count token errors
2026-08-07 16:14:48 +08:00
Wesley Liddick
22ef761c27
Merge pull request #5309 from wucm667/fix/issue-5308-antigravity-gemini36
...
fix(antigravity): support Gemini 3.6 Flash models
2026-08-07 16:14:37 +08:00
Wesley Liddick
865002fd2c
Merge pull request #5317 from wucm667/fix/issue-5314-grok-video-task-id
...
fix(grok): bind video owners for task_id receipts
2026-08-07 16:14:25 +08:00
IanShaw027
a061a758f4
fix(grok): 修复调度阈值初始化与刷新测试回归
2026-08-07 16:10:31 +08:00
IanShaw027
2a256150f7
docs: 补充 channel-monitor v2 摘要并忽略根目录 .vite 缓存
...
落地运维向 CHANNEL_MONITOR_V2_DESIGN.md(完整设计稿仍在 gitignore 的 docs/* 中);
将仓库根 .vite/ 加入忽略,避免 vitest 结果误提交。
2026-08-07 15:56:49 +08:00
IanShaw027
79df1647d4
feat(grok): 账单绝对金额、调度阈值 UI、搜索/Voice 计费与 /v1/web_search
...
- BillingSummary 输出 prepaid/monthly_used/on_demand 绝对金额,并映射官方 7d/30d 进度条
- 账号编辑页支持 credentials.account_scheduling_threshold 覆盖;Settings 文案细化
- groups.search_price_per_1k + 管理端/缓存全链路;SearchCount/AudioUsage 请求级计费
- Voice TTS/STT/Realtime 成功路径 RecordUsage;独立 /v1/web_search 原生 Grok 搜索
2026-08-07 15:52:55 +08:00
IanShaw027
99ad01f6de
feat(grok): 网关 Voice TTS/STT/Realtime 与分组音频定价
...
- 中继 xAI Voice HTTP(/tts /stt /custom-voices)与 Realtime WS(/realtime)
仅 Grok 分组可用;账号选调度沿用 chat 能力,不依赖创作中心
- Voice URL 固定走 api.x.ai(CLI proxy base 自动回落)
- 分组级 audio_realtime / TTS / STT 单价:schema + migration 218 +
admin API + GroupsView 表单与 i18n(无创作中心 UI)
2026-08-07 15:08:39 +08:00
IanShaw027
a397724f69
refactor(grok): 移除未接入的免费恢复状态
2026-08-07 15:03:04 +08:00
IanShaw027
2e20ea4c87
fix(grok): 保持模型级免费额度隔离
2026-08-07 14:55:41 +08:00
IanShaw027
7c62382d04
feat(grok): 吸收调度阈值、配额解析、批量用量与 CLI 身份
...
从 personal-dev 取优并接线到 feat/grok-complete-integration:
- 调度阈值:grok_sched_* 写入、ApplyAccountSchedulingThreshold、
account_scheduling_thresholds 设置与 Settings UI、网关过滤
- 配额头:x-rate-limit 别名、相对秒 reset、tier/entitlement 扩展
- 批量 usage:GetUsageBatch + POST /usage/batch + AccountsView 合并加载
- CLI 身份:xai.cli_identity 统一 pin/UA;service 层 applyGrokCLIHeaders
与 transport 最终改写对齐;media eligibility 模块落地
- UsageCell:月度 cents→USD 与 30d 进度条展示
保留既有 failure taxonomy / sticky / free recovery 等 HEAD cools。
2026-08-07 14:53:18 +08:00
IanShaw027
0316994c52
fix(grok): 修正授权与模型映射边界
2026-08-07 14:50:02 +08:00
IanShaw027
2c8836e40b
fix(grok): 完善按模型视频价格矩阵
2026-08-07 14:42:00 +08:00
IanShaw027
eb2e73df3d
feat(grok): 补齐管理端模型映射设置
2026-08-07 14:22:15 +08:00
IanShaw027
ff4bb3bd2c
fix(grok): 修复授权文案的i18n占位符
2026-08-07 14:18:06 +08:00
IanShaw027
d0930c4bdb
fix(grok): 完善密码与SSO授权能力控制
2026-08-07 14:13:07 +08:00
IanShaw027
2413441b5f
feat(grok): P2 模型额度软封、spending reauth、粘连分轨与观测模型
...
- free-usage 带模型名时按账号+模型软封,其它模型仍可调度
- spending-limit 使用 24h 冷却并标记 needs_reauth(extra + SetError)
- sticky affinity 与 upstream prompt_cache_key 分轨,按 model 隔离粘连
- free-usage recovery 轻量提示窗口;配额查询后异步同步 /v1/models 快照
2026-08-07 14:06:21 +08:00
IanShaw027
cda6de44da
fix(grok): 运行时映射设置即时失效账号缓存
2026-08-07 13:59:32 +08:00
IanShaw027
ec9e733606
feat(grok): stream idle 换号、team+model 冷却与 RT 刷新打散
...
- Grok 流默认启用上游读空闲超时,首包前返回可 failover 错误并短冷却
- 同 team_id 账号在 429/free-usage 后对同模型共享进程内冷却,粘连与选号均过滤
- TokenRefreshService 已覆盖 Grok;NeedsRefresh 增加按账号稳定 jitter 防 stampede
2026-08-07 13:56:38 +08:00
IanShaw027
dfca6246eb
refactor(grok): 将视频模型价纳入 Ent 持久化
2026-08-07 13:55:58 +08:00
IanShaw027
e12e0dc1a6
feat(grok): 对齐 free-usage/empty 失败分类与 sticky/ReAuth 体验
...
从 grokcli 吸收 body-first 失败分类(free-usage/empty/billing),
接到现有 temp_unsched 与 failover,保留 content-policy 与 pool_mode。
Grok 粘连/缓存在无显式 session 时可用 previous_response_id;
ReAuth 预填 email---- 并默认密码 tab(密码不落库)。
2026-08-07 13:47:09 +08:00
IanShaw027
9bc99e8b6e
fix(grok): 防止加权粘连回退绕过免费额度门禁
2026-08-07 13:44:56 +08:00
IanShaw027
e9aaa325fa
fix(grok): 让跨客户端消息映射服从配置开关
2026-08-07 13:43:02 +08:00
IanShaw027
43391de925
fix(grok): 打通按模型视频价格计费链路
2026-08-07 13:41:34 +08:00
IanShaw027
8989d25ed5
docs(grok): 记录 ReAuth 密码/SSO 入口
2026-08-07 13:23:03 +08:00
IanShaw027
91f5b00679
feat(grok): ReAuth 弹窗支持 SSO、密码与 RT 重新授权
...
管理端重新授权对 Grok 展示 SSO Cookie、邮箱密码与 RT 入口;
校验成功后对现有账号 applyOAuthCredentials,不走批量建号。
密码/SSO 仅用于授权 API,经 buildCredentials 写入 OAuth 凭据。
2026-08-07 13:23:03 +08:00
IanShaw027
48fc076ce1
docs(grok): 记录创建账号密码登录 UI 接入
2026-08-07 13:18:59 +08:00
IanShaw027
9b7ea3aabf
feat(grok): 创建账号流程接入邮箱密码登录
...
在 OAuth 授权流中增加 email----password 入口,CreateAccount 批量调用
authorizePassword 后经 buildCredentials 建号;密码与 raw SSO 不落库。
SSO Cookie 批量导入路径保持不变。
2026-08-07 13:18:59 +08:00
IanShaw027
be925d9a42
docs(grok): 更新完整整合进度(阶段 4–6)
2026-08-07 13:08:23 +08:00
IanShaw027
0a28c99aae
feat(grok): 管理端补齐 SSO/密码授权前端入口
...
新增 sso-token 与 password API 封装及 composable 方法;buildCredentials
丢弃 sso/password 字段且不再强行固定 base_url,交由系统 CLI/API 模式选择主机。
2026-08-07 13:08:22 +08:00
IanShaw027
451abc3aa5
feat(grok): 加固媒体计费门控并补齐分组按模型价输入
...
生成类媒体仅在存在真实 image/video 计费单元时写 usage,避免空结果误扣费。
Create/Update 分组输入支持 video_model_prices,与仓储 JSONB 字段打通。
本阶段不引入假 voice 路由(上游音频路径依赖更广协议层)。
2026-08-07 13:08:22 +08:00
IanShaw027
ba58e74b33
feat(grok): free 档本地用量软门禁与支付失败临时下线
...
对明确 free 的 OAuth 账号在调度路径应用可配置用量窗口门禁(统计失败 fail-open)。
402 payment required / 消费上限类 403 继续临时移出调度,管理端探测不走门禁。
2026-08-07 13:04:05 +08:00
IanShaw027
eb6c9663e7
feat(grok): 视频按模型族配置每秒单价,并补齐管理端映射设置
...
分组新增 video_model_prices(JSONB);计费优先模型×分辨率覆盖,
其次旧分辨率三列,最后官方按模型族默认价。同步补齐 admin 设置
中的 grok_default_text_model / 跨客户端映射开关,并保持
grok-imagine-video-1.5 请求模型 identity 不被静默改写。
2026-08-07 12:44:08 +08:00
IanShaw027
370bdcf695
feat(grok): 补齐密码登录与 SSO 校验,统一 OAuth 凭证形态
...
在 main 既有 SSO→Build 批量导入之上增加 sso-token 校验与账号密码授权。
密码仅用于换取 SSO 再转 Build OAuth,明文与 raw SSO 均不落库。
2026-08-07 12:38:49 +08:00
IanShaw027
74249b8fed
feat(grok): 模型目录与可配置映射,默认禁止跨厂商暗默改写
...
补齐 Grok/Imagine 官方模型与别名,并支持运行时默认文本模型。
默认 model_mapping 仅含 Grok 家族;新增 grok_default_text_model 与
grok_cross_client_model_map_enabled,仅在显式开启时将 gpt/claude/codex
等客户端模型名映射到默认文本模型,避免非 Grok 请求被静默改成 grok-4.5。
2026-08-07 12:31:14 +08:00
IanShaw027
4a9459d607
fix(channel-monitor-v2): 修复 CI gofmt 与 public settings 注入契约
...
对齐 gofmt,并在 PublicSettingsInjectionPayload 补齐 channel_monitor_mode,
使 SSR 注入字段与 dto.PublicSettings 一致,修复 schema drift 单测失败。
2026-08-07 12:02:27 +08:00
IanShaw027
59b5ac5458
feat(channel-monitor-v2): 渠道监控展示首次聚合进度
...
在用户端监控页显示 bootstrap 进度横幅与百分比,完成后自动消失;
bootstrap 期间加快轮询,空态文案与进度联动。
2026-08-07 11:53:25 +08:00
IanShaw027
d2d259cb7c
feat(channel-monitor-v2): 首次启用静默回填 90m–30d 并修正覆盖判定
...
从 watermark 恢复 backfill 游标,优先补齐 90m/24h/7d/30d 并在
coverage.bootstrap 暴露进度;coverage_start 跟回填游标而非最早错误时间;
历史起点已覆盖即 coverage_complete,不再因尾部 bucket 对齐滞后误报部分覆盖。
2026-08-07 11:53:25 +08:00
Rain
8ea68bd689
fix grok chat usage guard parity
2026-08-07 11:36:34 +08:00
IanShaw027
4245cb41f4
fix(channel-monitor-v2): 修复 CI golangci-lint 与 admin settings 契约测试
...
处理 rows.Close errcheck、gofmt、空 recover 分支 staticcheck,并同步
GET /api/v1/admin/settings 契约期望中的 mode 与 hide_throughput 字段。
2026-08-07 11:21:13 +08:00
IanShaw027
242f2b78c2
feat(channel-monitor-v2): 统一展示成功率、首 Token、每秒 Token 与缓存率
...
矩阵摘要列补齐每秒 Token(TPM÷60)与缓存率;KPI/模型表/用户榜同步为
成功率·首 Token·每秒 Token·缓存率,吞吐相关列仍受 hide_throughput 控制。
2026-08-07 11:10:55 +08:00
IanShaw027
d2d91ff9a8
feat(channel-monitor-v2): 补齐管理端配置、隐藏吞吐开关与测试
...
管理端 V2 配置面板与系统设置中的模式/隐藏 RPM·TPM 开关,纳入关键
vitest 与 Makefile 前端关键路径,覆盖门控与展示行为。
2026-08-07 11:05:32 +08:00
IanShaw027
d8c5024cee
feat(channel-monitor-v2): 实现用户端 Ops 风格被动监控界面
...
提供筛选/矩阵/趋势/排行等组件与 en/zh 文案,按 mode 切换 V1/V2 壳层,
并统一 useI18n 避免语言包未挂载时键路径裸露。
2026-08-07 11:05:32 +08:00
IanShaw027
a5beecb92a
feat(channel-monitor-v2): 接入模式开关、路由门控与依赖注入
...
注册 admin/user 路由与 feature/mode 守卫,串联 Wire DI 与设置读写,
公开 channel_monitor_mode 与 hide_throughput 等运行时标志。
2026-08-07 11:05:32 +08:00
IanShaw027
ead73264c7
feat(channel-monitor-v2): 实现被动聚合、分层保留与只读 API
...
基于 usage_logs/ops_error_logs 做分钟聚合与 5m/1h/12h/1d rollup,提供
snapshot/matrix/errors/users 等接口;V1 在 mode=v2 时停用主动探测,
并对用户端按需脱敏绝对量与 RPM/TPM。
2026-08-07 11:05:32 +08:00
IanShaw027
a58048ac32
feat(channel-monitor-v2): 添加被动监控聚合表与模式相关迁移
...
引入 V2 事实表/固定 rollup、模式设置、忽略错误类、健康阈值、权限与
默认忽略/缓存阈值,以及用户端隐藏吞吐速率的系统设置键。
2026-08-07 11:05:32 +08:00