Repository navigation
Conversation
This was referenced Oct 28, 2026
This was referenced Oct 28, 2026
yohamta0
force-pushed
the
stack/14-ui09
branch
from
October 29, 2026 09:21
66986e2 to
b0e128e
Compare
yohamta0
force-pushed
the
stack/15-ui10
branch
4 times, most recently
from
October 29, 2026 12:58
9da0214 to
9f6d7fa
Compare
yohamta0
force-pushed
the
stack/14-ui09
branch
from
October 30, 2026 06:44
27cc391 to
82c5800
Compare
yohamta0
force-pushed
the
stack/15-ui10
branch
2 times, most recently
from
October 30, 2026 08:43
c1c10d4 to
8407507
Compare
yohamta0
force-pushed
the
stack/14-ui09
branch
from
October 31, 2026 04:50
009ca84 to
c9eaa9b
Compare
yohamta0
force-pushed
the
stack/15-ui10
branch
3 times, most recently
from
October 31, 2026 09:21
77381f2 to
a14a0b7
Compare
yohamta0
force-pushed
the
stack/14-ui09
branch
from
October 31, 2026 10:40
477917c to
2b6681c
Compare
…ture (dagucloud#3394) * UI: visual-editor/run, visual-editor/references, visual-editor/canvas * Keep step hashes complete and fix run views * Cover the placeholder route name in tests * Check the with block of run steps in the editor * Fix step cache hashes, captures and run views
The card reset its Copied state with a bare timeout that outlived the card. The new copy test made the timer fire after the test environment was gone, which failed the run. Use useCopyFeedback, which clears its timer.
The tab reports a shown secret from an effect, which can run after the secret text is on screen. Wait for the report instead of checking it right after the text appears.
The delivery link of the public webhook card now opens the workflow by
its file name: the /dags/{fileName} page cannot find a DAG whose name
differs from its file.
The router node lets a hover reach its label, expression, badges and
route patterns, so their titles show. The overlay stays click-through
over the handles.
A Monaco field reads readOnly when it blurs, not at mount, so a field
that becomes read-only does not commit its draft.
A command step that becomes an action loses its command and script
keys as well as run. The server rejects a step with both.
The Cron panel refuses a row edit to an expression of another row, as
Add does. Remove schedule shows only with start expressions and removes
only those, since the other entries are edited in YAML.
The Cron launcher panel listed the next runs of an expression in the time zone of the browser, while the scheduler fires in its own zone. A user whose browser is in another zone saw wrong times. The panel now reads the expression in the configured server time zone, and a test pins the preview for a zone that differs from the browser's.
Enter that confirms an input method's text also committed the field: the action search picked an entry, a step name or other text field committed half-typed text, and the output and cron inputs added or saved an entry. Escape that cancels a composition also reset the draft. Skip these keys while the native event is composing, as the other editor inputs already do. WebhookTab now reports the secret as gone when it unmounts while one shows, so the host guard does not keep a stale risk and prompt about a secret that is no longer on screen. The cards' own visibility callback had no caller and duplicated the tab's report, so it goes.
Several editor edits produced YAML that the server rejects, and the client checks reported errors for valid files. - The shell select wrote a top-level shell next to run; run takes its shell in with.shell. A script-only step showed an empty command and an edit added run next to script. - Turning a command step with shell settings in with into an action kept that with and skipped the action template. It now asks before it replaces with, as an action change does. - The YAML of a map-form step or a handler included its key, so Apply nested the step under itself. A step with an alias to an anchor elsewhere in the DAG threw on Apply. - Removing the last output left outputs: [], and an eval precondition showed as an empty editable condition that added condition next to eval. - The client checks flagged generated names other than cmd_N, step references in YAML comments and in foreach bodies, and the same name in two handlers, which the server takes from the event.
yohamta0
force-pushed
the
stack/15-ui10
branch
from
October 31, 2026 10:40
a14a0b7 to
958c681
Compare
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.
All PRs of the stack
Summary
This PR adds the node cards of the canvas (step, router, agent, tool, handler, ghost), the launcher node, edge and panel, and the inspector sections and fields. It also adds client-side issue checks and a profiles hook. It adds 36 new files and changes 8 existing ones: the webhook cards now read profiles through the new hook.
Why
The canvas needs cards to show steps, and the inspector needs forms to edit them. This PR follows PR 14 (flow, export, upstream data) and uses the layout of PR 13. PR 16 puts the cards, sections and the editor together.
Changes
canvas/nodes):StepNode.tsx,RouterNode.tsx,AgentNode.tsx,ToolNode.tsx,HandlerNode.tsx,GhostNode.tsx,NodeParts.tsx(shared parts),index.ts.LauncherNode.tsx,LauncherEdge.tsx,LauncherPanel.tsx.Action.tsx,General.tsx,RunEditor.tsx,StepYaml.tsx,flow/Outputs.tsx,Preconditions.tsx,Timing.tsx; fieldsActionPicker.tsx,TextField.tsx,MonacoField.tsx,MonacoFieldEditor.tsx,catalogSearch.ts,stepYamlText.ts.doc/clientIssues.ts(issue checks in the browser);references/DeclaredOutputsPanel.tsx;hooks/useStepElapsed.ts.dags/hooks/useProfiles.ts;WebhookProfileSelectionCard.tsxuses it in place of its own state;WebhookTab.tsxgets anonSecretVisibleChangeprop; small edits inWebhookPublicURLCard.tsxandWebhookProfileTokensCard.tsx.How to review
canvas/nodes/NodeParts.tsx, thenStepNode.tsx.launchers/LauncherPanel.tsx.inspector/sections/Action.tsxandRunEditor.tsx.doc/clientIssues.ts.useProfiles.ts.Most attention:
NodeParts.tsx(status, counts and toolbars shared by all cards), and the webhook change, which is the only edit of existing behaviour.Tests
canvas/__tests__/nodes.test.tsx(about 2100 lines),stalks.test.tsx.doc/__tests__/clientIssues.test.ts.inspector/__tests__/MonacoField.test.tsx,MonacoFieldLoad.test.tsx(withmonacoMock.tsx).WebhookTab.test.tsx,WebhookProfileSelectionCard.test.tsx,WebhookProfileTokensCard.test.tsx,WebhookPublicURLCard.test.tsx.Screenshots
The cards are used by PR 16 and later PRs; the screenshots show them in the final UI.