Skip to content

[Feature]: Codex 账号巡检调度任务系统 #72

@seakee

Description

@seakee

使用场景

维护多个 Codex 账号 / auth files,需要定期检查账号额度、失效状态和可用性。目前只能手动进入 Codex Account Inspection 执行巡检,适合临时排查,但不适合长期运维。

希望 CPA-Manager 支持创建“Codex 巡检任务”,由服务端定时执行巡检,并在发现零额度、满额度、失效账号、探测失败等情况时,按配置自动处理、通知和记录审计日志。

当前痛点

现在已有 Codex Account Inspection 能力,但主要是手动巡检:

  • 需要人工打开页面并手动运行。
  • 无法配置多个巡检任务。
  • 无法按固定频率或每日多个时间点自动执行。
  • 巡检结果无法形成完整任务日志和历史审计。
  • 账号处理动作依赖人工判断和操作。
  • 零额度、满额度、失效账号无法按策略自动禁用、启用或删除。
  • 没有统一通知机制,异常情况不容易及时发现。
  • 服务重启后没有调度任务恢复机制。
  • 高风险操作缺少 dry-run、默认关闭、二次保护和审计闭环。

期望方案

新增“Codex 账号巡检任务”功能,基于现有 Codex Account Inspection 能力扩展,不替换现有手动巡检页面。

核心能力:

  • WebUI 支持创建、编辑、启用、停用、删除、手动运行巡检任务。
  • 支持多个任务。
  • 支持巡检范围:
    • 全部 Codex 账号
    • 指定 auth files
    • 指定 auth_index
    • 按元数据筛选
  • 支持执行方式:
    • 手动执行
    • 每 N 分钟 / 小时 / 天执行
    • 每日多个指定时间点执行,例如 09:00、13:00、23:30
  • 服务端调度器运行在 Usage Service 中,不依赖浏览器页面打开。
  • 服务重启后恢复调度任务。
  • 避免同一任务重复并发执行。
  • 支持 dry-run 模式。
  • 支持并发数、超时时间、失败重试次数。
  • 支持保存任务日志和日志保留策略。

自动处理策略:

  • 零额度账号:可配置不处理 / 禁用 / 启用。
  • 满额度账号:可配置不处理 / 禁用 / 启用。
  • 失效账号:可配置不处理 / 禁用 / 启用 / 删除。
  • 探测失败、网络异常、未知状态必须进入安全分支,只记录和通知,不自动删除。
  • 自动删除默认关闭。
  • 自动删除需要额外保护配置,例如 allowDelete、dry-run 预览、requireDeletePreview。
  • 所有自动操作必须记录审计信息,包括任务 ID、执行批次 ID、账号标识、操作前状态、操作后状态、触发原因、dry-run 状态、错误信息。

通知能力:

  • 支持 Telegram Bot。
  • 支持飞书机器人。
  • 支持企业微信机器人。
  • 支持自定义 Webhook。
  • 支持通知触发条件:
    • 每次巡检
    • 仅异常
    • 仅有自动操作
    • 仅有需要人工处理账号
  • 自定义 Webhook 使用统一 JSON payload,并允许配置 headers。
  • 通知失败不能导致巡检任务整体失败。

任务日志:

  • 持久化每次任务执行日志。
  • 记录任务 ID、run ID / batch ID、开始时间、结束时间、耗时、触发方式、调度快照、巡检结果汇总、账号结果、自动操作记录、通知结果、错误摘要。
  • 支持日志列表、分页、按任务筛选、按状态筛选、查看详情。
  • 支持日志清理策略,例如保留 7 / 30 / 90 天或最近 N 条。
  • 日志清理本身也需要最小审计记录。

UI 设计:

  • 新增“Codex 巡检任务”页面,按已提供 UI 原型实现。
  • 页面包含:
    • 顶部统计卡片
    • 任务列表
    • 任务详情侧栏
    • 新建 / 编辑任务向导
    • 手动运行按钮
    • 启用 / 停用按钮
    • 最近执行结果
    • 下次执行时间
    • 查看日志入口
    • 自动处理策略区域
    • 通知配置区域
  • 高风险选项需要明确提示,尤其是自动删除失效账号。
  • 保留现有 Codex Account Inspection 手动巡检、实时日志、清理建议能力。

需求优先级

很高:影响主要使用流程

补充信息

这是一个较大的功能变更,涉及 Usage Service、SQLite、Management API 代理、Codex Account Inspection、Auth Files、Quota 判断、Logs、前端页面和通知系统。

已有 UI 原型图,开发时需要按照原型实现“Codex 巡检任务”页面。

兼容性要求:

  • 不能破坏现有 Codex Account Inspection 手动巡检。
  • 不能破坏现有 Auth Files、Quota、Logs、配置编辑、请求监控和 Usage Service 能力。
  • 新增逻辑应复用现有 Codex 巡检 / quota 判断能力,避免复制一套难以维护的实现。

检查清单

  • 我已经搜索过现有 Issues,没有找到重复需求

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions