feat(studio): first-class notify flow node in the Studio palette + inspector#2808
Merged
Conversation
…spector
The notify flow node (ADR-0012 — outbound notification via the messaging
service) is a live built-in but Studio had no static palette entry or config
editor: fieldsForNodeType('notify') returned [], so it was only authorable by
hand-editing JSON or when the running engine published its descriptor
(framework#1878 / framework#1895).
- NODE_PALETTE gains notify (Integration) + Bell icon, integration tone,
canvas category, and a default-config seed (channels: ['inbox']).
- FLOW_NODE_CONFIG gains a notify entry mirroring the built-in descriptor:
recipients/channels (stringList), title, message (textarea), topic,
severity (select), and click-through target (sourceObject/sourceId/url),
all under node.config.
Closes the last item of the designer-authoring-gaps issue (framework#1895).
Unit + DOM tested; browser dogfood recommended before merge.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CMaDBhnZEUu1fcw8Rvo6Yq
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
…1895) End-to-end Studio render check mounting the real NodePalette (with the production NODE_PALETTE) and FlowNodeInspector: an author sees & picks `notify` from the Integration group, and its inspector renders the config fields (recipients/title/message/channels/topic/severity), writing edits back under node.config. Browser-DOM stand-in for a live dogfood. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01CMaDBhnZEUu1fcw8Rvo6Yq
Contributor
Author
|
Dogfood verification done (component-render + build). This session has no live-app browser tooling, so I verified against the strongest available substitute — mounting the real user-facing components, not fixtures:
Added as Generated by Claude Code |
Contributor
✅ Console Performance Budget
📦 Bundle Size Report
Size Limits
|
os-zhuang
marked this pull request as ready for review
July 24, 2026 15:17
3 tasks
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.
What
Closes the last item of the designer-authoring-gaps issue
objectstack-ai/objectstack#1895 (umbrella objectstack-ai/objectstack#1878): the
notifyflow node (ADR-0012 — outbound notification via the messaging service)is a live built-in with a server descriptor, but Studio had no static
palette entry or config editor.
fieldsForNodeType('notify')returned[], soit was only authorable by hand-editing JSON — or when the running engine
happened to publish its descriptor (
mergePalette). Now it's a first-class,offline-authorable node.
Changes (all in
@object-ui/app-shellStudio)NODE_PALETTE—notifyadded to the Integration group, with aBellicon (matching the descriptor's
icon: 'bell'), the integration tone/color,a canvas
getCategoryentry, and a default-config seed (channels: ['inbox'],empty
recipients).FLOW_NODE_CONFIG— anotifyfield set mirroring the built-in node'sserver descriptor (
service-automation/notify-node.tsconfigSchema):recipients/channels(stringList),title,message(textarea),topic,severity(select: info/warning/critical), and the click-throughtarget (
sourceObject/sourceId/url). All written undernode.config,matching the runtime.
Testing
flow-node-config.test.ts(+4 cases) — fields present, correct kinds/paths, severity options;
useFlowNodePalette.test.ts(+1) — notify is afirst-class Integration entry surviving an empty
mergePalette.regression — the inspector/canvas render
fieldsForNodeType+nodeIcon/nodeTonegenerically).type-checkgreen (app-shell + deps, 29 tasks).recommended before merge — the render paths are covered by DOM tests, but the
live authoring UX wasn't exercised in a real browser here.
Part of umbrella objectstack-ai/objectstack#1878.
🤖 Generated with Claude Code
Generated by Claude Code