Browse Source

docs: 更新路线图并增加 useCommandProgress 计划

同步 MonitorMapChrome/DeviceList 已完成状态。
main
xiaosi 3 weeks ago
parent
commit
00ae7f94a7
  1. 41
      docs/superpowers/plans/2026-08-28-strong-custom-ui-extraction-roadmap.md
  2. 22
      docs/superpowers/plans/2026-08-28-use-command-progress.md
  3. 42
      docs/superpowers/specs/2026-08-28-use-command-progress-design.md

41
docs/superpowers/plans/2026-08-28-strong-custom-ui-extraction-roadmap.md

@ -13,47 +13,40 @@
| MonitorDetailPanel | Monitor 右侧详情 | | MonitorDetailPanel | Monitor 右侧详情 |
| DockStatusDialog | 机巢状态弹窗 | | DockStatusDialog | 机巢状态弹窗 |
| CommandProgressFloat | 指令进度浮层 | | CommandProgressFloat | 指令进度浮层 |
| MonitorDeviceList | 左侧设备列表(含冒烟中) |
| MonitorDeviceList | 左侧设备列表 |
| MonitorMapChrome | 地图工具条/图例/比例尺 |
| useCommandProgress | 指令进度状态机 composable |
## 进行中 / 待做(严格按序) ## 进行中 / 待做(严格按序)
### P0 Monitor 收口 ### 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 其它大页薄抽离 ### P1 其它大页薄抽离
4. **DeviceDetail 状态/环境卡**(若模板仍大段内联 article)
5. **Tasks 非编辑器区**剩余列表壳(RouteCard 已完成则跳过)
6. **Login 非验证码区**若仍有可抽展示块再评估
3. **DeviceDetail 状态/环境卡**(若模板仍大段内联 article)
4. **Tasks 非编辑器区**剩余列表壳(RouteCard 已完成则跳过)
5. **Login 非验证码区**若仍有可抽展示块再评估
### P2 明确不做 ### 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 时向用户汇报 4. **立刻开始下一项**,仅在全部 P0/P1 清空或 BLOCKED 时向用户汇报
## 完成定义 ## 完成定义
- Monitor 模板仅剩 layout 壳 + 组件拼装 + 1 个 dialog 级入口
- 无「等用户说继续」的停顿
- Monitor 模板仅剩 layout 壳 + 组件拼装 + 1 个 dialog 级入口
- 无「等用户说继续」的停顿
- 每次用户会话恢复:读本文件,从第一个未勾选项继续 - 每次用户会话恢复:读本文件,从第一个未勾选项继续

22
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;跳过全量测试

42
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/`
Loading…
Cancel
Save