diff --git a/docs/superpowers/plans/2026-08-28-strong-custom-ui-extraction-roadmap.md b/docs/superpowers/plans/2026-08-28-strong-custom-ui-extraction-roadmap.md index 448f912..6536381 100644 --- a/docs/superpowers/plans/2026-08-28-strong-custom-ui-extraction-roadmap.md +++ b/docs/superpowers/plans/2026-08-28-strong-custom-ui-extraction-roadmap.md @@ -13,47 +13,40 @@ | MonitorDetailPanel | Monitor 右侧详情 | | DockStatusDialog | 机巢状态弹窗 | | CommandProgressFloat | 指令进度浮层 | -| MonitorDeviceList | 左侧设备列表(含冒烟中) | +| MonitorDeviceList | 左侧设备列表 | +| MonitorMapChrome | 地图工具条/图例/比例尺 | +| useCommandProgress | 指令进度状态机 composable | ## 进行中 / 待做(严格按序) ### P0 Monitor 收口 -1. **[当前后下一项] MonitorMapChrome** — `map-toolbar` + `map-legend` + `map-scale` 展示组件 - - 逻辑(`mapMode` / `fitAll` / `mapScaleText`)留页面 - - 产出:`MonitorMapChrome.vue` - -2. **Monitor 命令逻辑 composable(可选,体量大再做)** - - `useCommandProgress`:`commandProgress` 状态机 / 轮询 / `runCommand` - - 仅当 MonitorView script 仍 >800 行且命令块边界清晰时执行 - -3. **Monitor 直播 composable(可选)** - - `useMonitorLive`:join/leave/heartbeat/fullscreen - - 同 2 的门槛 +1. **[当前冒烟后] useMonitorLive(可选)** — join/leave/heartbeat;`MonitorView` script 仍偏大时做 +2. P0 收口后更新本表「已完成」 ### P1 其它大页薄抽离 -4. **DeviceDetail 状态/环境卡**(若模板仍大段内联 article) -5. **Tasks 非编辑器区**剩余列表壳(RouteCard 已完成则跳过) -6. **Login 非验证码区**若仍有可抽展示块再评估 +3. **DeviceDetail 状态/环境卡**(若模板仍大段内联 article) +4. **Tasks 非编辑器区**剩余列表壳(RouteCard 已完成则跳过) +5. **Login 非验证码区**若仍有可抽展示块再评估 ### P2 明确不做 -- 地图引擎 / MapLayer 重写 -- 航线编辑器 / `route-planner-map` -- 飞行控制条视觉改 TDesign -- `prototype.css` 大搬迁 +- 地图引擎 / MapLayer 重写 +- 航线编辑器 / `route-planner-map` +- 飞行控制条视觉改 TDesign +- `prototype.css` 大搬迁 - 全量单测套件 ## 每项标准流程(不询问) -1. 写/更新该项 design + plan(可短) -2. 实现 + 精确 git add + 中文 commit -3. 浏览器冒烟(后端不可用则 API mock) +1. 写/更新该项 design + plan(可短) +2. 实现 + 精确 git add + 中文 commit +3. 浏览器冒烟(后端不可用则 API mock) 4. **立刻开始下一项**,仅在全部 P0/P1 清空或 BLOCKED 时向用户汇报 ## 完成定义 -- Monitor 模板仅剩 layout 壳 + 组件拼装 + 1 个 dialog 级入口 -- 无「等用户说继续」的停顿 +- Monitor 模板仅剩 layout 壳 + 组件拼装 + 1 个 dialog 级入口 +- 无「等用户说继续」的停顿 - 每次用户会话恢复:读本文件,从第一个未勾选项继续 diff --git a/docs/superpowers/plans/2026-08-28-use-command-progress.md b/docs/superpowers/plans/2026-08-28-use-command-progress.md new file mode 100644 index 0000000..0bb3abf --- /dev/null +++ b/docs/superpowers/plans/2026-08-28-use-command-progress.md @@ -0,0 +1,22 @@ +# useCommandProgress Implementation Plan + +> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. + +**Goal:** 抽出指令进度状态机与 `runCommand`。 + +**Spec:** `docs/superpowers/specs/2026-08-28-use-command-progress-design.md` + +### Task 1 + +- Create `src/composables/useCommandProgress.js` +- Modify `MonitorView.vue`:删除 `COMMAND_STATUS`~`runCommand` 块,改为 composable 调用;保留 Escape/`onUnmounted` 对 `closeCommandProgress` 的调用;`detailActions.statusText` 仍绑 `buttonStatusText` + +Commit: `refactor: 抽取 useCommandProgress 指令进度逻辑` + +### Task 2 冒烟(Main) + +evaluate `startCommandProgress` 或打开浮层;关闭有效。 + +## 约束 + +不改后台;精确 git add;中文 commit;跳过全量测试 diff --git a/docs/superpowers/specs/2026-08-28-use-command-progress-design.md b/docs/superpowers/specs/2026-08-28-use-command-progress-design.md new file mode 100644 index 0000000..9abba0f --- /dev/null +++ b/docs/superpowers/specs/2026-08-28-use-command-progress-design.md @@ -0,0 +1,42 @@ +# useCommandProgress 设计 + +## 目标 + +把 MonitorView 内指令进度状态机(`COMMAND_STATUS`、`commandProgress`、轮询、起停、按钮状态文案)抽到 `src/composables/useCommandProgress.js`。`runCommand` 一并迁入,依赖通过参数注入。 + +## 非目标 + +- 不改 CommandProgressFloat UI +- 不改 devices.sendCommand API +- 不抽直播 / 地图 + +## 契约 + +```js +const { + commandProgress, + commandProgressTerminalLabel, + buttonStatusText, + startCommandProgress, + closeCommandProgress, + runCommand, +} = useCommandProgress({ + getRecord: () => record.value, + ui, + devices, + reload, +}) +``` + +- Escape / `onUnmounted` 仍由页面调 `closeCommandProgress` +- 轮询仍用 `request` + `urls.COMMAND` + +## 实现 + +1. 新建 composable;MonitorView 删除内联命令块并接线 +2. Commit: `refactor: 抽取 useCommandProgress 指令进度逻辑` +3. 冒烟:打开浮层(evaluate start 或 mock 下发)+ 关闭 + +## 约束 + +精确 git add;中文 commit;新建 `src/composables/`