Skip to content

[Feature] GUI 后端 API 增强:停止条件、每轮结算数据、健康检查 #360

@yltx

Description

@yltx

背景

AutoWSGR-GUI 已实现任务队列调度、停止条件检查、每轮战斗详情展示等功能框架,但部分功能因后端 API 数据不完整而被禁用或无法完整工作。本 issue 汇总 GUI 所需的后端 API 增强。


1. 停止条件:可靠的每轮掉落计数(优先级:高)

前端现状:

  • 已实现 stopCondition 机制(loot_count_ge / ship_count_ge),用户可设置「刷到 N 个战利品/舰船时自动停止」
  • 但因 /api/game/context 返回的 dropped_ship_count / dropped_loot_count 不可靠,整个停止条件逻辑被注释禁用

需要后端做的:

前端已有的调用代码(当前被注释):

// Scheduler.ts
const resp = await this.api.gameContext();
if (data.dropped_loot_count >= cond.loot_count_ge) { /* 停止 */ }
if (data.dropped_ship_count >= cond.ship_count_ge) { /* 停止 */ }

2. 每轮战斗结算详情回传(优先级:低)

前端现状:

  • RoundResult 数据结构已定义 mvpgradeship_damage 字段
  • WebSocket task_completed 消息中的 result.details 目前这些字段为空

需要后端做的:

关于 grade(已解决):

战斗评价(SS/S/A/B/C/D)已通过前端解析后端 stderr 日志的 [Combat] 战果: MVP=0 评价=SS 节点: A 实现颜色高亮显示,无需后端 API 额外返回。若后端未来增加 grade 字段,前端可直接使用,但这不再是阻塞需求。


3. 健康检查端点(优先级:低)

前端现状:

  • WebSocket 断线有自动重连
  • 但无法检测后端进程卡死(如 OCR 卡住、模拟器无响应等场景)

需要后端做的:

  • 提供 GET /api/health 端点,返回后端存活状态
  • 可选:返回当前任务是否卡在某个步骤超过异常时长

关联

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions