Skip to content

[功能提案] 任务容器能力:任务可拖入容器条目、嵌套显示、子任务状态灯与轮换执行(计划在 fork 实现后提 PR) #389

Open

Description

@SrQingChen

【背景】
使用 MaaEnd(PI V2 项目)时,我发现按"星期"给多个任务排班的方式有几个痛点:操作复杂(每个任务各维护 7 天勾选)、资源分配不均衡(理智药集中使用时被"星期"绑定的任务产出偏多)、随材料与任务种类扩充必然排不开。因此我希望把"多个任务的执行"编排成容器:例如一个「循环作战协议」容器,把两个理智消耗任务纳入其中,按"理智累计消耗"或"日期"在任务间自动轮换,轮换依据不再依赖星期。(该机制相比按星期排班:产出比例可精确控制、操作更简单、更符合直觉——按"刷多少"而非"周几"思考。)而现有任务列表是扁平的(只能排序),无法表达"任务包含任务"的语义。

相关既有讨论:#191(定时策略/周周期结构重构)、#382(任务级周计划,在途)、#279(N 次执行)、#180 / #187(子选项渲染与折叠)、#286(排序 checkbox)。本提案是更进一步的"容器"能力,与 #382 不冲突:#382 解决"哪天跑",容器解决"跑哪一组、组内如何轮换"。

【提议能力(希望做成通用能力,而非 MaaEnd 专属)】

  1. 一种"容器任务"条目:把其他任务条目拖到其上 = 纳入(拖出 = 移除),子任务在容器内嵌套缩进显示;
  2. 容器内子任务有独立状态灯:灰(未轮到)/ 橙(即将执行或执行中)/ 绿(本轮已完成)/ 红(失败);状态跨重启保留——启动时按记录恢复"即将执行任务之上的已完成状态";
  3. 子任务只随容器执行,不再进入主队列独立运行;
  4. 容器配置沿用 PI option 渲染(下拉菜单、数字输入框等);
  5. 轮换与阈值等业务逻辑保留在各项目侧(例如 MaaEnd 用自定义逻辑实现),客户端负责"承载与展示"——这需要一条"项目侧状态 → 客户端展示"的通道(例如约定一个状态 JSON 文件路径;具体通道想请教你的偏好,避免做成项目专属耦合)。

【实现计划】
我计划先在 MXU 的 fork 中把上述能力做出来并自用验证,跑通后再提 PR 收编。发这个 issue 是想先确认:

  1. 方向是否可接受;(若可)是否希望做成通用能力而不是项目专属;
  2. "状态文件 → 状态灯"这类外部状态通道,你偏好什么形式;
  3. 与 建议:对于配置-定时策略相关的执行方案的一个调整 #191 / feat(tasks): 支持任务级周计划与跨天刷新 #382 的边界怎么划分最合适。
    欢迎任何意见,设计可随反馈调整。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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