# 更新日志

## 1.1.0 - 2026-11-02

- 修复：运行面板读取状态时，结果会作为 `/maa status` 的一行回显出现在对话里；DSH 每轮对话结束后重新挂载面板，又会再读一次，一晚上能积累十几条（[#1](https://github.com/nhyo/dsh-maa-cli/issues/1)）。现在插件在 DSH 网页服务器上注册只读频道 `/dsh-maa-cli`，按 DSH Connection RPC 协议应答，面板用 DSH 自带的 `connection.rpc.call` 读取状态，鉴权由 DSH 负责，不再写进对话记录；没有该频道的环境（headless、旧版 DSH）才退回 `/maa status`，且每个会话只读一次。插件状态目录下的 `status-rpc.json` 记录本次主机是否注册成功，便于排查。
- 任务运行中，运行面板每 3 秒自动刷新状态，不用再手动点「刷新状态」。
- 修复：`runs.json` 读取失败（Windows 上替换文件时的瞬时错误、读到写了一半的文件）会被当成「没有任何运行记录」，导致运行中的面板被直接关闭，随后的写入还可能把这份空记录写回磁盘。现在瞬时错误会重试，读不出来就报错而不是返回空记录，写入只做原子替换（失败时有限次重试）。
- 修复：运行面板收到一次不包含当前任务的状态时，不再关闭仍在运行的任务面板。
- 修复：任务结束时读取 MaaCore 最后几条回调的 flush 在已有读取进行中时会提前返回，可能漏掉任务链完成、公招结果等最后的回调。现在 flush 会等进行中的读取结束后再完整读一次。
- 文档：README 精简为对比表、快速开始和功能要点，详细说明拆分到 `docs/`；新增英文版 README（`README.en.md`）与 `docs/en/` 英文文档。

## 1.0.9 - 2026-11-02

- 后台任务完成、失败或因停止条件触发而停止时弹出桌面通知（Windows 通知中心 / macOS / notify-send）；手动点「停止任务」不通知。设 `DSH_MAA_NOTIFY=0` 关闭。
- 运行面板在 MaaCore 自动更新、首次安装运行时、以及 MaaCore 启动并连接模拟器期间显示对应提示，不再只显示「暂无可靠进度回调」。
- 抄作业失败时自动换作业：准备时挑选最多 3 份同关、Box 不缺干员的备用作业，作业本身失败才换（模拟器断连、手动停止不算），每次换作业弹出桌面通知并记录在运行面板和恢复历史中；`autoSwitch: false` 可关闭。
- 修复：点「停止任务」后，运行面板已显示「已停止」，上方却仍显示「最近一次 MAA 执行：执行中」，要等下一次读取状态才更新。

## 1.0.8 - 2026-11-01

### 新增：刷理智、公招、基建排班与抄作业

- 理智作战支持掉落目标 `drops`：任一物品达到数量即停。物品名按当前 MAA 的 `item_index.json` 换算成 ID，未知名称直接拒绝；`/maa fight` 面板新增「掉落目标」输入（`固源岩组=3；装置=2`），掉落目标只对当次有效，不写入面板记忆。只给掉落目标时次数以 100 为上限。
- `剿灭` / `剿灭作战` 映射为 MaaCore 的 `Annihilation`；关卡名允许 `@`。插件不会声称本周剿灭是否已打满。
- 新增 `maa_stage_schedule`：按服务器日（04:00 为界）列出今天开放 / 未开放的资源本与芯片本。开放日取自游戏 `zone_table.json` 的 `weeklyAdditionInfo`，关卡分区取自游戏 `stage_table.json`（MAA `stages.json` 不含分区）。准备计划时，今天未开放的周常关卡会在摘要中提示。
- 公招运行时解析 `RecruitTagsDetected` / `RecruitSpecialTag` / `RecruitResult` 回调，5★/6★ 组合与稀有 Tag 写入 `runs.json`，并在运行面板和执行结果中提醒；高星不会被自动确认。
- 新增 `maa_prepare_infrast`：把自然语言排班编译成 MAA 自定义排班（Infrast mode 10000）。干员名用 `battle_data.json` 校验，未知、重复或超员的安排列入“未执行”；有 Box 缓存时提示尚未拥有的干员。支持保存、列出、删除、复用排班（`infrast-plans.json`）。会明确说明 MAA 不切换生产线。
- 新增 `maa_copilot`：按关卡搜索 MAA 作业站，按 Box 缓存标注缺少或练度不足的干员（含 2 技能需精一、3 技能需精二）并排序；准备作业后通过 Copilot / SSSCopilot 执行，默认不使用理智药。
- 插件生成的排班 / 作业文件只在确认后写入 maa-cli 配置目录的 `dsh-strategies/`，执行结束后删除；计划只保存占位标记，不能指向磁盘上的任意文件。面板记忆不会保存这些临时文件；执行前若残留找不到文件的占位标记会直接拒绝启动。

### 新增：养成规划

- `maa_goal_manager` 支持精英化 / 等级、技能 1–7、专精 1–3、模组 1–3，并可用 `operators[]` 一次规划多名干员，缺口汇总后统一规划。技能、专精、模组的当前等级不在 Box 扫描中，必须由用户提供，缺失时请求输入而不是当作 0。
- 模组目标检查游戏数据中的解锁条件（如精二 60 级）。
- 刷图规划优先调用企鹅物流 ArkPlanner 做多材料联合优化（已包含加工站合成），不可用时回退到单材料最低期望理智选关并标注“未联合优化”；仍然一次只执行一个批次，随后重扫仓库。
- `expandSynthesis` 可选把紫色及以上材料按加工站配方展开到蓝色材料为止，展开前扣除库存，单独列出加工站龙门币。
- 新增只读的 `estimate`，回答“仓库够不够 / 还缺什么”，不创建目标。
- 培养数据缓存升级到 v4（新增技能 / 专精 / 模组消耗与解锁条件、加工站配方、周常开放日与关卡分区），旧缓存会自动重新下载；之后使用 ETag / Last-Modified 条件请求，未变化的文件返回 304 时不重复下载。新增数据源单独失败时只禁用对应功能并沿用旧缓存。

### 变更

- 代理倍率一律交给 MaaCore 自动分组（`series: 0`），只需提供总次数；`/maa fight` 面板移除倍率选项（MaaCore 只接受 -1～6，此前次数 7～10 会传入超范围的倍率）。
- 公招默认招募 4 次、自动确认 3★/4★（与 MAA 图形界面一致），5★/6★ 组合跳过并留给玩家；计划摘要按实际参数说明。

### 修复

- 公招从不真正招募：MaaCore 的 `confirm` 为空表示只识别，此前默认就是空列表且次数为 0。旧版本面板记住的这组默认值读取时会被忽略。
- 自然语言计划被面板记忆覆盖：模型准备的计划（作战、公招、排班、作业、肉鸽策略、备注）不再套用 `panel-memory.json`，面板显示与执行的都是计划本身；`/maa` 零模型面板仍会记住设置。
- 多步骤计划（如“基建换班 + 公招”）以及没有参数面板的任务（Copilot）不出现确认按钮：现在显示只读的步骤列表并可确认。
- 运行进度对非肉鸽任务不再显示“局数 / 楼层”。

### 修复：确认面板与运行面板的停止、最小化、关闭与状态统一

- 修复运行面板「停止任务」按钮消失/失效：`runs.json` 中尚未请求停止的记录 `stopRequestedAt` 为 `null`，旧代码用 `Number.isFinite(Number(null))` 判断，结果所有执行中的记录都被报告为「正在停止」，面板读到状态后停止按钮立即变成禁用的「正在停止…」；同一判断还让 `markRunStopping` 永远不写入停止时间。现改为只有真实时间戳才算已请求停止。
- 修复确认后面板误判任务已结束：后台执行时 `/maa confirm` 成功表示任务**已开始**，旧客户端却把它当作「执行完成」并丢弃运行绑定，只在下一次状态读取成功后才可能恢复按钮；从工具卡确认时确认条甚至从不显示运行面板。现在客户端按会话维护唯一的运行绑定（`launching → running → stopping → finished`，以及只读的 `observer`），工具卡与确认条共用，主机 `/maa status` 作为权威来源进行对账。
- 最小化不再卸载面板：确认面板、运行面板和执行记录共用同一个外壳，「−」只隐藏主体，「+」始终在标题栏；参数、备注、备注预览、确认/停止状态与运行时输入框在折叠/展开、重新挂载、切换会话后保持不变。最小化状态按确认码持久化，未确认的参数草稿按确认码保存，刷新页面后可恢复，待确认计划也会从主机重新拉起。
- 确认面板「×」：服务端删除计划并写入确认码失效记录（`pending-plans.json` 的 `closed`，保留 24 小时），`/maa confirm`、模型确认、重启 DSH 后再确认都会返回「已被取消，已永久失效」；被替换或过期的确认码同样记录原因。取消与确认同队列串行，二者并发时只有一个成功；确认先成功时取消会明确说明并让面板切到运行面板。取消目标工作流计划时同步把工作流和目标标为已取消。
- 运行面板「×」改为真正停止任务：弹窗确认后发送 `/maa stop <RUN-…>`，等进程树退出、记录和临时资源结算完成才显示已停止；30 秒内无法确认退出时清除「停止中」标记、把原因写入 `stopError` 并保留可重试的停止按钮。
- `/maa stop [RUN-… | MAA-… | WFR-…]` 只停止本会话的任务：其他会话的运行只读显示，停止和运行时条件请求会被拒绝；另一个仍在运行的 DSH 进程持有的任务不会被碰。确认仍在启动阶段（尚未生成运行记录）时停止会中止启动，确认码同时失效，不会再启动 MAA。
- 运行记录新增 `ownerPid`、`pid`、`stopError`；残留进程清理（包括 DSH 重启审计）改为按记录的进程号定位进程树，并要求被终止进程的命令行包含 `dsh-generated`，进程号被复用时也不会误杀；没有进程号的旧记录才回退到旧的名称匹配。运行记录的终态以第一次结算为准，迟到的结算不会覆盖「已停止」。
- `startMaa` 的终止句柄返回可等待的结果（`taskkill` 退出码），重复停止会重新下发终止；非 Windows 开发环境使用独立进程组终止整棵进程树，使生命周期测试可以在 CI 中运行。Windows 行为不变。
- 新增 `test/panel-lifecycle.test.mjs`（真实主机进程 + 假 maa-cli 进程树 + 真实客户端模块的交互测试）、`test/confirmation-lifecycle.test.mjs`，并扩充 `test/run-state.test.mjs`。

### 内部

- 抽出共用的 `src/agent/http.js`（`fetchJson`：超时、大小上限、POST、条件请求）与 `state.js` 的 `writeJsonAtomically`。
- 新增 `test/feature-tools.test.mjs`、基于真实游戏表摘录的周常开放日测试（`test/fixtures/weekly-stages.json`）及相关单元测试。

## 1.0.5 / 1.0.6 - 2026-10-30

- 将 `panel-memory.json` 升级为全命令参数记忆：`startup` / `fight` / `infrast` / `recruit` / `mall` / `award` / `rouge` / `reclamation` / `update` 按面板独立保存上次成功确认的完整参数；打开、未确认编辑和取消不写入正式记忆。
- 肉鸽继续按主题独立保存，并记住最后使用的主题；面板内切换主题会立即恢复对应历史配置，切回时也保留当次未确认草稿的刷取次数和高级设置。
- 参数预填统一为“本次显式参数 > 历史配置 > MAA 动态合法默认值”；MAA 资源更新后按字段校验历史值，只回退失效字段。兼容读取旧版肉鸽记忆，下次确认时原子迁移到新格式。
- 新增 Recovery Manager：综合 MaaCore 结构化回调、退出状态、日志文本、ADB 探测和 TaskChain 检查点分类故障，并明确标记“已确认”或“推测”；恢复过程、次数、诊断和人工介入状态进入 `runs.json` 与运行面板。
- 自动恢复严格限制为尚无完成检查点的 `Depot` / `OperBox` 只读扫描，最多重试 2 次并按 1 秒 / 3 秒退避；作战、公招、商店、领奖、基建及未知状态不会自动重放。
- 新增官方 `DepotInfo(done=true)` 回调解析和 `depot.json` 原子缓存，结合当前 MAA 的 `item_index.json` 查询真实库存；缺失或损坏的库存不会被当成 0。
- 新增 Goal Manager：支持日常、干员培养、材料和自定义目标，保存事实、缺口、资源预算、完成条件及当前工作流；默认禁止源石和理智药，已知关卡的理智消耗会按预算阻断。
- 新增自动更新的培养与掉率数据层：每 24 小时从 ArknightsGamedata 提取干员晋升/升级消耗，从企鹅物流统计 Matrix API 更新分服务器掉率；缓存记录来源 URL、响应版本信息与 SHA-256，失败时保留上次验证缓存。
- 干员培养目标现在可根据 OperBox 当前精英化/等级、Depot 库存、目标精英化/等级自动计算经验、龙门币和晋升材料缺口；掉率规划只使用当前 MAA 关卡与至少 100 次样本，执行一个批次后强制重扫仓库并暂停重新规划。
- `maa_goal_manager` 新增 `data_status` / `refresh_data`，可查看或强制刷新培养与掉率缓存；在线数据不随 npm 包分发。
- 新增 Workflow Manager：支持预设保存、编辑、删除、重新加载和复用，多步骤顺序执行、人工决策分支、检查点、进度、取消和重启审计；MAA 能力签名变化后旧预设必须重新检查。
- 目标/预设仍走原有一次性确认码；每一步只在 MAA 明确报告完成且结构化结果成功后继续。步骤执行完成后目标标记为等待游戏状态验证，不把进程结束或任务链完成冒充游戏目标达成。
- DSH 异常退出后将运行中的工作流置为 `needs_review`、当前步骤置为 `uncertain`，清理插件自己的残留进程并恢复策略覆盖，不自动重放完成状态不明的步骤。
- 新增 `maa_depot`、`maa_goal_manager`、`maa_workflow_manager`，确认面板显示目标事实、步骤数和完成条件，运行面板显示恢复状态、确认/推测故障与人工介入提示。

## 1.0.3 - 2026-10-30

- 新增运行时自然语言指令闭环：后台任务执行期间可立即停止、在当前肉鸽探索结算后停止、再完成 N 局后停止、在精确的 `StageDreadfulFoe-<层数>` Boss 预进入回调时停止、取消尚未触发的停止条件，以及查询可靠进度；指令在 `runs.json` 中区分已接收、已应用、已触发、已完成、进程结束但条件未触发、已取消和未支持。
- 运行控制面板改为单一自然语言输入框，不再为各项指令放置专用按钮；局数只认 `RoguelikeSettlement`，楼层/关卡只展示 MaaCore 明确报告的值，无法判断时不猜测。
- 支持任务运行后追加“这次 Boss 关前停止”，遇到下一条精确的 `StageDreadfulFoe` 节点回调时触发，不依赖高级设置；“再打 N 局就停”以当前结算数为基准，不受初始 `starts_count=9999` 影响。
- 当前独立 `maa-cli run` 不暴露 MaaCore Assistant 句柄和 task id，运行中招募偏好会明确返回“未应用”且不写长期策略记忆，不再把修改配置文件误报为当前任务已生效。
- 新增 `maa_prepare_note`：备注先由模型识别主语（干员/藏品/事件名，纠正错别字）和动词（抓、拿、捞、取、选、选择、招募统一按「招募」理解），改写成规范化备注后再交给本地规则重新解析和编译；本地能完整识别的备注仍走零模型快速路径。
- `/maa confirm` 与直接执行的 `/maa fight` 等命令改为**后台执行**：确认后立刻返回「已开始执行（RUN-…）」，MAA 进程由插件自己持有直到退出，不再被命令平面的 5 分钟超时中断（此前任务常常在跑到第 5 分钟时被杀，日志停在扫描中途且 `runs.json` 记为「已停止」）。生命周期、资源覆盖恢复和运行记录仍在子进程退出时结算，`/maa stop` 依然能终止整棵进程树。
- 备注切换肉鸽主题时重建任务链（不再克隆旧主题的文档），计划摘要与 `/maa peek` 返回的 `theme` 同步为新主题，确认面板标题与实际执行的主题一致；确认时改主题也会写进计划摘要。
- 备注预览只显示「已收到并解析【备注】」，不再在面板里堆叠生效项、变更项、无法执行项等解析细节（这些仍保留在命令结果里供模型和服务端使用）。
- 肉鸽难度新增 `MAX`（面板显示「MAX（当前最高）」）并作为新面板默认值：确认时按当前主题可用难度解析为最大值，显式选择数字时仍以数字为准；文档里已有的难度值在面板上原样回显。
- 新增按主题保存的确认面板记忆（`panel-memory.json`）：确认成功后记住该主题的模式、难度、刷取次数、分队、职业组、开局干员与高级开关，下次打开同一主题的计划时默认回填；过期的或当前能力不再接受的旧值会自动跳过。
- 策略记忆管理面板不再挂在界面上（模型通过 `/maa strategies` 等命令在后台读写）；客户端备注预览与计划卡片的策略记忆区域一并移除。
- 肉鸽「堵门 / 守蓝门」直接写入 `roguelike/<主题>/autopilot/<关卡>.json` 的原生 `deploy_plan`，按文件内的 `stage_name` 定位关卡（文件名可以不同），保留 `replacement_home`、`blacklist_location` 等既有字段，与 MAA 自带自动战斗共用同一机制，不再只支持独立 Copilot 作业。
- 肉鸽战术不写关卡名时，默认对该主题全部原生 autopilot 关卡生效：用 `Arknights-Tile-Pos` 地图数据按干员位置（地面 / 高台）自动选点并计算朝向；显式点名关卡时仍使用用户给出的坐标和朝向。
- 招募表的覆盖文件写入「内置分组 + 新增分组」的完整副本，因为 MaaCore 会整体替换该主题的招募表，只写增量会让其余内置分组在本次运行中失效。
- 招募表缺少干员时，先用 `battle_data.json` 校验干员真实存在，再新增最小合法分组（`skill`、`is_key`、`is_start`、`recruit_priority`、`promote_priority`）；查不到干员则明确拒绝，不伪造分组或条目。
- 点名了关卡却缺部署坐标、朝向，或主题没有该关卡 autopilot 配置时，逐条列入“无法执行”并给出原因；全关卡模式里没有地图数据的关卡也会列出名字，不再静默丢弃意图。
- 备注解析支持 `并 / 并且` 复合意图、`[x,y]` 坐标里的逗号（不再被当作分句），以及「他 / 她 / 它」指代同句最近招募的干员。
- 补充端到端测试：备注 → 本地解析 → 编译并实际写入 MAA 读取的 `recruitment.json` 与 autopilot 文件，随后恢复原始资源。
- 确认面板在确认后切换为运行控制面板：显示执行中 / 已完成 / 失败 / 已停止、耗时与退出码，使用单一自然语言输入框追加指令，刷新页面或重启 DSH 后仍能从 `runs.json` 恢复最近一次执行记录。
- 新增持久化执行台账 `runs.json`（主机状态目录）与 `/maa status` 只读命令；`/maa stop` 现在也能结束 DSH 重启后残留的执行记录，并清理命令行含 `dsh-generated` 的 `maa` / `maa-cli` 进程（不会动 MAA GUI、模拟器和无关进程）。
- 有任务正在执行时，`maa_prepare_plan` / `maa_prepare_strategy` / `maa_prepare_note` 与 `/maa confirm` 都会明确拒绝新计划或新任务（跨 DSH 会话共享），避免抢占模拟器和覆盖临时资源。
- `maa_prepare_strategy` 与 `maa_prepare_note` 也注册了工具卡视图，确认面板不再只由命令行事件拉起。
- 面板不再轮询命令平面：DSH 会把每次 `/maa …` 调用回显到对话里，所以运行中的计时改成本地 ticker；状态、进度和停止命令只在用户点击对应按钮时调用。确认时记录的开始时间存在 `localStorage`，刷新后仍能显示控制面板。
- 修复备注「有特种券则优先招募结城理，用来堵门」把「来」当成干员名的解析缺陷：虚词会回退到最近招募的干员，没有可回退的干员时整句交回模型，而不是把语气词写进资源。

## 1.0.1 - 2026-10-30

- 修复确认面板把未选择的可选字段提交为空字符串、触发“分队长度必须在 1–32 之间”的问题；下拉显示值与提交值统一，主动清空的可选字段会从最终 MaaCore 参数中删除，必填字段缺失仍在消费确认码前明确拒绝。
- 新增统一的 MAA 动态能力发现层：从当前 maa-cli/MaaCore 版本及资源目录发现肉鸽主题、模式、难度、分队、职业组、干员、分组、藏品、事件和关卡；UI、服务端校验与策略编译共用同一描述。
- 能力描述以资源和版本签名缓存；上游资源变化后打开的确认面板会自动刷新。发现失败保留最近一次验证数据，缺少机器可读元数据的参数集中由版本适配层维护，不猜测未知能力。
- 黑流树海在兼容 MaaCore 上支持难度 0–16；新增/移除的资源主题与任务图模式无需修改浏览器硬编码即可同步出现或消失。
- 任务面板备注接入完整策略闭环：本地解析可执行意图，语义匹配已启用记忆，编译并显示实际资源/作业变更；备注存在时，未完成预览不能确认执行。
- 本地规则无法确定语义时，只把未识别部分交给模型重新准备策略；已支持的同义表达和多意图组合不消耗额外模型调用。
- 新增策略记忆面板，可按分类查看每类最近 20 条策略，并启用、禁用或删除；禁用条目不会参与后续合并。
- 合并优先级为本次明确指令覆盖已保存偏好；肉鸽记忆按主题/模式过滤，地图动作按关卡过滤，堵门/守蓝门仍跨地图复用并重新计算坐标。
- MAA 结果反馈区分“已验证完成”“明确失败”和“进程结束但游戏结果未验证”，不再把策略编译或 maa-cli 退出码 0 当作游戏执行成功。
- 备注预览保留原确认码与 30 分钟有效期；参数改变后旧预览失效，必须按实际参数重新编译。

## 1.0.0 - 2026-10-30

- 新增 `maa_prepare_strategy`：将自由表达的肉鸽招募/精二/阵容完备/购物/事件偏好编译为 MAA 原生策略，将部署顺序、位置、方向和击杀数触发动作编译为 Copilot 作业。
- 事件偏好会按肉鸽模式选择 MAA 对应的事件策略文件（例如投资模式的 `deposit.json`），不再固定覆盖默认事件表。
- 新增“堵门 / 守蓝门”地图策略：读取 MAA `Arknights-Tile-Pos`，只在能解析入口到蓝门路径时生成部署位置，否则安全回退。
- 肉鸽资源采用 maa-cli 官方 `--user-resource` 执行期事务覆盖：MAA 原始资源只读，用户资源先备份、结束后恢复，异常中断后可在下一次策略执行前恢复；不存在的干员、分组、藏品、事件或地图不会被编造。
- 新增原子化策略记忆：只持久化通过 MAA 校验的最小语义单元，按战斗、肉鸽、生息演算及自动扩展类别保存，每类最多保留最近 20 条。
- 策略复用使用规范化语义键并检查 maa-cli/MaaCore、主题、地图与参数兼容性；堵门/守蓝门跨地图各只占一条记忆，坐标仍按当前地图重新编译。
- 计划摘要会报告策略记忆的复用、新增和拒绝数量；冲突或不可执行要求不会写入记忆，记忆故障不会阻断原有确认执行流程。

### 0.9.3

- **修复插件整体加载失败**：`maa_training_advice` 的返回 schema 用了 DSH 不支持的 `anyOf`，DSH 校验工具参数时抛 `JsonSchemaError`，导致 `apply()` 回滚、6 个工具与 `/maa` 命令全部消失（日志表现为 `1 entry did not activate`）。改用等价的 `oneOf`（`integer` 与 `null` 互斥），其余关键字保持在 DSH 支持的子集内（`type` / `oneOf` / `properties` / `required` / `additionalProperties` / `items` / `enum` / `const`）。
- **新增只读工具**：`maa_operator_box`（读 Box 缓存）、`maa_training_advice`（按社区杯级 + MAA 职业数据出培养建议，蒂蒂固定置顶）。
- **自动肉鸽参数面板**：计划含 `Roguelike` 步骤时，确认条与工具卡都出现参数区，默认值取 MAA 官方推荐开局并标 `【推荐】`；切换主题会重置该主题的推荐值与专属开关。
- **统一零模型任务面板**：`startup` / `fight` / `infrast` / `recruit` / `mall` / `award` / `rouge` / `reclamation` / `update` 都只准备计划并弹出对应参数面板，点确认才执行；字段定义与服务端校验共用同一来源。
- **主题补齐到 6 个并按上线顺序排列**（傀影 → 水月 → 萨米 → 萨卡兹 → 界园 → 黑流树海），新增 `BlackFlow` 主题与它专属的「刷襁褓动物(30001)」模式。
- **面板全部改为选项**：除刷取次数外一律下拉，开关只有「是 / 否」；刷取次数默认 **9999**、可手输（只收数字，1–99999）。
- **备注栏**：确认按钮旁「30 分钟内有效」右侧新增备注输入，随确认命令以 URL 编码的 `note=` 回到 DSH，由 DSH 自行理解（不保证执行），绝不写入 MaaCore 任务 JSON。
- **高级功能按主题 / 模式收敛**：只渲染并只发送当前配置下 MAA 真正会用的开关（密文板/坍缩范式仅萨米，骰子刷商店仅水月，投资后购物仅模式 1，凹精二直升仅模式 4，月度/深入调查仅 6/7，常乐节点仅 20001，最终 Boss 停止仅非傀影）。
- **面板形状**：右上角改为 `−` / `×` 图标（最小化 / 删除当前卡片），宽度与圆角对齐 DSH 输入框卡片令牌（`--dsh-composer-card-max-width`、`--dsw-radius-panel`）。
- 校验范围同步放宽：肉鸽次数上限 20 → 99999，模式枚举纳入 6/7/10001/20001/30001。
