跳转至

P3.UA25R1.F1-mini-bar-click-no-response-on-subgraph · combo hotfix(单击不响应 + F2 文件清理)

Worker:ClaudeA · 部门:前端 P3-xitune · 预计:0.2d · 优先级:P0 关键路径起点 · 状态:dispatched · isolation:🧵 file(同 worktree 同 branch · 解锁 F2-R1 + F3-R1 文件正交并行)

🔍 触发与解锁链

触发:用户 2026-06-15 16:45 accept ADR-AIOS-25-R1 + 同步启用 .clinerules v3.0 终极极简(砍 accept 二阶段)· 17:22 拍板 start P3.UA25R1.F1 起手关键路径。

用户原话(verbatim · ADR-25-R1 §1.1 第 3 段):

"在主页面的 mini-node 中双击子图模块可以打开或者跳转到子图 tab 主页 · 主链路中单击子图主页面不变化"

架构契约(ADR-25-R1 §3.1-R1 ① 输入/输出契约 · 业务契约 5 必填段 · combo 双重契约): - 契约 A · 单击行为:onMiniNodeClickWithDelay(instanceId, _moduleId) 入口加 isSubgraph 提早 return 分支 · 子图节点单击 0 副作用(activeInstanceId 不变 / 主区不刷新 / floating 不弹)· 普通 module 保持现有行为 - 契约 B · F2 文件清理:删除 SubgraphsDock.vue + SubgraphListItem.vue + useSubgraphList.ts + useSubgraphList.spec.ts 4 文件 + 删 index.vue L243 LEFT_DOCK 第 6 项 + 删 L541 drawer 注册行 + 注释改回(LEFT 5 + RIGHT 7 = 12 项) - 保留:F1 d9a2e1c useChainMiniNodes composable + ChainMiniNode 接口 + 5 vitest case + .mini-node--subgraph CSS + 模板 📦 emoji + tooltip(全部不动) - 5 类失败回退(ADR-25-R1 §3.1-R1 ③):isSubgraph 字段缺失 → 退化默认行为 / def 缺失 → useChainMiniNodes 已回退 ⚠️ / hover tooltip 异步 → 显示 fallback / CSS 加载顺序 → scoped 自动 / 连续单击 → 早 return idempotent

解锁链(本任务 zombie 后): - ✅ F2-R1 P3.UA25R1.F2-flow-readonly-dock-subgraph-display(ClaudeA 1.0d)与 F3-R1 P3.UA25R1.F3-doc-tabs-multi-tab-routing(ClaudeA 1.5d)文件正交并行 max=1.5d - ⏳ F4-R1 P_e2e.A25R1.F4-truth-e2e-subgraph-r1(ClaudeC 0.5d · blocked-by-F1.1+F2-R1+F3-R1 三齐)→ ADR-25 整体闭环 🏆

任务定义(基于 ADR-25-R1 §3.1-R1 + §4.3)

子任务 ① · onMiniNodeClickWithDelay 加 isSubgraph 提早 return(0.05d)

Step 1.1:修改 frontend_vue3/src/stages/xitune/index.vue L468 function onMiniNodeClickWithDelay(instanceId, _moduleId) 入口: - 加分支:const node = chainMiniNodes.value.find(n => n.instanceId === instanceId); if (node?.isSubgraph) { return }(早 return · 0 副作用) - 普通 module 保持现有 200ms 延迟切 activeInstanceId 行为完全不变 - 参考 L483 已有的 chainMiniNodes.value.find(...) 模式(在 onMiniNodeDblclick 内 · 同样查找方式)

子任务 ② · 删除 F2 bff2fc2 落地的 4 文件(0.05d)

Step 2.1:删除以下 4 文件(git rm): - frontend_vue3/src/stages/xitune/drawers/SubgraphsDock.vue(183 行) - frontend_vue3/src/stages/xitune/drawers/SubgraphListItem.vue(109 行) - frontend_vue3/src/stages/xitune/composables/useSubgraphList.ts(43 行) - frontend_vue3/src/stages/xitune/composables/__tests__/useSubgraphList.spec.ts(127 行)

