Skip to content

Commit 13375eb

Browse files
committed
docs(automation): flows.mdx 的节点 type 校验时机改为两阶段描述 (#4771)
表格原文说节点 type「is checked against the live action registry at `registerFlow()`」。本 PR 之后这句不再为真:启动期注册的 flow 在词汇表封闭 (所有插件 start() 完毕)时统一校验,封闭之后的注册才回到即时校验。顺带写明 这条检查是 warn 而非拒绝,以及执行时的 NO_EXECUTOR 后果。 同文件其余提到 `registerFlow()` 的句子(config 键、条件表达式、ADR-0031 区域) 描述的是没有改动的校验,保持原样。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015Br2xsJsczFsTR9bvbh2Ny
1 parent dfbcaec commit 13375eb

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

‎content/docs/automation/flows.mdx‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ Each node performs a specific action in the flow.
137137
| Property | Type | Required | Description |
138138
| :--- | :--- | :--- | :--- |
139139
| `id` | `string` | ✅ | Unique node identifier |
140-
| `type` | `string` | ✅ | Node type — a built-in id from the table above **or** a plugin-registered one. Per ADR-0018 the spec does not gate this with a closed enum; it is checked against the live action registry at `registerFlow()` |
140+
| `type` | `string` | ✅ | Node type — a built-in id from the table above **or** a plugin-registered one. Per ADR-0018 the spec does not gate this with a closed enum; it is checked against the live action registry once that registry is complete — plugins contribute node types while they start, so flows registered during boot are checked in one pass when the vocabulary closes (all plugins started), and anything registered after that (Studio publish, dev reload) is checked immediately. Unknown types warn, never reject; executing one fails with `NO_EXECUTOR` |
141141
| `label` | `string` | ✅ | Display label |
142142
| `config` | `object` | optional | Type-specific configuration — the registered executor's `configSchema` owns its shape. Keys that schema does not declare are rejected at `registerFlow()`, and the built-in executors `parse()` the value against their Zod contract before running (#4277) |
143143
| `connectorConfig` | `object` | optional | `{ connectorId, actionId, input }` for a `connector_action` node |

0 commit comments

Comments
 (0)