Repository navigation
v0.4.1
新增
- 管理台列表排序(Q75):所有列表(凭证 / 用户 / API Key / 审计 / 告警 / 模型目录 / 积分记录 / 账号切换 / 分组统计 / 请求明细)列头可点击排序。默认按请求数或时间降序,点一次用该列「首次点击方向」(数值列先降序、文本列先升序),再点在同一列升降序间切换,当前列以箭头 +
aria-sort标注。排序一律由后端完成,所有GET列表端点统一接受sort(白名单键)+order(asc/desc):未知键或非法方向回落端点默认、不报错,sort是白名单键而非 SQL 列名,注入面为零。 - 按凭证统计维度:分组统计新增「按凭证」,读明细表(
usage_events,覆盖最近 90 天),凭证列显示渠道 icon + 昵称(无昵称回落 ID 前 12 位);凭证昵称来自共享池,仅 admin/operator 可见。
修复
- 模型候选只信模型目录缓存列表(Q74):收窄渠道全不可用时直接 503,不再把请求逐个扇出到未登记该模型的渠道(此前会对 CodeBuddy 写下 6 小时起步的 (凭证, 模型) 负缓存,客户端拿到误导性的 400)。推翻 Q21 旧决策。
- OpenCode Zen 门禁伪工具调用(Q73-adjacent):门禁注入的空壳伪
bash/read命中时,改为改写为客户端同义工具(bash→shell/execute、read→read_file)原样透传,无同义工具才丢弃并记 WARNING;修复「模型老是自动结束回合」。 - Anthropic 出口缓存 token:
/v1/messages流式与非流式补cache_read_input_tokens(此前命中缓存的输入被吞,Claude Code 缓存统计恒 0)。 - Responses
text.format映射:/v1/responses的text.format正确映射到 chatresponse_format(json_schema按官方形状展开),此前整块丢弃导致结构化输出失效。 - 静态资源缓存:
index.html改no-cache每次回源,assets/*改immutable永久缓存——修复「重新构建后浏览器加载旧 bundle」(新前端 + 旧后端的假故障)。
前端与运维
- 模型列表页:客户端分页(20/50/100,默认 50)+ 容器内滚动 + 表头吸顶(3536 条从 7 万 DOM 节点降到千级、搜索按键从约 1s 降到 6–11ms);四项单价合并一列两行,上下文/输出与模态/能力列允许折行。
- 任务与配置页:tab 紧凑模式 + 名称精简,十几个 tab 不再撑爆一行。
scripts/rollup_hourly.py:历史分组数据一次性重算(默认预览、写库前自动备份、幂等)。
升级
docker compose pull && docker compose up -d无数据库 schema 变更(PRAGMA user_version 仍为 18)。镜像:ghcr.io/robbsluo/coding2api:v0.4.1(同时更新 :latest)。