跳转至

P3.A26.F1-runtime-target-frontend-ui · 资源监控 Dock 左移 + 改名 + RuntimeTarget 子面板 + 连接 native 选项 + 8 项 target 池

Worker:ClaudeA · 部门:前端 P1-xilink · 预计:2.0d · 优先级:P0 · 状态:dispatched · isolation:🧵 file(同 worktree 同 branch · 与 F3-2 文件正交并行)

🔍 触发与解锁链

触发:用户 2026-06-18 17:55 三连 stop F1-1+F2-1+F3-1 → 18:00 v5.2.4 同步完成 → 18:10 用户拍板双连 start P3.A26.F1 + start P3.A26.F3-meter-dock(F1-1 zombie 44c8f08 解锁本 fork)。

用户原话(verbatim · ADR-26 §1.1 第 1 轮 第 4 段 a/b/c):

a) "将 xilink 右侧的第一个 dock 指标监控挪到左侧 dock 改名为资源监控,并将 runtime target 挪到这个 dock 中,因为都属于硬件资源统计" b) "target 的类型应该有连接类型来决定,在左侧 dock 连接中底层 DSP 通信中添加一个 native 的选项,如果是 native 代表是 CPU 模式" c) "如果连接是 native 模式,那么资源监控的 target 就需要改为:CPU0 CPU1 CPU2 CPU3 VDSP0~VDSP3 · VDSP 表明是虚拟 DSP 模式 · 这种模式和 CPU 模式的区别就是 source 到底走的是 DSP 还是 CPU"

架构契约(ADR-26 §3.1 RuntimeTarget UI · 业务契约 5 必填段): - 契约 A · Dock 迁移:右侧"指标监控" Dock 整体迁移到左侧 + 改名"资源监控" + 加 RuntimeTarget 子面板(原数据源严格保留 · 不重写) - 契约 B · 连接 Dock native 选项:type ConnectionType = 'serial'|'tcp'|'usb'|'simulator'|'native'(追加 'native' · 中文标签"CPU 原生") - 契约 C · NativeSubKind 池:RuntimeKind=PcNative + 连接 native 时 target 池显示 8 项(CPU0-3 + VDSP0-3 · F1-1 后端 44c8f08 已注册) - 契约 D · 切换响应:< 200ms · UI 选 NativeSubKind → POST /api/runtime-target/active(F1-1 端点)→ 后端持久化到 workspace - 契约 E · DspHardware/PcSimulator 兼容:RuntimeKind 切换不破坏现有 target 池(DspHardware 显示真 DSP target / PcSimulator 显示 simulator slot) - 5 类失败回退(ADR-26 §3.1 ③):native 后端未响应→toast loading / VDSP 加载失败→自动切 CPU0+toast / 数据源迁移丢失→fallback 老指标 / 跨连接类型切换→提示重启 engine / 用户拖右(布局自由)→layout state ADR-15 持久化

解锁链(本任务 zombie 后): - ✅ F1-1+F1-2 关键路径完整(NativeSubKind 后端→前端 UI 闭环) - ⏳ F4-1 P_e2e.A26.F4-truth-e2e-meter-dual-link 部分解锁(还需 F3-2 zombie · 五齐后 ready · ClaudeC 1.5d → ADR-26 整体闭环 🏆)

任务定义(基于 ADR-26 §3.1 + §2.2 + §4.1 F1-2)

子任务 ① · grep 现有右侧"指标监控" Dock + 左侧"连接" Dock 真值(0.3d · Step 0)

Step 0 强制门槛 · ADR-26 §5 风险表第 2 行教训承接 · 必须 grep 定位文件名 + read 全文 + 评估迁移范围。

子任务 ② · 资源监控 Dock 创建(原右侧"指标监控"整体迁移)+ ADR-15 layout 兼容(0.5d)

新建 frontend_vue3/src/stages/xilink/drawers/ResourceMonitorDock.vue · 整体 move 原右侧"指标监控" drawer 内容 + 改名 · 不重写数据源 service。注册到左侧 LEFT_DOCK(append-only · 推测紧邻"连接 Dock")· ADR-15 layout state 持久化兼容。

子任务 ③ · ConnectionDock 加 native 选项 + 中文标签(0.3d)

