2 Commits
Author SHA1 Message Date
Sakurasan b2e500ff51 feat: 金额 decimal 精确计费、failover 按失败类型封顶、渠道小时桶预聚合、分层守护测试
- 计费:19 个金额字段 float64→decimal.Decimal,DB 列保持 numeric(20,8) 零迁移;
  API 金额仍为 JSON number(MarshalJSONWithoutQuotes),前端零改动
- failover:保留时间预算,新增 OT_PROXY_FAILOVER_CAPS_NET/SERVER/RATE/QUOTA
  按失败类型封顶换渠道次数(429/配额类瞬时失败时间预算形同虚设)
- 预聚合:新增 usage_channel_hourlies(schema v10),记账事务内同步 upsert,
  长窗口渠道统计走桶不再扫明细,spent_last_30d 改扫 usage_daily,v10 一次性回填幂等
- 守护:internal/arch_test.go 用 go/parser 强制分层依赖(fail-closed)
2026-11-09 00:41:48 +08:00
Sakurasan 7dce4cadde test: keys CRUD 的 HTTP 级测试
覆盖完整生命周期(明文一次性返回、列表不泄漏明文、改配额、删除)
与用户隔离(跨用户 patch/delete 返回 404 不泄漏存在性)。
SessionAuth 以桩替换,专注 handler 语义。
2026-10-30 01:42:23 +08:00