fix: 应用 xhigh 代码评审的跨端修复
ci / server (push) Failing after 13s
ci / design-tokens (push) Failing after 11s

来自 xhigh code review 的正确性/健壮性修复,覆盖全部五端:
- server:鉴权 fail-closed、计量交叉校验与配额扣穿处理、WS 网关并发与关闭顺序、
  billing 行锁、redis Lua 过期与设备槽刷新、config 解析
- desktop:会话 epoch 防串话、WS 重连与 401 处理、api 客户端复用、统一 usePoll 轮询
- android:握手时序、请求头封装、账户状态派生、按需重组
- ios:finalize 宽限、串行采集、错误文案服务端优先、删除死代码 CommitController

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-06-13 11:50:08 +08:00
parent 50b49f3cbe
commit b5ab92a57e
42 changed files with 2125 additions and 469 deletions
+6
View File
@@ -95,6 +95,12 @@ type ConsumeResult struct {
TrialUsedToday int
}
// Exhausted 本次扣减后余额与今日试用是否均已耗尽(扣穿)。
// 网关据此在句间下发 QUOTA_EXCEEDED 并优雅结束会话("扣穿当句不掐断")。
func (r ConsumeResult) Exhausted() bool {
return r.BalanceSeconds <= 0 && r.TrialUsedToday >= protocol.TrialDailySeconds
}
// Consume 扣减 seconds 秒(识别中每 2s 增量调用 + 会话结束补差)。
func (m *Manager) Consume(ctx context.Context, uid string, seconds int) (ConsumeResult, error) {
if err := m.ensureBalanceLoaded(ctx, uid); err != nil {