ConnectionDock.vue 添加 native 选项(枚举追加 'native' · 中文"CPU 原生")· 选 native 触发 SetActive(PcNative + ActiveNativeSubKind=Cpu0 默认)。

子任务 ④ · useRuntimeTarget composable + 8 项 target 池下拉(0.5d)

新建或扩展 composables/useRuntimeTarget.ts: - getTargetPool(kind, subKind) 返回 8 项数组(PcNative+native)/ DSP/Simulator 现有 - 消费 F1-1 GET/POST API(stub fallback 若 F1-1 端点未联调) - 在 ResourceMonitorDock RuntimeTarget 子面板渲染下拉

子任务 ⑤ · 测试 + 浏览器实测 + 全测试基线零回归(0.4d)

vitest +6 case + playwright +2 case · vue-tsc + build 0 errors · 全测试基线零回归(前端基线 363/3 · F2-1 zombie 后基线 → +6 + 2 = 371)。

完整 prompt(直接复制粘贴 ClaudeA 终端)

[U-thread] P3.A26.F1-runtime-target-frontend-ui · ADR-26 §3.1 + §2.2 + §4.1 F1-2
[部门] 前端 P1-xilink
[Worker CWD] d:/work/25_claude/workspace/AlgoDepartment/04_development/
[Occupies] P1.K-shared-xilink-left-dock + P1.K-shared-runtime-target-ui
[优先级] P0(2.0d · 关键路径 F1-1→F1-2→F4-1 · 与 F3-2 文件正交并行 max=2.0d)
[ADR] docs/08-implementation/40-aios/ADR/ADR-AIOS-26-meter-dual-link-runtime-target-tri-stage.md(必读 §3.1 RuntimeTarget UI 改造 + §2.2 ① 指标监控→资源监控 + §2.2 ② native 选项 + §2.2 ③ NativeRuntimeTarget 池 + §4.1 F1-2 + §4.3 文件正交矩阵 + §5 风险表第 2 行 + §9.2 grep 真值教训)
[isolation] file(同 worktree 同 branch · frontend_vue3 范围内改 ResourceMonitorDock(新建)+ ConnectionDock + useRuntimeTarget · 与 F3-2 文件 100% 正交)

[参考文档绝对路径]
  - 业务契约:ADR-26 §3.1 完整 5 必填段(① TS NativeSubKind 8 值 + ConnectionType 'native' / ② 6 收敛判据 / ③ 5 类失败回退 / ④ 6 步操作流 / ⑤ playwright e2e native+VDSP 切换)
  - 用户 2026-06-18 12:30 verbatim 第 1 轮 第 4 段 a/b/c(ADR-26 §1.1):
    a "将 xilink 右侧的第一个 dock 指标监控挪到左侧 dock 改名为资源监控"
    b "在左侧 dock 连接中底层 DSP 通信中添加一个 native 的选项"
    c "如果连接是 native 模式 · 资源监控的 target 就需要改为:CPU0 CPU1 CPU2 CPU3 VDSP0~VDSP3"
  - 用户 2026-06-18 17:55 三连 stop + 18:10 双连 start
  - 教训承接标本(必读避坑 · ADR-26 §9 + §5):
    * §9.2 ADR-23→25→25-R1 三连教训严格执行 · 派发前 grep 真值锚定文件路径
    * §5 风险表第 2 行:F1-2 资源监控 Dock 迁移可能丢原指标列表数据源 · Step 0 强制整体 move 不重写
  - 范式 commits(worker 必读 · 强制 read 全文对齐格式):
    * P3.A26.F2--f555661(2026-06-18 同 ClaudeA 同 ADR-26 标本 · 8 段格式 + frontmatter 19 字段 + 7 行 worker 头 + 5 中文括号段 + 七元组 + ≥10 项禁止段)
    * P5.A26.F1--44c8f08(F1-1 后端联调对接标本 · 必须 git show 完整 read 后端 IRuntimeTargetService API + NativeSubKind enum 真值字段)

