【背景】 使用 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 / #382 的边界怎么划分最合适。 欢迎任何意见,设计可随反馈调整。
Activity