Repository navigation
Conversation
This was referenced Oct 28, 2026
yohamta0
force-pushed
the
stack/26-ui23
branch
from
October 29, 2026 12:58
1c01457 to
fd587da
Compare
yohamta0
force-pushed
the
stack/27-ui26
branch
from
October 29, 2026 12:58
24cb68a to
285c7b6
Compare
yohamta0
force-pushed
the
stack/26-ui23
branch
from
October 29, 2026 13:21
fd587da to
bb57727
Compare
yohamta0
force-pushed
the
stack/27-ui26
branch
2 times, most recently
from
October 30, 2026 06:44
13f312d to
96f363d
Compare
yohamta0
force-pushed
the
stack/26-ui23
branch
2 times, most recently
from
October 30, 2026 08:07
5fc3766 to
e67674f
Compare
yohamta0
force-pushed
the
stack/27-ui26
branch
from
October 30, 2026 08:07
96f363d to
6bbfca0
Compare
yohamta0
force-pushed
the
stack/26-ui23
branch
from
October 30, 2026 08:43
e67674f to
d71c961
Compare
yohamta0
force-pushed
the
stack/27-ui26
branch
2 times, most recently
from
October 30, 2026 11:03
d112f22 to
f4d7a13
Compare
yohamta0
force-pushed
the
stack/26-ui23
branch
2 times, most recently
from
October 30, 2026 11:47
1d70972 to
a5233fe
Compare
yohamta0
force-pushed
the
stack/27-ui26
branch
from
October 30, 2026 11:47
f4d7a13 to
6e3a0c3
Compare
yohamta0
force-pushed
the
stack/26-ui23
branch
from
October 31, 2026 04:50
a5233fe to
a100408
Compare
yohamta0
force-pushed
the
stack/27-ui26
branch
from
October 31, 2026 04:50
6e3a0c3 to
32980e1
Compare
yohamta0
force-pushed
the
stack/26-ui23
branch
from
October 31, 2026 05:37
a100408 to
3aa5d62
Compare
yohamta0
force-pushed
the
stack/27-ui26
branch
2 times, most recently
from
October 31, 2026 06:28
31f817e to
e37029c
Compare
yohamta0
force-pushed
the
stack/26-ui23
branch
from
October 31, 2026 09:21
28e69ea to
7befd74
Compare
yohamta0
force-pushed
the
stack/27-ui26
branch
from
October 31, 2026 09:21
e37029c to
5a464b4
Compare
yohamta0
force-pushed
the
stack/26-ui23
branch
from
October 31, 2026 10:46
7befd74 to
4ff951c
Compare
… overlay (dagucloud#3406) * UI: integration tests of the workspace * Cover fixes of earlier PRs in tests * Keep integration tests independent of order * Test run with checks and IME keys in outputs * Test the server steps of an unparsed YAML * Test route edits, step labels and output cycles * Test a step inserted on an inferred edge * Test continue_on, step cache and inspector fixes * Assert the step drawer closes in StepRunPanel test
An earlier PR makes duplicateStepsOp refuse a handler: a copy of a handler lands in steps and would run on every run instead of on its event. The clipboard test still expected the copy to be appended as a step, so it failed. The case now expects the refusal.
Several guards let a violation through, or never ran on real code: - Frontend CI also runs when the YAML corpora of the golden test change, so a Go-only or examples-only change cannot break the next UI change. The corpus test now needs at least one file per folder and drops specs/, which holds no YAML files. - A new test lints the real files of the three guarded folders, because CI has no UI lint step and the rule tests lint only probes. - The guard rules also catch navigator['clipboard'], a clipboard taken from navigator by destructuring, and a literal in a branch of a showToast or showError argument. YAMLMap.from, YAMLSeq.from and Iterator.from are no longer flagged as relative time. - The i18n scanner reads string literals in JSX child expressions and the operands of +. The 'ERR' stream tag of the cached logs is marked as not a message. - The Monaco chunk guard reads double-quoted imports and re-exports. - The raw count guard catches a count with a fallback such as ?? 0. - The clipboard undo test goes through applyWith as the editor does, and the issue tests cover CRLF text. - The UI guide uses theme tokens instead of slate classes, which the status token test rejects.
Renames match number and boolean scalars in depends, rewind and route targets, and step names and ids are trimmed as the server does. The test file for these fields starts here.
Pasted steps keep integers beyond float precision and rename a copy whose name or id differs only by outer spaces. The clipboard test file starts here.
Frontend CI now runs for more corpus paths. It joins the concurrency group that ci.yaml and conformance.yml use, so a new commit to a pull request cancels the run of the commit it replaces. The spec corpus of the golden test missed fenced yaml blocks in a file with CRLF line ends, which the rest of the test already accepts. The status token scan now covers the neutral and stone palettes and the gradient, shadow, outline, divide, decoration, accent and caret utilities, so those colours cannot slip past it. The Monaco guard counted an import whose bindings are all inline type bindings, which the bundler drops, as a static import of Monaco.
yohamta0
force-pushed
the
stack/27-ui26
branch
from
October 31, 2026 10:46
5a464b4 to
8e0ec35
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 guard tests that scan the source tree, and the ESLint rules that go with them. It adds the last document-model tests and starts
watchPageVisibility()at app start. It is the last UI PR of the stack.Why
The guards check rules for the whole UI: one shared clock, Monaco only in its chunk, no hard-coded text in JSX, shared status tokens, full i18n coverage and a page import boundary. They only pass once all earlier PRs (5 to 26) have landed, so they cannot be placed earlier. PR 28 onward adds e2e specs and examples.
Changes
20 files: 2 modified, 18 new.
ui/eslint.config.mjs: adds restricted imports and restricted syntax forworkflow-workspace,visual-editoranddag-editor. It blocks the DAG barrels and classic run view imports,reload-button,StatusDotfromcommon,formatDurationMs,fromNow,navigator.clipboard,toLocaleString, literal text inshowToastandfocus-visible:ring-primary. Test files are exempt.ui/src/index.tsx: callswatchPageVisibility()before render.How to review
eslint.config.mjs, theneslintBoundary.test.ts, which runs ESLint on probes.sharedClock,monacoChunk,noRawCount,statusTokens,jsxLiterals.boundary.test.ts,importBoundary.test.ts,i18nCoverage.test.ts,messages/modules.test.ts.doc/__tests__files.Most attention: the ESLint block structure. A flat config block replaces rule options, so each block repeats the shared list.
Tests
lib/__tests__/sharedClock.test.ts,monacoChunk.test.ts,noRawCount.test.ts;testing/__tests__/jsxLiterals.test.ts;workflow-workspace/__tests__/boundary.test.ts,eslintBoundary.test.ts,i18nCoverage.test.ts,statusTokens.test.ts;messages/__tests__/modules.test.ts;pages/dags/dag/__tests__/importBoundary.test.ts.doc/__tests__/clipboard,convert,depends,fields,golden(round-trip of 30 to 50 YAML fixtures),index,inspectorContract,issues.Screenshots
No visible UI change in this PR. The rules it guards show in the finished workspace, for example the status colours in the Activity timeline.