Repository navigation
Commit de75b32
committed
docs(app-shell): the flow canvas draft node becomes a real
The "Visual flow canvas" jsonc draft taught `{ "id": "email", "type":
"action", ... }`. `action` is not a flow node kind: it is absent from
`FlowNodeAction` (objectstack `packages/spec/src/automation/flow.zod.ts`,
20 members) and from the canvas's own 18-entry `NODE_PALETTE`, so a reader
copying the draft has the node refused when the type is checked against the
live action registry at `registerFlow()`.
`notify` is the replacement the spec itself names for the retired
`email`/`slack` dispatch branches (flow.zod.ts:38-45). `script`, the other
candidate, disqualifies itself: its `config.function` is REQUIRED, and this
draft node carries no `config` at all.
`notify` turns out to have required config too, so the one-word change alone
would have swapped one refusal for another: `NotifyConfigSchema` declares
`recipients` non-optional (io-node-config.zod.ts:186) and its superRefine
(:261, message at :299) refuses a node carrying neither `title` nor
`template`. The executor parses `node.config ?? {}` through that contract at
execute time (notify-node.ts:250, parse-config.ts:99), so a config-less
`notify` node is refused. The draft therefore gains exactly those two keys
and nothing else.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01611D6ZaRaMmwTNQmSbk8MHnotify node1 parent a810bb2 commit de75b32
1 file changed
Lines changed: 2 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
392 | 392 | | |
393 | 393 | | |
394 | 394 | | |
395 | | - | |
| 395 | + | |
| 396 | + | |
396 | 397 | | |
397 | 398 | | |
398 | 399 | | |
| |||
0 commit comments