[现有组件 grep 真值(.clinerules v3.0 ADR-23→25→25-R1 三连教训铁律 · Step 0 强制完整核查 · 不允许凭文件名推测起草)]
  ① F1-1 后端 44c8f08 落地范围(Step 0 强制 git show 44c8f08 --stat 完整 read):
     - IRuntimeTargetService.cs L21-27 RuntimeKind enum + 新增 NativeSubKind enum(Cpu0-3+Vdsp0-3 八值)
     - RuntimeTargetRegistry.cs 新增 11 项注册(PcNative0/Legacy + DspHardware + 8 NativeSubKind)
     - AudioEngineService.cs:120 兼容(DSP/PC 分支不破坏)
     - GET /api/runtime-target/* + POST /api/runtime-target/active(具体路径 git show 44c8f08 确认)
     - workspace 持久化字段(ActiveNativeSubKind)
  ② frontend_vue3/src/stages/xilink/drawers/(必须 grep "指标监控\|MetricsDock\|MetricsMonitor" 强制定位):
     - 原右侧"指标监控" drawer 文件名(推测 RightDockMetrics.vue / MetricsMonitorDock.vue · Step 0 grep 强制定位)
     - 原 drawer 数据源 service / composable / store(必须 read 全文 + 列出所有引用点)
     - 原 drawer 在 RIGHT_DOCK 注册位置(Step 0 grep "drawerRegistry\|RIGHT_DOCK\|rightDocks" 定位)
  ③ frontend_vue3/src/stages/xilink/drawers/(必须 grep "ConnectionDock\|连接" 强制定位):
     - ConnectionDock.vue(若文件名不同则 Step 0 grep "底层 DSP 通信\|ConnectionType\|connection-type" 强制定位)
     - 现有连接类型枚举(serial/tcp/usb/simulator/...)+ 选项渲染逻辑
  ④ frontend_vue3/src/composables/(若已有 useRuntime/useRuntimeTarget):
     - 现有 RuntimeKind 在前端的获取方式(F2-1 f555661 时已 grep · 本 fork 必须 read F2-1 落地的 useRuntime 接入点)
     - useRuntimeTarget composable 是否已存在(若有则扩展 · 若无则新建)
  ⑤ ADR-26 §4.3 文件正交矩阵(L678-682):本 fork 改 ResourceMonitorDock.vue(新建)+ ConnectionDock.vue(改) · 与 F3-2 改 5 Drawer Dock + useLogModuleTracker 100% 正交
  ⑥ ADR-15 layout state(workspace 持久化):新建 ResourceMonitorDock 注册到 LEFT_DOCK 时 · layout key 必须新加 + 老 workspace 数据零回归 fallback(若用户老布局有 RIGHT_DOCK 指标监控则迁移到 LEFT_DOCK 资源监控)

[文件正交策略](.clinerules v3.0 §UID 命名铁律 + §isolation):
  isolation: file · frontend_vue3 范围内改 ResourceMonitorDock(新建)+ ConnectionDock(改 native 选项)+ useRuntimeTarget(新建/扩展)+ spec + e2e
  与 F3-2(改 5 Drawer Dock{Fft,Rms,Phase,Scope,Transfer}.vue + useLogModuleTracker.ts)文件 100% 正交 · 双 worker(ClaudeA 自管串行 max=2.0d)同时跑零冲突
  严禁动 backend(F1-1 范围)/ 严禁动 RightDock*(F2-1 资产)/ 严禁动 LogModuleNode + LogModuleConfigDialog(F3-1 资产)

【背景】
  用户 2026-06-18 12:30 verbatim 第 1 轮 第 4 段 a/b/c 明确 RuntimeTarget UI 改造三件套(指标监控→资源监控+左移 / 连接加 native 选项 / native 模式 8 项 target 池)。
  F1-1 后端 44c8f08 已落地 NativeSubKind enum 8 值 + RuntimeTargetRegistry 注册 11 项 + AudioEngineService 兼容 + GET/POST API + workspace 持久化(2026-06-18 18:00 zombie · ClaudeB 1.5d)。本 fork 是关键路径起点 F1-1 的前端消费方 · 完成后 F1-1+F1-2 完整闭环。
  与 F3-2(同 ClaudeA · 1.5d · meter-dock-log-module-tracker)文件 100% 正交可并行 · 用户 18:10 拍板双连 start · ClaudeA 自管串行 max=2.0d。
  教训承接(ADR-26 §5 风险表第 2 行):资源监控 Dock 迁移必须整体 move 原指标监控 drawer 内容 · 不重写数据源 · 严格保留原数据源 service / composable 引用。
  教训承接(ADR-26 §9.2):用户原话名词"指标监控"+"连接"+"native"+"VDSP" 必须 Step 0 grep 真值锚定 · 不允许凭推测起草。

【架构关键约束】
  ⚡ 严守 .clinerules v3.0 ADR-23→25→25-R1 三连教训铁律:Step 0 必须 grep "指标监控\|MetricsDock\|MetricsMonitor" + grep "ConnectionDock\|连接 Dock" + read 原 drawer 全文 + 列出数据源引用点
  ⚡ 严守 ADR-26 §5 风险表第 2 行:整体 move 原指标监控内容 · 不重写数据源 · 严格保留所有原引用(失败则用户体验破坏)
  🎨 ResourceMonitorDock 新建文件 · 注册到 LEFT_DOCK 紧邻"连接"项 · ADR-15 workspace layout state 兼容(老布局 RIGHT_DOCK 数据迁移)
  🎨 RuntimeTarget 子面板嵌入 ResourceMonitorDock(用户原话"将 runtime target 挪到这个 dock 中 · 因为都属于硬件资源统计")
  📋 ConnectionDock 'native' 选项中文标签"CPU 原生"(避免与 PcSimulator 混淆 · 用户原话"native 代表是 CPU 模式")
  📋 NativeSubKind 8 项 target 池(CPU0-3 + VDSP0-3)+ 中文标签可选(VDSP 标"虚拟 DSP·V0"等 · 区分 CPU)
  📋 选 NativeSubKind → POST /api/runtime-target/active({kind:'PcNative', subKind:'Vdsp0'})· F1-1 端点 stub fallback
  📋 三层分工(ADR-07 §1.3.4):L3 前端纯 UI 行为 · 不做 DSP 数学 · 不动后端 service · 不计算信号路径
  📋 RuntimeKind 切换响应 < 200ms · 切换时 ResourceMonitorDock target 池下拉自动重渲染
  🚫 严禁动 backend_csharp 任何文件(F1-1 范围 · 44c8f08 资产保留)
  🚫 严禁动 RightDock*.vue / useChainNodeMetadata.ts(F2-1 f555661 资产保留)
  🚫 严禁动 LogModuleNode.vue / LogModuleConfigDialog.vue / Routes/LogModuleRoutes.cs(F3-1 8a44ea1 资产保留)
  🚫 严禁动 5 Drawer Dock{Fft,Rms,Phase,Scope,Transfer}.vue / useLogModuleTracker(F3-2 范围 · 与本 fork 并行)
  🚫 严禁重写原指标监控数据源 service(整体 move · ADR-26 §5 风险表第 2 行)
  🚫 严禁删除原右侧 RightDockMetrics 注册(老布局 fallback 兼容 · 但默认载入位置左侧 ResourceMonitorDock · ADR-15 兼容)
  🚫 严禁创建 9+ 项 target 池(用户原话明确 8 项 CPU0-3 + VDSP0-3 · 严守 NativeSubKind enum)
  🚫 严禁嵌入完整 Vue SFC > 60 行 / TS interface > 5 行(.clinerules v3.0)

【执行步骤】
  Step 0 · 文件注入真值核查(强制门槛 · ADR-26 §9.2 + §5 教训承接)
    - git show 44c8f08 --stat 完整列表 · git show 44c8f08 -- backend_csharp/Services/Runtime/IRuntimeTargetService.cs · 完整 read NativeSubKind enum 真值字段名(避免前后端字段名错配)
    - git show 44c8f08 -- backend_csharp/Routes/* | head -200 · 找 GET/POST /api/runtime-target/* 端点真值 URL + payload schema
    - grep "指标监控\|MetricsDock\|MetricsMonitor\|metric" frontend_vue3/src/stages/xilink/drawers/ · 强制定位原右侧"指标监控" drawer 文件名(列 ≥ 1 真值文件路径)
    - read 原指标监控 drawer 全文 · 列出所有数据源引用(service / composable / store)
    - grep "drawerRegistry\|RIGHT_DOCK\|rightDocks\|LEFT_DOCK" frontend_vue3/src/stages/xilink/ · 强制定位 drawer 注册体系(F2-1 f555661 + ADR-25-R1 0bb4422 资产可参考)
    - grep "ConnectionDock\|底层 DSP 通信\|ConnectionType\|connection-type" frontend_vue3/src/stages/xilink/drawers/ · 强制定位连接 Dock 文件名 + 现有连接类型枚举
    - grep "useRuntime\|RuntimeKind\|runtimeStore" frontend_vue3/src/composables/ · 列出现有 RuntimeKind 接入(F2-1 落地的 useRuntime 必须 read · 不重复)
    - 留 commit log:Step 0 七层核查记录 + 4 个真值文件路径(原指标监控 drawer + ConnectionDock + drawer 注册 + useRuntime)+ F1-1 端点 schema 摘要

  Step 1 · ResourceMonitorDock 创建(原指标监控整体迁移 + 改名)0.5d(子任务 ②)
    - 新建 frontend_vue3/src/stages/xilink/drawers/ResourceMonitorDock.vue
    - 整体 move 原右侧"指标监控" drawer 模板 + script + style · 改 dock 名为"资源监控"(中文 i18n key 同步)
    - 新增 RuntimeTarget 子面板区(下方独立区块 · 上方保留原指标列表)
    - 注册到 LEFT_DOCK 紧邻"连接 Dock"位置(append-only · drawerRegistry 加 key)
    - 老 RIGHT_DOCK 指标监控注册保留(老布局 fallback)+ 默认载入位置改 LEFT_DOCK · ADR-15 layout state 兼容老 workspace
    - i18n key 加 zh-CN/en(若项目有 i18n 体系)

  Step 2 · ConnectionDock 加 native 选项 0.3d(子任务 ③)
    - 修 ConnectionDock.vue 现有 ConnectionType 枚举追加 'native'
    - 中文标签"CPU 原生"(避免 PcSimulator 混淆)+ 下拉/单选 UI 渲染
    - 选 native → 触发 useRuntimeTarget.setActive(PcNative, NativeSubKind.Cpu0 默认) · POST /api/runtime-target/active

  Step 3 · useRuntimeTarget composable + 8 项 target 池 0.5d(子任务 ④)
    - 新建/扩展 frontend_vue3/src/composables/useRuntimeTarget.ts
    - 函数:getTargetPool(kind, subKind?) 返回 string[] 8 项 / DspHardware 现有 / PcSimulator 现有 / 默认空
    - 消费 F1-1 GET /api/runtime-target/available(F1-1 schema 真值 · stub fallback 数组 8 项)
    - setActive(kind, subKind?) → POST F1-1 端点 + 持久化 workspace
    - 在 ResourceMonitorDock RuntimeTarget 子面板:RuntimeKind 大下拉 + NativeSubKind 子下拉(仅当 RuntimeKind=PcNative + 连接=native 显示 8 项)

  Step 4 · 测试 + e2e + 全测试基线零回归 0.4d(子任务 ⑤)
    - useRuntimeTarget.spec.ts ≥ 6 case:
      T1 getTargetPool(PcNative, undefined) === [现有 PcNative 现状 target]
      T2 getTargetPool(PcNative, Cpu0) 包含 ['CPU0','CPU1','CPU2','CPU3','VDSP0','VDSP1','VDSP2','VDSP3']
      T3 getTargetPool(DspHardware) === [现有 DSP target 不变]
      T4 setActive(PcNative, Vdsp0) 触发 POST 并持久化(mock fetch)
      T5 setActive 失败时 toast(mock fetch 504)
      T6 RuntimeKind 切到 DspHardware · 8 项 target 池下拉自动隐藏
    - playwright e2e ≥ 2 case(adr-26-runtime-target/native-vdsp-switch.spec.ts):
      E1 ADR-26 §3.1 ⑤:左侧 dock 含资源监控 + 连接 / 选 native / 8 项 target 池可见 / 选 VDSP0 / 注入信号 · signalPath==='vdsp'(F1-1 真值响应)
      E2 RuntimeKind=DspHardware:8 项 target 池隐藏 · DspHardware target 显示
    - vue-tsc --noEmit 0 errors
    - npm run build 0 errors
    - npm run test 全测试基线零回归(F2-1 zombie 后基线 363/3 → +6+2 = 371/3)

  Step 5 · 浏览器实测(可选 · F1-1 端点 stub fallback)0.3d
    - 启动 backend(F1-1 已 zombie · 真端点可联调)+ frontend(npm run dev)
    - 验收 6 点:
      ☐ 左侧 dock 显示"连接"+"资源监控"两项 · 资源监控居 LEFT_DOCK 紧邻"连接"
      ☐ 老 workspace(右侧"指标监控")自动迁移到左侧"资源监控"+ 数据源不丢失
      ☐ 选连接 Dock → 含 native 选项(中文"CPU 原生")
      ☐ 选 native → 资源监控 RuntimeTarget 子面板下拉显示 8 项(CPU0-3 + VDSP0-3)
      ☐ 选 VDSP0 → 后端 SetActive 持久化 + UI 切换 < 200ms
      ☐ 切到 DspHardware → 8 项 target 池下拉自动隐藏 · DspHardware target 显示
    - git add . && git commit -m "feat(xilink/runtime-target): P3.A26.F1 资源监控 Dock 左移 + native 选项 + 8 项 target 池

      用户 2026-06-18 17:55 三连 stop + 18:10 双连 start。F1-1 zombie 44c8f08 解锁本 fork。
      F1-2 本 fork(ADR-26 §3.1 + §2.2 + §4.1):
      ① ResourceMonitorDock.vue 新建 · 原右侧'指标监控'整体迁移到左侧 + 改名'资源监控' + RuntimeTarget 子面板嵌入
      ② ConnectionDock.vue 加 native 选项(中文'CPU 原生')+ 选 native 触发 setActive(PcNative, Cpu0 默认)
      ③ useRuntimeTarget.ts 新建/扩展 · getTargetPool 返回 8 项(CPU0-3+VDSP0-3)+ setActive POST F1-1 端点
      ④ NativeSubKind 子下拉(仅当 RuntimeKind=PcNative + 连接=native 显示)
      ⑤ ADR-15 workspace layout state 兼容(老 RIGHT_DOCK 指标监控数据迁移到 LEFT_DOCK 资源监控)
      ⑥ vitest +6 case + playwright +2 case 全过 · vue-tsc + build 全绿 · 全测试基线零回归

      消费 F1-1 后端 44c8f08:IRuntimeTargetService.NativeSubKind enum + GET/POST /api/runtime-target/* 端点
      文件正交:与 F3-2(meter-dock-log-module-tracker)100% 正交 · 与 F2-1(c780836+f555661 RightDock*)零冲突
      ADR-23→25→25-R1 三连教训承接:Step 0 grep 真值锚定原'指标监控' drawer + 'ConnectionDock' + 数据源 service · 整体 move 不重写

      [step=5/5] [pid=P3] [uid=P3.A26.F1-runtime-target-frontend-ui] [type=fork] [isolation=file]
      [occupies=P1.K-shared-xilink-left-dock+runtime-target-ui] [files=4-5(2N+2-3M+1S+1E)] [ipc=rest+ws-ready]
      [adr=ADR-AIOS-26 §3.1 + §2.2 ① + §2.2 ② + §2.2 ③ + §4.1 F1-2 + 用户 2026-06-18 12:30 第 1 轮 第 4 段 a/b/c verbatim + 17:55 三连 stop + 18:10 双连 start]"

【验收】
  ☐ Step 0 文件注入真值核查通过(git show 44c8f08 + grep 指标监控 drawer + grep ConnectionDock + read 数据源 service · commit log 留痕 ≥ 4 真值路径)
  ☐ Step 1 ResourceMonitorDock 新建 · 整体 move 原指标监控内容 · 改名"资源监控" · 注册 LEFT_DOCK · ADR-15 workspace 老布局兼容
  ☐ Step 2 ConnectionDock 加 native 选项 · 中文"CPU 原生" · 选 native 触发 setActive(PcNative, Cpu0)
  ☐ Step 3 useRuntimeTarget composable + getTargetPool 返回 8 项 · setActive POST F1-1 端点 · stub fallback
  ☐ Step 4 vitest +6 case 全过(T1-T6)+ playwright +2 case 全过(E1-E2)· vue-tsc + build 0 errors · 全测试基线零回归
  ☐ Step 5 浏览器实测 6 验收点全过(左侧 dock + 老布局迁移 + native 选项 + 8 项 target 池 + 切 VDSP0 < 200ms + DspHardware 隐藏)
  ☐ commit message 含 7 元组 trailer + ADR-26 §3.1 + §2.2 + §4.1 + 用户 verbatim 引用 + F1-1 zombie 联调说明

【禁止】
  ❌ 禁止跳过 Step 0 文件注入真值核查(ADR-26 §9.2 教训 · grep "指标监控" + "ConnectionDock" 强制锚定)
  ❌ 禁止重写原指标监控数据源 service(ADR-26 §5 风险表第 2 行 · 整体 move 不重写)
  ❌ 禁止动 backend_csharp 任何文件(F1-1 44c8f08 范围)
  ❌ 禁止动 RightDock*.vue / useChainNodeMetadata.ts(F2-1 f555661 资产)
  ❌ 禁止动 LogModuleNode.vue / LogModuleConfigDialog.vue / Routes/LogModuleRoutes.cs(F3-1 8a44ea1 资产)
  ❌ 禁止动 5 Drawer Dock{Fft,Rms,Phase,Scope,Transfer}.vue / useLogModuleTracker.ts(F3-2 范围 · 文件正交并行)
  ❌ 禁止删除原右侧 RightDockMetrics 注册(老布局 fallback 兼容 · 默认载入位置左侧)
  ❌ 禁止创建 9+ 项 NativeSubKind target 池(用户原话明确 8 项 CPU0-3+VDSP0-3)
  ❌ 禁止跳过 vitest +6 case(T1-T6 验收硬门槛)/ 跳过 playwright +2 case(E1-E2)
  ❌ 禁止 commit 缺七元组 trailer(.clinerules v3.0 铁律)
  ❌ 禁止嵌入完整 Vue SFC > 60 行 / TS interface > 5 行(.clinerules v3.0 · 用 diff 模式提交)

解锁链(本任务 zombie 后)

  • ✅ F1-1+F1-2 完整闭环(NativeSubKind 后端→前端 UI 全栈)
  • ✅ 资源监控 Dock 左移 + 改名(用户 verbatim 落地)
  • ✅ 连接 native 选项 + 8 项 target 池(用户 verbatim 落地)
  • ⏳ F4-1 P_e2e.A26.F4-truth-e2e-meter-dual-link 部分解锁(还需 F3-2 zombie · 五齐后 ready · ClaudeC 1.5d → ADR-26 整体闭环 🏆)

风险评估

风险 缓解
原右侧"指标监控" drawer 文件名未确定(prompt 中 Step 0 grep 强制定位) Step 0 grep "指标监控|MetricsDock|MetricsMonitor|metric" + read 全文 · 不允许凭推测起草改动
整体 move 原指标监控数据源丢失(ADR-26 §5 风险表第 2 行) Step 0 强制 read 数据源 service / composable 全文 + 列出所有引用点 · ResourceMonitorDock 引用同源不重写
F1-1 端点 schema 字段名错配(ClaudeB 实施时具体 URL/字段未明) Step 0 强制 git show 44c8f08 -- backend_csharp/Routes/* + IRuntimeTargetService.cs 完整 read · 字段名严格按后端真值 · stub fallback 仅在端点未联调时使用
ADR-15 workspace layout state 老布局回归(老用户右侧"指标监控"配置丢失) 老 RIGHT_DOCK 注册保留 + 默认载入位置左侧 ResourceMonitorDock · 老布局自动迁移逻辑 + e2e E1 验证老布局兼容
ConnectionDock 'native' 选项与 PcSimulator 混淆 中文标签明确"CPU 原生"(用户原话"native 代表是 CPU 模式")· 区分于 PcSimulator
NativeSubKind 子下拉显示条件错(应仅 PcNative + 连接=native 才显示 8 项) Step 3 严格判断 RuntimeKind=PcNative AND ConnectionType=native · vitest T6 验证切到 DspHardware 自动隐藏
RuntimeKind 切换 < 200ms 性能不达标 用 ref + computed 响应式 · 不阻塞 UI 线程 · POST 异步触发
ClaudeA 排队膨胀(本 2.0d + F3-2 1.5d 并行 · 自管节奏可能延期) 文件 100% 正交 · ClaudeA 自管串行节奏(用户拍板信任)· 实际跨度 max=2.0d · 不影响 F4-1 e2e 准备

历史

时间 事件 hash
2026-06-18 18:10 dispatched(用户 17:55 三连 stop F1-1+F2-1+F3-1 + 18:10 双连 start P3.A26.F1 + P3.A26.F3-meter-dock · 与 F3-2 文件正交并行 2.0d · F1-1 zombie 44c8f08 解锁本 fork)