-
用户在 FK 选择器里点中某一行后,前端把该行 id 随保存回传(form/submit 与 preview/save 均加 boundIds:字段技术名→id),normalize 有 id 时直接绑定、 不按名称反查——候选的权限/租户/级联判定以 ERP 的下拉配置为准。 未经选择、仅凭名称(AI 预填或手打)的路径不变,仍保持同名 fail-closed。 幻影列硬闸在 id 直绑路径上同样生效。 回归锁 +2(FormRenderNormalizeTest 8 例),46 单测绿。 实测:同名产品不给 id → 报同名拒绝;给 id → 精确绑定、ERP 执行 success+200, 落库 BJD202607092 的客户/产品 id 与点中行一致。
-
…expired key; preview save name-keyed + empty=abandon-change; previewId atomic claim; transactional batch queue + column truncation; digest zone token-budgeted; window-orphan tool_result trim; convId length cap; readFormData authoritative moduleId + /form/options permission gate (security audit); WRITE_CLAIM state-statement lookahead
-
…e shared kernel + PreviewService (previewId Redis binding, save-side re-validation, state legality checks) + queue-only OpService (sMakePerson dual-write, status=confirmed); retire ProposeWriteTool/OpController/AuditService/ErpClient writes; preview card frontend; skills/prompt/bench sync; D: checkBusinessData stub behind erp.dry-run.enabled