Repository navigation
v0.5.0
新增
- 侧栏数据提醒(导航角标):侧栏对应项上显示待办计数角标——凭证需重登/耗尽、未恢复告警、上次失败任务、异常上游源、待激活账号、本人将到期 Key、模型目录陈旧共 7 项,不点进去也能看到。单个聚合端点
GET /api/nav-badges一次返回、侧栏 60s 轮询;按角色裁剪 payload(缺失 = 无权看),只数「待办」而非页面总数(如告警只数resolved_at IS NULL)。 - CodeArts 双账本:CodeArts 内置模型走积分账、福利模型走每日 token 池,两本账并行且健康度只看主账;
credit_events.ledger区分两本账,管理台按账本分开读。福利模型带benefit标记(渠道徽章打「福」标),Model.benefit不能与credit_rate == 0混用。 - 运维告警迟滞 + 恢复通知 + 人工处置:
ALERT_FOR_TICKS/ALERT_CLEAR_TICKS进入/恢复迟滞;恢复时写resolved_at并外推status="resolved"webhook;告警页每行未恢复告警带「标记恢复」按钮(POST /api/alerts/{id}/resolve,admin + CSRF + 审计),用于规则已下线 / 误报等后台无法自动判定的情况。 - 上游状态页聚合:把各模型 / 网关提供方的官方状态页(OpenCode Zen、Kilo、DeepSeek、Together、Moonshot、MiniMax、OpenAI、Anthropic)归一化后并排展示,回答「这个报错是上游整体挂了还是本服务的凭证 / 额度问题」。8 源 / 4 种解析器;只做解释、不参与选号 / 熔断;快照只存内存、重启归零。
- 凭证级限额护栏:保留积分 / 每日 token / 每日 credit / 按模型四个可选护栏,判定在选号前完成,触顶的凭证不再参与对话流量。
- 凭证在途上限:单账号并发请求数上限,占满的号不再参与选号,避免把单账号打进上游限流 / 封号。
- 凭证运维标签:每条凭证可贴任意个标签,作为列表筛选的第四维(搜索 × 渠道 × 状态 × 标签)。标签只用于筛选与展示,不参与选号。
- 凭证批量运维:
POST /api/credentials/batch(probe / toggle / checkin / revive,一次最多 200 条),凭证页多选操作条;逐条隔离执行,toggle/revive落一条汇总审计。 - 后台任务手动触发:管理台「任务与配置」页每个任务卡片带「立即运行」(
POST /api/tasks/{key}/run,admin + CSRF),绕过时点窗口但绕过不了开关。 - Prometheus
/metrics:默认开、不鉴权,零依赖 text 格式;禁高基数标签。 - 统计增强:自定义时间范围(
since/until半开区间)、分组表延迟统计(均值 + P95)、明细钻取 + CSV 导出(公式注入防护)。 - 多模态图片输入归一化:三个出口(chat / Responses / Anthropic)统一归一到 chat
image_url,出站零改动(实测七渠道出站已原样透传)。 - reasoning 档位映射 + 出站剥离思考:
FORCE_DISABLE_THINKING/REASONING_EFFORT_MAP/ANTHROPIC_THINKING_EFFORTS三项热更,默认全关——上游接受性未逐一实测,只给机制不给策略。 - 窄屏表格转卡片:列多的表格(凭证 / 明细 / 模型列表等)在 <768px 由「一行 = 一张卡」呈现,DOM 不变、读屏语义与宽屏一致。
- CC Switch 一键导入深链:API Key 管理页创建后生成
ccswitch://导入深链(claude / codex / opencode 三个目标)。 - 列表统一分页:六个扁平列表接到同一套控件(页码文案、20/50/100、上下页),后端
LIMIT/OFFSET+total;用量明细保留游标分页。 - 部署模板:frp 反向隧道(frpc / frps)+ nginx 模板 + launchd / systemd / newsyslog 单元,token 走独立 600 权限文件、配置不含机器特定值。
变更
- Docker healthcheck 跟随
PORT:此前写死 8000,非默认端口的docker run部署永远不 healthy。 - compose 透传
TZ与extra_hosts:容器内代理跑在宿主时须写host.docker.internal。 - Playground 布局重构:模型选择器独立面板,请求 / 响应并排。
- 表格列按相关性重排:身份 → 状态 → 核心量化指标 → 次要元数据 → 时间 → 操作。
/healthz语义:ready=0时返回 503unavailable(此前恒 200);/health仍是纯存活探针恒 200。容器 healthcheck 应指/health。- pacer 定值间隔向上抖动 25%:避免多实例 / 多账号在同一时刻撞上游。
- CC Switch 行内导入 + 明细合并列 + 命中率列。
修复
- 运维告警恢复不再永久卡住:
AlertTask启动时从库里未恢复的行重建「告警中」集合(此前该状态纯进程内,重启后历史告警永远等不到resolve());resolve()改为标记该(rule, scope)全部未恢复行(同一次故障的「提醒」行一起收尾,否则角标数resolved_at IS NULL永远清不干净)。 - 会话 Cookie 的
Secure按请求实际协议动态判定:同一实例 LAN(http) 与隧道(https) 双入口下,写死任一侧都会打断另一侧。 - 流内业务错误暴露真实分类:CodeArts 业务错误内嵌在 HTTP 200 的 SSE 里,此前被分类器兜底成
upstream_protocol,真实类型(额度耗尽 / 请求无效 / 渠道错误)全被吞掉。 - Atom 解析改用
defusedxml(bandit B314)。 - 全量安全审查修复批次:
/authorize回调绑定改判loginTraceID(撤掉 Origin/Referer 同源启发式)、告警 webhook SSRF 校验、上游错误体有界读取、出站文案不回上游原文 / 内部 URL、SQLite 写事务显式BEGIN IMMEDIATE、迁移版本护栏、CSP 收紧等。 - 前端:checkbox 触摸目标从 16px 扩到约 40×32;表单 label 与控件关联;dev proxy 不再吞
/api-keys;StatsPage补上引用的Pagination组件。
升级
docker compose pull && docker compose up -d镜像:ghcr.io/robbsluo/coding2api:v0.5.0(同时更新 :latest)。
升级注意:/healthz 在凭证池耗尽时改为返回 503;请确认容器 healthcheck 指向 /health(恒 200)。数据库 schema 从 v18 升至 v25(新增 credential_limits 表与索引;credentials 的 CodeArts 积分列 / tags、alert_events.resolved_at、credit_events.ledger、usage_events.request_id 等列),启动时自动幂等迁移(补列 + 建索引 + 删遗留表),老库直接升级无需手工操作。升级后必须重启后端。