feat(flow-designer)!: the script node authors a function call, and nothing else (framework#4343) - #3170
Merged
Conversation
…thing else (framework#4343) framework#4343 retired the `script` node's other dispatch branches because none of them ran: `actionType: 'email' | 'slack'` were logger-backed stubs that wrote a log line, reported success and delivered nothing under any configuration — with `template` / `recipients` / `variables` addressing a message no channel sent — inline `config.script` was recognized and never executed (no server-side JS sandbox), and any other `actionType` was a second spelling of `function`. The panel follows: `Function` (required), `Inputs` and `Output variable` are offered unconditionally, since there is no action type left to gate them behind. All five retired keys keep a legacy render-only field labelled `(retired)` with its replacement in the help text, so a stored node still shows everything it carries — the rule this group already followed for the `code` / `sms` / `notification` action types #3099 dropped. The canvas subtitle leads with the function name (falling back to the retired keys so an unmigrated node is never blank), and the simulator says what a retired branch actually did instead of pretending it mocked a notification. The reconciliation ledger spans the spec bump: on a spec that still publishes the branches it asserts only that the form offers nothing the executor ignores; on the spec that retires them — `SCRIPT_BUILTIN_ACTION_TYPES` disappearing is the discriminator — the full bidirectional comparison arms itself. Verified against a locally built framework spec: the converged panel reconciles clean both ways. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Ct9NXp2JumjKuARtQnrbPf
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
objectstack-ai/objectstack#4343 的 objectui 半边(framework 侧:objectstack-ai/objectstack#4516)。
问题
script节点的表单提供四种分发形态,而只有一种会运行:Action type: Email / SlackTemplate/Recipients/Template variablesCodeCall function+Inputs+Output variable#3099 已经修掉了「表单提供的选项跑起来必然失败」那一层(
sms/notification/code),但仍然把两个 stub 当作一等公民授权。framework#4343 把这五个键整体退役,表单跟进。改动
script组收敛为函数路径:Function(必需)/Inputs/Output variable,无条件展示——已经没有 action type 可以用来 gate 它们了。__legacy__门,永不匹配 ⇒ 永不被「提供」),标签加(retired),help 文案各自点名替代机制。存量节点仍然显示它携带的一切——这正是 feat(flow-designer): the script node's form authors what the executor runs (framework#4278) #3099 处理code/sms/notification时立下的规矩。notify节点(经 messaging 服务:默认站内收件箱,装了@objectstack/plugin-email后走真实邮件);Slack →connector_action(Slack connector)或httpwebhook(notify没有 slack channel);内联逻辑 → 注册函数。存量元数据由os migrate meta --from 16改写,简写actionType会被搬进function。跨仓对账测试跨越 spec 升版
flow-node-config.spec-reconciliation.test.ts现在两态都有断言,判别依据是SCRIPT_BUILTIN_ACTION_TYPES是否还存在(framework#4343 连同它描述的分支一起删除了这个常量):zodKeys()本来就过滤[REMOVED]墓碑,契约自动收敛为三键,完整双向对账自动激活。验证
type-check29/29;改动文件 eslint 零告警。@objectstack/spec临时指向本地构建的 framework worktree(即 #4516 的 spec)后重跑对账测试——收敛后的面板双向对账干净,SPEC_PREDATES_SCRIPT_CONVERGENCE分支正确跳过。这条验证很关键,因为当前安装的17.0.0-rc.0早于 framework#4278,该套件今天整体 skip,不实测就等于没验。Related
script的 config 契约要接入 #4277 的执行期 parse,先得有判别式(actionType)形态 objectstack#4343 —— 本体 issuescriptto a function call and parse script/subflow config at execute time (#4343) objectstack#4516 —— framework 半边(退役 + 执行期 parse + D2 conversion)wait表单仍提供已退役的waitEventConfig.timeoutMs/.onTimeout—— 下一次 spec rc 刷新会被对账测试点名 #3101 ——wait面板的退役字段跟进🤖 Generated with Claude Code
https://claude.ai/code/session_01Ct9NXp2JumjKuARtQnrbPf
Generated by Claude Code