子任务 ③ · index.vue 清理 F2 残留(0.05d)

Step 3.1:修改 frontend_vue3/src/stages/xitune/index.vue: - L243 整行删除:{ key: 'xt-subgraph', icon: '??', tip: '...' }(LEFT_DOCK 第 6 项) - L541 整行删除:shellSlots.registerDrawerComponent('xt-subgraph', () => import('./drawers/SubgraphsDock.vue')) - 注释 "(LEFT 6 + RIGHT 7 = 13 项)" 改回 "(LEFT 5 + RIGHT 7 = 12 项)"(若该注释存在 · grep 确认) - 保留 L29-30 / L52-53 模板 mini-node @click/@dblclick(行为通过 Step 1.1 修改而非删除) - 保留 L169-170 useChainMiniNodes import(F1 资产) - 保留 L394 useChainMiniNodes(orderedModules) 调用(F3-R1 后续才改 currentTabModules)

子任务 ④ · 测试 + 类型/构建/全测试基线零回归(0.05d)

Step 4.1:useChainMiniNodes.spec.ts 现有 5 case 不动(F1 资产保留)· vitest 加 ≥ 2 新 case 验证 onMiniNodeClickWithDelay 行为: - T6 子图节点单击不响应(mock activeInstanceId · click 后 activeInstanceId 不变) - T7 普通节点单击切 activeInstanceId(mock activeInstanceId · click 后切到目标 instanceId)

Step 4.2:vue-tsc --noEmit 0 errors · npm run build 0 errors · npm run test 全过(基线 + 5 保留 + 2 新增 · useSubgraphList.spec.ts 删除后基线减少)

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

[U-thread] P3.UA25R1.F1-mini-bar-click-no-response-on-subgraph · ADR-25-R1 §3.1-R1 + §4.3(combo hotfix)
[部门] 前端 P3-xitune
[Worker CWD] d:/work/25_claude/workspace/AlgoDepartment/04_development/
[Occupies] P3.K-shared-xitune-mini-bar + P3.K-shared-xitune-left-dock
[优先级] P0(0.2d · 关键路径起点 · 解锁 F2-R1 + F3-R1 文件正交并行)
[ADR] docs/08-implementation/40-aios/ADR/ADR-AIOS-25-R1-flow-readonly-subgraph-and-doc-tabs.md(必读 §3.1-R1 + §2.2 F1 资产保留矩阵 + §2.3 F2 资产废弃矩阵 + §4.3 F1.1-R1 必含 6 件事)
[isolation] file(同 worktree 同 branch · 同时改 + 删 + 文件正交)

[参考文档绝对路径]
  - 业务契约:ADR-25-R1 §3.1-R1 完整 5 必填段(① onMiniNodeClickWithDelay isSubgraph 提早 return / ② 5 行收敛判据 / ③ 5 类失败回退 / ④ 5 步操作流 / ⑤ playwright e2e 模板)
  - 用户 2026-06-15 16:06 verbatim 三段拆解(ADR-25-R1 §1.1 第 3 段):"主链路中单击子图主页面不变化"
  - 用户 2026-06-15 16:45 拍板 accept ADR-25-R1 + 启用 .clinerules v3.0 终极极简
  - 教训承接标本(必读避坑 · ADR-25-R1 §9):
    * §9.1 ADR 起草未对照目标 stage 现有 dock/tab 框架的二次教训(ADR-23→25→25-R1 三连)
    * §9.2 F1+F2 双连派发的资产保留教训(部分保留 + 整体废弃 不是简单 git revert)
    * §9.3 用户原话名词必须 grep 找具体文件+行号(本 prompt [现有组件 grep 真值] 段已落实)
  - 范式 commits(worker 必读 · 强制 read 全文对齐格式):
    * d9a2e1c P3.A25.F1 xitune-mini-bar-subgraph-icon(同 ClaudeA 同 ADR-25 · isolation: file · 完整 prompt 标本 254 行)
    * a5b52de P1.A21.F1 dock-host-generalize(同 ClaudeA 前端 · 完整 prompt 8 段 + commit 七元组标本)

