Repository navigation
Conversation
This was referenced Oct 28, 2026
This was referenced Oct 28, 2026
yohamta0
force-pushed
the
stack/11-ui06
branch
from
October 29, 2026 09:21
a985379 to
731a3b7
Compare
yohamta0
force-pushed
the
stack/10-ui05
branch
2 times, most recently
from
October 29, 2026 12:58
3cf638c to
52bd253
Compare
yohamta0
force-pushed
the
stack/11-ui06
branch
from
October 29, 2026 12:58
731a3b7 to
09e506e
Compare
yohamta0
force-pushed
the
stack/10-ui05
branch
from
October 30, 2026 06:44
52bd253 to
d2d9c5a
Compare
yohamta0
force-pushed
the
stack/11-ui06
branch
2 times, most recently
from
October 30, 2026 08:43
39da1eb to
dc398f0
Compare
yohamta0
force-pushed
the
stack/10-ui05
branch
2 times, most recently
from
October 31, 2026 04:50
f8d973a to
a7dc42b
Compare
yohamta0
force-pushed
the
stack/11-ui06
branch
2 times, most recently
from
October 31, 2026 05:37
6188c7e to
e4ac932
Compare
yohamta0
force-pushed
the
stack/10-ui05
branch
from
October 31, 2026 09:21
a73d293 to
95d9a7a
Compare
yohamta0
force-pushed
the
stack/11-ui06
branch
from
October 31, 2026 09:21
e4ac932 to
3ddec57
Compare
yohamta0
force-pushed
the
stack/10-ui05
branch
from
October 31, 2026 10:38
95d9a7a to
cc7b1ea
Compare
dagucloud#3390) * UI: visual-editor/doc, visual-editor/canvas, visual-editor/run * Fix schedule, name and reuse edge cases * Read quoted workflow defaults as plain params * Fix schedule, chain diff and step reference edits
formatYaml and formatStepRange threw "Unresolved alias" when the canonical key order put an alias before its anchor, which breaks the page that calls them during render. Both now leave such a text alone. formatYaml also cut the kept line ends of a `|+` block scalar at the end of the text; formatStepRange cut them at the end of a step and blanked lines of spaces inside block scalars. isSameYaml compared comments as one flat list, so a comment moved to another node was no change and the edit could not be saved. Comments are now keyed by the path of the node that holds them, with the head and tail of the document normalized. Integers beyond 2^53 are read exactly, so an edit of one counts as a change and the formatter keeps its value. Duplicating a handler pasted it as a root step that runs on every run; it is refused now. The node view orders steps by inferred dependencies too, the id quick fix no longer takes another step's id, the saved baseline of a step matches by id and name before position, and the error tree of the params form no longer writes to Object.prototype.
An action namespace or name segment such as `constructor` or `__proto__` found an inherited member of the icon and acronym tables: the canvas got a function that is no icon, and the action title showed the source of Object. Only own keys of the tables count now. splitWithValue wrote a shown field named `__proto__` into a plain object, which set its prototype and lost the value. The form data has no prototype now, as the error tree of the form already has. In the narrow sheet, the Parameters and YAML tabs point at the center pane, which had no tabpanel role. The pane is now their tab panel and takes its name from the selected tab.
isSameYaml threw on an alias without its anchor. The text parses, but
toJS has no value for the alias, so the dirty check of the editor
crashed. Such a text is now compared as text.
Format step put a step inside a flow collection, such as
`steps: [{name: a, run: x}]`, in block style between the brackets,
which is not valid YAML. A step in a flow collection is now left as it
is.
Copy and paste read integers as floats, so 9007199254740993 became
9007199254740992. The server reads them exactly, and the clipboard now
does too.
Paste compared names and ids as written, but the server trims them. A
copy of a step named "task " kept that name, and the server refused
two steps named task. The comparison now trims.
A step run that reuses the outputs of a run whose id starts with '_'
or '-' failed with 400, because the server refuses such a label value.
That run gets no outputs-from label; the request still names it.
yohamta0
force-pushed
the
stack/11-ui06
branch
from
October 31, 2026 10:39
3ddec57 to
ade3afa
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 base logic of the editor that later PRs build on. It gives a YAML format and compare module, quick fixes, clipboard operations, an edit session hook, run request helpers, canvas types and bundles, and the node details frame (NDV). It adds 41 new files and changes no existing file.
Why
The canvas, the inspector and the workspace all need one model of the DAG text and one way to start a run. This PR gives them. It follows PR 10 (doc model and canvas base) and comes before PR 12 (canvas graph, YAML tokenizer, run bar) and PR 13 to PR 16, which use these modules. Most items have no page yet.
Changes
components/ui/tab-strip.tsx(tab strip),components/ui/repeat-badge.tsx(badge for the repeat policy of a step).dag-editor/NodeDetailsFrame.tsx(frame for the YAML and form of a step) anddag-editor/stepOrder.ts(step names in execution order, handlers last).visual-editor/doc):format.ts(semantic compare and canonical format of YAML),quickFixes.ts(one-click fixes as minimal text edits),ops/clipboard.ts(copy, cut and paste of steps),issueMessages.ts.useEditSession.ts,useDocModel.ts,stepBaseline.ts(rename or edit against the saved text),editMessages.ts.visual-editor/canvas):types.ts,bundles.ts(edge bundling),contextMenuItems.ts,icons.ts,useCanvasDirection.ts(one shared layout direction),EmptyCanvasTile.tsx,agentRunContext.ts.visual-editor/run):runRequests.ts,runOverlay.ts,useEditorRunActions.ts.inspector/actionText.ts,paramsForm.ts,types.ts;references/candidates.ts;launchers/LauncherData.tsx.How to review
doc/format.tsanddoc/quickFixes.ts, with their tests.useEditSession.tsandstepBaseline.ts.run/runRequests.ts,runOverlay.tsanduseEditorRunActions.ts.canvas/bundles.tsandcontextMenuItems.ts.NodeDetailsFrame.tsxandtab-strip.tsx.Most attention: the semantic compare in
format.ts(a wrong "same text" result hides real changes), and the geometry rules inNodeDetailsFrame.tsx.Tests
doc/__tests__/format.test.ts,quickFixes.test.ts: compare, canonical format and fix edits.canvas/__tests__/contextMenuItems.test.ts,icons.test.ts,neighbours.test.ts,useCanvasDirection.test.ts.run/__tests__/runRequests.test.ts,useEditorRunActions.test.ts.dag-editor/__tests__/NodeDetailsFrame.geometry.test.tsx;components/ui/__tests__/tab-strip.test.tsx.visual-editor/__tests__/stepBaseline.test.ts;inspector/__tests__/actionText.test.ts(withflowHarness.tsx);hooks/__tests__/useContentEditor.semantic.test.ts.Screenshots
These components are used by PR 16 and later PRs; the screenshot shows the node details frame in the final UI.