IanShaw027
68faeac837
fix(grok): restore base URL resolution and operator settings wiring
...
Honor account GetGrokBaseURLOr policy for official vs custom endpoints,
and wire settings resolution used by responses/chat URL builders.
2026-08-08 01:07:19 +08:00
IanShaw027
6d632eec45
fix(grok): tighten OAuth SSO flow and hide password login
...
Require oauth state/redirect consistency, fail closed on missing proxy,
and remove password login from create/reauth UI (admin-only password path stays off by default).
2026-08-08 01:07:19 +08:00
IanShaw027
d0767eab9d
feat(grok): admin account test modes with real media preview
...
Add mode-first connectivity probes for text/image/video/search/tts/stt/realtime,
standalone voice and web-search paths, media upload options, and in-browser
image/audio/video preview (including ZDR-safe b64 images and edit validation).
2026-08-08 01:07:08 +08:00
IanShaw027
72a56f862c
fix(grok): free 500k + 对齐 personal-dev tier/时间窗
...
- soft-gate 默认额度 500k tokens / 滚动 24h / 95%(门禁 475k)
- soft-gate 仅显式 free OAuth(subscription_tier/plan_type == free)
- isKnownGrokFreeAccount 按 personal-dev(usage% 为 paid 证据、仅 credentials tier)
- 调度阈值仅 grok_sched header quota 窗,去掉 billing 7d/30d 候选
2026-08-07 18:52:53 +08:00
IanShaw027
8f5657b91c
fix(grok): 收窄 free 推断 — 仅月度探测,勿把周度 OK 当 free
...
- isKnownGrokFreeAccount 不再因 weekly StatusOK 推断 free
- 修复周度付费快照被 media soft-block 的回归
- 外部 OpenAI token 对比测试在 401 时 skip
2026-08-07 18:34:55 +08:00
IanShaw027
3a415e6d04
fix(grok): 五轮评审 — messages SearchCount 与 OpenAI free-gate
...
- /v1/messages Grok:SSE/buffered 路径累计 SearchCount
- OpenAI 遗留 sticky/list 应用 free soft-gate(advanced 关闭时)
- 单测:OpenAI getSchedulableAccount free-gate + messages 计数器
2026-08-07 18:23:28 +08:00
IanShaw027
3ae94df72b
fix(grok): 四轮评审 — SearchCount 接线与 sticky free-gate
...
- forwardGrokResponses 传播 stream/JSON 的 SearchCount 与 ImageCount
- Chat 桥接 SSE/buffered 对 Grok 累计 SearchCount(附加费)
- getSchedulableAccount sticky 应用 free soft-gate
- 无 call_id 时用合成 key 去重,避免 SSE ~2× 超扣
- 单测:JSON/SSE 接线、sticky free-gate、no-id dedup
2026-08-07 18:15:08 +08:00
IanShaw027
d7c9e7167b
fix(grok): 三轮评审 — 流式 Search 去重与调度/计费加固
...
- P0: 直播 SSE SearchCount 跨事件 call_id 去重,避免 ~2× 附加费
- SearchCount/Audio/WebSearchCalls 走 mandatory usage task
- web_search:uuid 等 forced request_id 优先于 client/local
- Sanitize 始终剥离 cookie;ApplyOAuth 清 grok_needs_reauth_at
- free 判定:paid 证据压过陈旧 free 凭据
- Gateway 列表应用 free soft-gate;token/body-read 可 failover
- web_search 重试支持 WaitPlan 获取;周 PeriodEnd 不再回填月 end
2026-08-07 17:58:23 +08:00
IanShaw027
245d069602
fix(grok): 二轮评审残留 — Search 叠加计费与 fail-closed 安全
...
- SearchCost 叠加 token(openai/gateway),未定价 warn
- Token URL 校验失败回落 DefaultTokenURL,禁止 Effective 旁路
- free 判定收窄 paidSignal(仅 plan/月额度),usage% 不否决 free
- web_search: mandatory 计费、uuid request_id、上游 failover 重选账号
- 调度阈值:7d/30d 不跨期 until + 48h stale 可选跳过
- SanitizeStoredCredentials 接入 create/update/bulk/SSO/ApplyOAuth
- ApplyOAuth 成功清除 grok_needs_reauth;SSO 允许 header_override_enabled
- VideoModelPrices 视为媒体定价完整;realtime 正常关闭仍计费
2026-08-07 17:40:21 +08:00
IanShaw027
ccf7ba3ba7
fix(grok): P2 分层清理、主对话 SearchCount 与调度 7d/30d
...
- DoGrokNativeResponsesJSON 去 gin.Context,UA 固定 CLI 身份
- GrokOAuthService 去掉 redis 直依赖,session store 由 wire 注入
- 主对话/流式响应统计 web_search_call/x_search/tool_search 写入 SearchCount
- Grok 调度阈值候选并入官方 weekly/monthly billing %
2026-08-07 17:21:01 +08:00
IanShaw027
7a81468282
fix(grok): 按 review 优先级修复计费漏扣、auth 投影与 free 门禁
...
P0: content 与 status 共用 claim 计费;稳定 grok-video request_id;
auth 热路径投影 video_model_prices。
P1: claim 失败释放可重试;视频绑定 TTL≥24h;SSO 凭据白名单与脱敏;
Token URL 校验;free soft-gate 默认 1M 并统一 free 判定;
Voice 预检余额;STT 抗低报;Realtime 失败不计费;search 未定价告警。
2026-08-07 17:15:43 +08:00
IanShaw027
93a04567d4
style(grok): 清理搜索处理器末尾空行
2026-08-07 17:03:48 +08:00
IanShaw027
918b121878
docs(grok): 补充 personal-dev 能力覆盖矩阵
2026-08-07 17:02:33 +08:00
IanShaw027
be5e4226d4
test(grok): 补齐模型映射与调度设置契约
2026-08-07 17:01:20 +08:00
IanShaw027
5bb206ee99
test(grok): 补齐音频与搜索计价接口契约
2026-08-07 16:56:53 +08:00
IanShaw027
856a96a217
test(grok): 对齐配额模型同步与 CLI 身份断言
2026-08-07 16:55:36 +08:00
IanShaw027
7b93f4a689
docs(grok): 更新完整整合审查与排除清单
2026-08-07 16:47:25 +08:00
IanShaw027
61b975b5dd
test(grok): 对齐跨客户端映射与路由审计契约
2026-08-07 16:45:25 +08:00
IanShaw027
769f1c2def
fix(grok): 防止 OAuth 客户端缺失导致崩溃
2026-08-07 16:38:26 +08:00
IanShaw027
21d0905c78
fix(grok): 按官方 status=done + video.url 计费并对齐字段
...
官方完成响应为 status=done、video.url、video.duration、顶层 model;
分辨率仅在创建请求中声明,status 无此字段故回退 create 快照/默认 480p。
拒绝 completed 等非官方状态与仅 URL 的宽松判定。
2026-08-07 16:36:15 +08:00
IanShaw027
962da308cc
fix(grok): 限制导入探测队列并去重任务
2026-08-07 16:36:12 +08:00
IanShaw027
a3aae134ee
fix(grok): 加固 SSO 凭证与 Cookie 隔离
2026-08-07 16:34:47 +08:00
IanShaw027
e549931cf4
fix(grok): 避免刷新时无效清理重认证标记
2026-08-07 16:31:12 +08:00
IanShaw027
5199a610af
test(grok): 恢复媒体资格失败关闭契约
2026-08-07 16:30:55 +08:00
IanShaw027
b59a3df5b5
fix(grok): 视频在 status 返回 video.url 后再按上游参数计费
...
创建/generations 仅绑定账号并缓存 create-time 定价快照;轮询到
video.url / download_url 等成功 URL 时一次性扣费。时长/分辨率/模型
优先取上游 status 字段,缺失则回退创建快照,再套默认 8s/480p。
Redis SetNX + request_id 去重,避免重复轮询双扣。
2026-08-07 16:29:57 +08:00
IanShaw027
25d2b03e90
fix(grok): 加固 OAuth 会话共享与一次性消费
2026-08-07 16:29:48 +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
f35e967516
fix payment qr fallback and admin guidance
2026-04-22 07:33:14 -07:00
IanShaw027
5551349349
fix: clean up profile auth binding notes
2026-04-22 19:11:51 +08:00
IanShaw027
22385be515
Merge remote-tracking branch 'upstream/main' into rebuild/auth-identity-foundation
...
# Conflicts:
# backend/internal/service/openai_images.go
2026-04-22 18:13:05 +08:00
IanShaw027
6b19490393
fix(ci): align openai account tests and remove dead wxpay const
2026-04-22 18:09:46 +08:00
IanShaw027
9de7a72cce
fix(upgrade): close payment and oidc compatibility gaps
2026-04-22 18:01:51 +08:00
IanShaw027
66b3acc274
fix(lint): remove embedded response selectors in openai images
2026-04-22 17:51:45 +08:00
IanShaw027
3419cb0112
fix(admin): preserve legacy oidc security write defaults
2026-04-22 17:22:24 +08:00
IanShaw027
a94d89efa7
fix(unit): restore secure oidc defaults and wechat alias reuse
2026-04-22 16:51:23 +08:00
IanShaw027
66680a3056
fix(test): update wechat bind start path assertion
2026-04-22 16:44:25 +08:00
IanShaw027
ad4600964e
fix(ci): clean up lint and dead code
2026-04-22 16:38:36 +08:00
IanShaw027
82259d1380
fix(auth): preserve resolved token version on oauth login
2026-04-22 16:01:25 +08:00
IanShaw027
ca4e38aa01
fix(profile): stabilize binding compatibility and frontend checks
2026-04-22 14:57:47 +08:00
IanShaw027
1aab084ecb
fix(payment): restore upgrade-safe payment flows
2026-04-22 14:57:16 +08:00
IanShaw027
36aed35957
fix(auth): harden oauth identity upgrade paths
2026-04-22 14:56:56 +08:00
IanShaw027
3d29f7c2fa
fix(auth): invalidate access tokens on session revoke
2026-04-22 13:30:34 +08:00
IanShaw027
01a991f56f
fix(test): restore identity repo integration imports
2026-04-22 13:22:33 +08:00
IanShaw027
6696e61c7b
fix(frontend): preserve callback recovery state
2026-04-22 13:19:41 +08:00
IanShaw027
81c827ee51
fix(profile): stabilize identity binding management
2026-04-22 13:19:28 +08:00
IanShaw027
83cad63ce0
fix(auth): harden oauth callback adoption flows
2026-04-22 13:19:20 +08:00
IanShaw027
06136af805
fix(upgrade): preserve legacy auth and payment compatibility
2026-04-22 13:18:10 +08:00
IanShaw027
29caf85104
fix(frontend): stabilize wechat payment resume recovery
2026-04-22 12:30:24 +08:00
IanShaw027
d6a04bb772
fix(payment): support source routing and compatible resume signing
2026-04-22 12:30:17 +08:00
IanShaw027
b2e0712190
fix(settings): preserve oauth config compatibility on upgrade
2026-04-22 12:30:07 +08:00
IanShaw027
767f2f2dfe
fix(auth): harden pending oauth and backend mode flows
2026-04-22 12:30:00 +08:00
IanShaw027
1ffebbb568
fix(migrations): keep auth identity and payment upgrades safe
2026-04-22 12:29:52 +08:00
IanShaw027
be9df2bea7
fix(auth): scrub legacy pending oauth tokens on upgrade
2026-04-22 11:29:05 +08:00
IanShaw027
9d5e9bbc18
fix(payment): respect configured visible method source
2026-04-22 11:28:58 +08:00
IanShaw027
454873221c
test(auth): strengthen pending oauth legacy token assertions
2026-04-22 11:18:09 +08:00
IanShaw027
18481a100b
fix(migrations): defer online ddl follow-ups safely
2026-04-22 11:17:45 +08:00
IanShaw027
ca1f30a911
fix(auth): harden pending oauth session consumption
2026-04-22 11:17:38 +08:00
IanShaw027
84628108fc
fix(auth): preserve backward-compatible oauth defaults
2026-04-22 11:17:32 +08:00
IanShaw027
dd314c41e3
fix(payment): restore public resume and result flows
2026-04-22 11:17:23 +08:00
IanShaw027
c229f33e9e
fix(review): harden payment, oauth, and migration paths
2026-04-22 10:26:22 +08:00
IanShaw027
7fbd5177c2
fix(ci): make legacy migration cleanup resilient
2026-04-22 09:15:39 +08:00
IanShaw027
fdf72eb511
fix(ci): repair integration repository tests
2026-04-22 02:42:43 +08:00
IanShaw027
b13e34f831
fix(ci): align auth and payment verification tests
2026-04-22 02:32:53 +08:00
IanShaw027
6d51834a95
refactor(profile): simplify profile page flow
2026-04-22 01:48:09 +08:00
IanShaw027
863258d782
Always show register password hint
2026-04-21 10:15:57 -07:00
IanShaw027
287f2f56d6
Show embedded avatar preview after selection
2026-04-21 10:13:28 -07:00
IanShaw027
525a320424
Fix user profile writes on postgres conflicts
2026-04-21 10:13:28 -07:00
IanShaw027
0f4a8d7be8
feat(profile): redesign profile center layout
2026-04-22 00:54:38 +08:00
IanShaw027
d4c0a99114
feat(auth): support unbinding third-party identities
2026-04-22 00:54:38 +08:00
IanShaw027
89d09838d8
Return bad request for invalid announcements
2026-04-21 09:53:15 -07:00