[现有组件 grep 真值(.clinerules v3.0 ADR-23→25→25-R1 三连教训铁律 · 派发前已核查)]
  ① 待修文件 frontend_vue3/src/stages/xitune/index.vue:
     - L29-30:source mini-node 模板 @click="onMiniNodeClickWithDelay" + @dblclick="onMiniNodeDblclick"(保留)
     - L52-53:普通 mini-node 模板 @click + @dblclick(保留)
     - L169-170:import useChainMiniNodes + ChainMiniNode(F1 d9a2e1c 资产 · 保留)
     - L221:function buildDocTabs(): DocTab[](F3-R1 扩展点 · 本 hotfix 不动)
     - L236:const LEFT_DOCK: DockPane[] = [
     - L243:{ key: 'xt-subgraph', icon: '??', tip: '...' }  ← ⚠️ 整行删除
     - L394:const { chainMiniNodes } = useChainMiniNodes(orderedModules)  ← F3-R1 才改 · 本 hotfix 不动
     - L468:function onMiniNodeClickWithDelay(instanceId, _moduleId)  ← ⚠️ 入口加 isSubgraph 提早 return
     - L479-483:function onMiniNodeDblclick(...) + const node = chainMiniNodes.value.find(...)(F2-R1/F3-R1 改 · 本 hotfix 不动 · 但提供 find 模式参考)
     - L530:shellSlots.setActivity('left', LEFT_DOCK)(不动)
     - L534-548:13 个 registerDrawerComponent 注册 · 其中 L541 'xt-subgraph' ← ⚠️ 整行删除(其余 12 个保留)
     - L552:shellSlots.setDocTabs(buildDocTabs(), 'main')(不动)
  ② 待删 4 文件(git rm):
     - drawers/SubgraphsDock.vue(183 行 · F2 bff2fc2 落地)
     - drawers/SubgraphListItem.vue(109 行)
     - composables/useSubgraphList.ts(43 行)
     - composables/__tests__/useSubgraphList.spec.ts(127 行)
  ③ F1 d9a2e1c 资产保留(全部不动):
     - composables/useChainMiniNodes.ts(L24 export function · L29 chainMiniNodes computed · L58 return)
     - __tests__/useChainMiniNodes.spec.ts(L5 import · L48 describe ADR-25 §3.1 · L57-103 T1-T5 共 5 case)

[文件正交策略](.clinerules v3.0 §UID 命名铁律 + §isolation):
  isolation: file · 同 worktree 同 branch · 删除 4 文件 + 改 index.vue(2 处删 + 1 处改 + 1 处注释)
  下游 F2-R1(改 FlowReadonlyDock.vue)+ F3-R1(新建 useSubgraphTabs.ts + 改 index.vue 不同区段)与本 hotfix 文件正交可并行

【背景】
  用户 2026-06-15 16:06 verbatim 三段拆解纠正 ADR-25 v0.1 范围方向再次错(ADR-23→25→25-R1 三连)· 16:14 ADR-25-R1 落盘 · 16:45 用户 `accept ADR-AIOS-25-R1` + 同时启用 .clinerules v3.0(砍 accept 二阶段)· 17:22 拍板 `start P3.UA25R1.F1`。
  本 hotfix 是 combo(组合修):① 修 onMiniNodeClickWithDelay 加 isSubgraph 早 return(用户 verbatim "主链路中单击子图主页面不变化")② 删 F2 bff2fc2 落地的 4 文件 + LEFT_DOCK 第 6 项 + drawer 注册(用户要的是完善 FlowReadonlyDock 不是新建 dock)。
  关键路径起点(0.2d · 解锁 F2-R1 1.0d + F3-R1 1.5d 文件正交并行 max=1.5d → F4-R1 e2e 0.5d → ADR-25 整体闭环 🏆 总 3.2d)。
  教训承接(ADR-25-R1 §9.3):用户原话名词必须 grep 找具体文件+行号 → 本 prompt [现有组件 grep 真值] 段已落实 13 个真值行号锚点。

【架构关键约束】
  ⚡ 严守 .clinerules v3.0 ADR-23→25→25-R1 三连教训铁律:用户原话名词 grep 找具体文件+行号 · "完善他"指代词必须解析为现有组件 · 本 hotfix 严格按 ADR-25-R1 §4.3 必含 6 件事执行(改 1 处 + 删 4 文件 + 删 2 处 index.vue + 改 1 处注释 + 加 2 case + 全绿)
  🎨 F1 d9a2e1c 视觉资产完整保留:useChainMiniNodes composable + ChainMiniNode 接口 + 5 vitest case + .mini-node--subgraph CSS + 模板 📦 emoji + tooltip 全部不动
  📋 F2 bff2fc2 资产整体废弃:4 文件 git rm + index.vue L243 + L541 整行删除 + 注释 "(LEFT 6 + RIGHT 7 = 13 项)" 改回 "(LEFT 5 + RIGHT 7 = 12 项)"
  📋 onMiniNodeClickWithDelay 修改原则:append-only 加 isSubgraph 提早 return 分支 · 普通 module 现有 200ms 延迟切 activeInstanceId 行为零回归
  📋 onMiniNodeDblclick 不动:F2-R1 / F3-R1 后续才改 console.log → openSubgraphTab(本 hotfix 范围外)
  📋 三层分工(ADR-07 §1.3.4):L3 前端纯 UI 行为修改 · 不做 DSP 数学
  🚫 严禁动 useChainMiniNodes.ts(F1 资产 · 仅消费 chainMiniNodes.value.find 模式)
  🚫 严禁动 buildDocTabs / setDocTabs(F3-R1 范围)
  🚫 严禁动 FlowReadonlyDock.vue(F2-R1 范围)

【执行步骤】
  Step 0 · 文件注入真值核查(强制门槛 · ADR-25-R1 §9.3 三连教训承接)
    - read frontend_vue3/src/stages/xitune/index.vue L29-30 / L52-53 / L169-170 / L221 / L236-243 / L394 / L468-485 / L530-552 · 确认本 prompt [现有组件 grep 真值] 13 个行号锚点全部对得上
    - Test-Path 4 待删文件:drawers/SubgraphsDock.vue / drawers/SubgraphListItem.vue / composables/useSubgraphList.ts / composables/__tests__/useSubgraphList.spec.ts 全部应 True
    - read 1 个待删标本:drawers/SubgraphsDock.vue 全文(183 行)确认是 F2 bff2fc2 落地(顶部应有 ADR-25 §3.2 引用)
    - grep "(LEFT 6 + RIGHT 7 = 13 项)" frontend_vue3/src/stages/xitune/index.vue · 若命中则注释改回 "(LEFT 5 + RIGHT 7 = 12 项)" · 若无则跳过
    - 留 commit log:Step 0 五层核查记录

  Step 1 · onMiniNodeClickWithDelay 加 isSubgraph 提早 return 0.05d(子任务 ①)
    - 编辑 frontend_vue3/src/stages/xitune/index.vue L468 function onMiniNodeClickWithDelay(instanceId, _moduleId) 入口
    - 加分支(参考 L483 已有 chainMiniNodes.value.find 模式):
      const node = chainMiniNodes.value.find(n => n.instanceId === instanceId)
      if (node?.isSubgraph) {
        // ADR-25-R1 §3.1-R1 · 子图节点单击不响应(主页面不变化)
        return
      }
    - 普通 module 路径完全不变(200ms 延迟切 activeInstanceId 等)

  Step 2 · 删除 F2 bff2fc2 落地的 4 文件 0.05d(子任务 ②)
    - git rm frontend_vue3/src/stages/xitune/drawers/SubgraphsDock.vue
    - git rm frontend_vue3/src/stages/xitune/drawers/SubgraphListItem.vue
    - git rm frontend_vue3/src/stages/xitune/composables/useSubgraphList.ts
    - git rm frontend_vue3/src/stages/xitune/composables/__tests__/useSubgraphList.spec.ts

  Step 3 · index.vue 清理 F2 残留 0.05d(子任务 ③)
    - 删除 L243 整行 `{ key: 'xt-subgraph', icon: '??', tip: '...' }`(LEFT_DOCK 第 6 项)
    - 删除 L541 整行 `shellSlots.registerDrawerComponent('xt-subgraph', () => import('./drawers/SubgraphsDock.vue'))`
    - 若 grep 命中 "(LEFT 6 + RIGHT 7 = 13 项)" 注释 → 改回 "(LEFT 5 + RIGHT 7 = 12 项)"

  Step 4 · 测试 + 类型/构建/全测试基线零回归 0.05d(子任务 ④)
    - useChainMiniNodes.spec.ts 现有 5 case 全部保留(F1 资产)
    - vitest 加 ≥ 2 case 验证 onMiniNodeClickWithDelay:
      * T6 子图节点单击不响应(mock chainMiniNodes 含 isSubgraph: true 节点 · 调用 onMiniNodeClickWithDelay · 断言 activeInstanceId 不变)
      * T7 普通节点单击切 activeInstanceId(mock chainMiniNodes 含 isSubgraph: false 节点 · 调用 · 断言 200ms 后 activeInstanceId 切到目标)
    - vue-tsc --noEmit 0 errors
    - npm run build 0 errors
    - npm run test 全过(useSubgraphList.spec.ts 删除后基线 -127 行 / +2 新 case)

  Step 5 · 浏览器实测 + commit
    - 启动 backend(dotnet run)+ frontend(npm run dev)
    - 准备 fixture:xilink 工程含 1 子图 EQ_A(3 modules)+ 主链路 1 EQ_A 实例 · 切到 xitune
    - 验收点(ADR-25-R1 §3.1-R1 ④ 用户操作流):
      ☐ xitune chain-mini-bar 显示 📦 EQ_A(F1 视觉保留 · 单击 不响应主页面不变化)
      ☐ hover 📦 EQ_A → tooltip "子图 EQ_A · 含 3 module · 双击查看内部"(F1 资产保留 · tooltip 不变)
      ☐ 单击 📦 EQ_A → activeInstanceId 不变 / 主区不刷新 / floating 不弹(R1 §3.1 hotfix)
      ☐ 单击普通 module → 200ms 后 activeInstanceId 切(原行为零回归)
      ☐ 左 dock 看不到 📦 第 6 项(F2 文件清理生效 · LEFT 5 + RIGHT 7 = 12 项)
      ☐ 双击 📦 EQ_A 暂保持 console.log 占位(F2-R1 / F3-R1 才改)
    - git add . && git commit -m "fix(xitune/mini-bar): P3.UA25R1.F1 combo hotfix(单击不响应 + F2 文件清理)

      用户 2026-06-15 16:45 拍板 accept ADR-AIOS-25-R1 + 启用 .clinerules v3.0 终极极简(砍 accept 二阶段)· 17:22 start。
      F1.1-R1 本任务(ADR-25-R1 §3.1-R1 + §4.3 必含 6 件事):
      ① onMiniNodeClickWithDelay 加 isSubgraph 提早 return(主链路中单击子图主页面不变化 · 用户 verbatim)
      ② 删 4 文件:SubgraphsDock.vue + SubgraphListItem.vue + useSubgraphList.ts + useSubgraphList.spec.ts(F2 bff2fc2 整体方向错)
      ③ index.vue L243 LEFT_DOCK 第 6 项 + L541 drawer 注册整行删除 + 注释改回 12 项
      ④ vitest +2 case(T6 子图单击不响应 · T7 普通单击切 active)
      ⑤ vue-tsc + build 全绿 · 全测试基线零回归(- useSubgraphList.spec.ts 127 行 + 2 新 case)
      ⑥ F1 d9a2e1c useChainMiniNodes + ChainMiniNode + 5 vitest case + .mini-node--subgraph CSS + 📦 emoji + tooltip 全部保留(部分保留矩阵 ADR-25-R1 §2.2)

      解锁 F2-R1(FlowReadonlyDock SVG 子图示意图 1.0d)+ F3-R1(doc tabs 多 tab 路由 1.5d)文件正交并行
      ADR-23→25→25-R1 三连教训承接:用户原话名词 grep 找具体文件+行号(本 commit 涉及 13 个 index.vue 真值锚点)

      [step=5/5] [pid=P3] [uid=P3.UA25R1.F1-mini-bar-click-no-response-on-subgraph] [type=hotfix-combo] [isolation=file]
      [occupies=P3.K-shared-xitune-mini-bar+left-dock] [files=5(1M+4D)] [ipc=none]
      [adr=ADR-AIOS-25-R1 §3.1-R1 + §4.3 必含 6 件事 + §2.2 F1 部分保留矩阵 + §2.3 F2 整体废弃矩阵 + 用户 2026-06-15 16:06 verbatim + 16:45 accept]"

【验收】
  ☐ Step 0 文件注入真值核查通过(read index.vue 13 行号锚点对齐 + Test-Path 4 待删文件全 True + read SubgraphsDock 确认 F2 落地 + grep 注释 · commit log 留痕)
  ☐ Step 1 onMiniNodeClickWithDelay 加 isSubgraph 提早 return 分支 · 普通 module 现有 200ms 延迟切 activeInstanceId 零回归
  ☐ Step 2 git rm 4 文件成功(SubgraphsDock + SubgraphListItem + useSubgraphList + useSubgraphList.spec)
  ☐ Step 3 index.vue L243 + L541 整行删除 + 注释改回 12 项(若存在)
  ☐ Step 4 vitest +2 case(T6 + T7)全过 · vue-tsc + build 0 errors · 全测试基线零回归(useSubgraphList.spec 删除后基线减 127 行)
  ☐ Step 5 浏览器实测 6 验收点全过(单击不响应 + 普通单击切 active 零回归 + 左 dock 12 项 + 📦 视觉保留 + tooltip 保留 + 双击 console.log 占位)
  ☐ commit message 含 7 元组 trailer + ADR-25-R1 §3.1-R1 + §4.3 + §2.2 + §2.3 引用 + 用户 verbatim 双 timestamp

【禁止】
  ❌ 禁止跳过 Step 0 文件注入真值核查(ADR-25-R1 §9.3 三连教训 · 13 行号锚点必须逐一对齐)
  ❌ 禁止动 useChainMiniNodes.ts / useChainMiniNodes.spec.ts(F1 d9a2e1c 资产保留 · ADR-25-R1 §2.2 矩阵)
  ❌ 禁止动 .mini-node--subgraph CSS / 模板 📦 emoji / tooltip 文案(F1 视觉资产保留)
  ❌ 禁止动 onMiniNodeDblclick / buildDocTabs / setDocTabs / FlowReadonlyDock.vue(F2-R1 + F3-R1 范围 · 本 hotfix 不越界)
  ❌ 禁止动 L394 useChainMiniNodes(orderedModules) 调用(F3-R1 才改 currentTabModules)
  ❌ 禁止动 linkStore.ts schema(仅消费 · 不动 store)
  ❌ 禁止破坏 onMiniNodeClickWithDelay 普通 module 现有 200ms 延迟行为(append-only 加 isSubgraph 早 return 分支)
  ❌ 禁止跳过 vitest +2 case(T6 + T7 · 验收硬门槛)
  ❌ 禁止 commit 缺三元组 trailer(.clinerules v3.0 铁律)
  ❌ 禁止嵌入完整 SFC > 60 行 / TS interface > 5 行(.clinerules v3.0)· hotfix 改动小 · 用 diff 模式提交

解锁链(本任务 zombie 后)

  • ✅ xitune 主链路单击子图节点 0 副作用(用户 verbatim "主链路中单击子图主页面不变化"已落地)
  • ✅ F2 bff2fc2 错向资产全清理(4 文件 git rm + LEFT_DOCK 第 6 项 + drawer 注册一并删除 · 12 项数量恢复)
  • ✅ F2-R1 P3.UA25R1.F2-flow-readonly-dock-subgraph-display ready(ClaudeA 1.0d · 完善 FlowReadonlyDock SVG 嵌套子图示意图)
  • ✅ F3-R1 P3.UA25R1.F3-doc-tabs-multi-tab-routing ready(ClaudeA 1.5d · useSubgraphTabs + 扩展 buildDocTabs · 与 F2-R1 文件正交并行)
  • ⏳ F4-R1 P_e2e.A25R1.F4-truth-e2e-subgraph-r1 部分解锁(还需 F2-R1 + F3-R1 zombie · 三齐后 ready · ClaudeC 0.5d → ADR-25 整体闭环 🏆)

风险评估

风险 缓解
L243 / L541 行号漂移(F2 之后可能有其他 commit 改动) Step 0 强制 read index.vue L240-250 + L538-548 段确认真位置 · 若漂移则 grep 'xt-subgraph' 在 index.vue 内定位 2 处删除点 · 不依赖固定行号
F1 d9a2e1c useChainMiniNodes 内部派生 isSubgraph 字段类型不一致(可选 vs 必填) Step 0 read useChainMiniNodes.ts L24-58 确认 ChainMiniNode 接口签名 · 若 isSubgraph?: boolean 则 node?.isSubgraph 已正确处理 undefined
L394 useChainMiniNodes(orderedModules) 调用与 mini-node 模板 v-for 数据源不一致 F1 已落地 chainMiniNodes 派生且模板 v-for 引用 · 本 hotfix 不动 L394 · onMiniNodeClickWithDelay 通过 chainMiniNodes.value.find 查找 isSubgraph(参考 L483 同模式)· 数据源一致
Step 3 注释 "(LEFT 6 + RIGHT 7 = 13 项)" 不存在(F2 落地未改注释) grep 命中则改 · 不命中则跳过 · 不强制
useSubgraphList.spec.ts 删除导致全测试基线减 127 行 · CI 误报"测试减少" commit message 明确说明 · CI 看测试通过率而非绝对数 · vitest +2 新 case 补回
单击不响应可能违反"用户期望子图节点 hover/keyboard 焦点"(无障碍) Step 1 仅在 onMiniNodeClickWithDelay 内 isSubgraph 早 return · hover/focus/CSS 视觉反馈不变 · tooltip 仍正常 · 仅 click 业务行为不响应
ClaudeA 排队膨胀(本 0.2d + F8 ADR-15 0.5d 收尾 + F2-R1 1.0d + F3-R1 1.5d 共 ~2.2d 串行+并行) F2-R1+F3-R1 文件正交并行 max=1.5d · 实际队列 0.2 + 0.5 + 1.5 = 2.2d · 用户已知排期(DASHBOARD §推荐第 3 条)

历史

时间 事件 hash
2026-06-15 17:22 dispatched(用户 16:45 accept ADR-AIOS-25-R1 + 启用 .clinerules v3.0 终极极简 · 17:22 start P3.UA25R1.F1 关键路径起点 · combo hotfix 0.2d · 解锁 F2-R1+F3-R1 文件正交并行 max=1.5d)