diff --git a/docs/superpowers/plans/2026-08-29-act-work-05-rewrite.md b/docs/superpowers/plans/2026-08-29-act-work-05-rewrite.md index 0e968b2..8cebebc 100644 --- a/docs/superpowers/plans/2026-08-29-act-work-05-rewrite.md +++ b/docs/superpowers/plans/2026-08-29-act-work-05-rewrite.md @@ -1758,6 +1758,51 @@ EOF --- +### Task 7b: 件① 补上「新建芯片类型」—— 空表加行这条路要先通 + +> **这一条是 2026-08-29 从 Task 7 的顾虑里立出来的**(控制端裁定)。Task 7 交付的件让人**从下拉里挑** +> 一个已有类型(`data-options` 现读),这条主路是通的;但 spec 明写的另一半 —— **人在这张件上新建一个类型 +> 并定下它的核心参数字段** —— 没做。它不是可选的: +> +> - spec `:37`:「人**选定/新建类型**后按一次保存,系统按该类型的字段清单把参数值的行铺出来」 +> - spec `:261`:提交时 `chip_type` / `type_param` / `profile` / `parameter` **四张一起**进正式表 +> - 用户原话里也点了名:「选择芯片类型(**或创建一个新类型 + 它的核心参数字段,每个带描述与软硬约束**)」 +> +> **为什么 Task 7 做不了**(诊断已由控制端核实,属实): +> `ViewContainer.addRow`(`packages/ui-kit/src/ViewContainer.tsx:303-306`)靠 +> `host.querySelector('tr:last-of-type')` 克隆最后一行,**零行时返回 `false`**; +> 而 `mine:parts.chip_type` / `mine:parts.type_param` 每单开局都是零行 —— 加行按钮到不了岸。 +> 顺带:平台在这件事上自相矛盾 —— `apps/api/src/app/routes/desk.ts:843` 那条空表闸的话是 +> 「**先在件上加一行**填好再提交」,教人做一件 UI 做不到的事。 + +**三条候选路,开工前先定哪一条**(各自的代价已初勘,但**都要自己复核**): + +① **件上摆字面量空白行**(不走 `data-rows`,直接写 `data-edit` + `data-col` 的行)—— + 零平台改动。已核实两条支撑机制存在:**空行不写**(`desk.ts:270` 一带,`filled.length > 0` 才落)、 + **`auto` 主键由基座续号**(`type_id` 声明 `auto`,不进表单)。 + **未解的坎**:`parts.type_param` 是复合主键(`type_id` + `param_name`),而新类型的 `type_id` + 要等 `chip_type` 那一行写下去才铸得出来 —— **跨行的自增键联动**基座目前是逐行铸的。先查这条通不通。 + +② **平台补「原型行」**:渲染器对零行的 `data-rows` 留一行隐藏原型(`