Skip to content

ui(pages): Retire classic run pages and open runs on the workflow page - #25

Open
SCcagg5 wants to merge 8 commits into
stack/24-ui20from
stack/25-ui22
Open

SCcagg5 wants to merge 8 commits into
stack/24-ui20from
stack/25-ui22

Conversation

@SCcagg5

@SCcagg5 SCcagg5 commented Oct 28, 2026 •

Copy link
Copy Markdown
Owner

Part of a stack of 31 pull requests that depend on each other. They must be reviewed and merged in order: each PR builds on the previous one and its diff only contains its own changes.

All PRs of the stack
# PR
1 specs: Add spec 083 and the samples store
2 ir: Add run state fields for ephemeral runs and reused outputs
3 runtime: Bound continuous steps and carry outputs of selected steps
4 api: Add step samples, events, availability and selected-step runs
5 test(ui): add YAML fixtures for the document model tests
6 ui(lib): add shared UI kit, status helpers and right-panel shell
7 ui(canvas): add canvas engine core, toolbars and editor helpers
8 ui(i18n): add workspace message catalogs, first batch
9 ui(canvas): add canvas Flow view, step run panel and workflow panel
10 ui(editor): add YAML document model, canvas model and run source logic
11 ui(editor): Add edit session, YAML format and quick fixes, run actions, tab strip
12 ui(editor): Add canvas graph model, Add step panel, issues popover, run bar
13 ui(canvas): Add layered layout, dependency edges, status styles, reference picker
14 ui(canvas): Add export, flow builder, upstream data panel, output capture
15 ui(canvas): Add node cards, launchers, inspector sections, client issues
16 ui(editor): Add visual editor, step inspector and YAML file panel
17 ui(lists): Open runs on the workflow page; add tab and schedule helpers
18 ui(workspace): Add workspace URL state, legacy redirects and run list links
19 ui(workspace): Add workspace data layer, run facts and Workflow panel
20 ui(workspace): Add run start controls, visible runs and reuse source
21 ui(workspace): Add data provider, bar identity, continuous panel and step list
22 ui(logs): Add run actions cluster, cached logs and log popout page
23 ui(workspace): Add Activity dock, step run view and workflow page
24 test(workspace): Add integration tests for the workspace shell and step view
25 ui(pages): Retire classic run pages and open runs on the workflow page
26 test(editor): Add integration tests for the editor, inspector and run overlay
27 test(ui): Add repository-wide guard tests and ESLint boundary rules
28 e2e: Add workspace helpers and fixtures, update existing specs
29 e2e: Add workspace specs, part 1 of 2
30 e2e: Add workspace specs, part 2 of 2
31 examples: Add the workspace demo workflows

Stack 25/31. Base branch: stack/24-ui20. Review and merge in order; this PR builds on the previous one.
Size: 60 files changed, 7977 insertions(+), 2704 deletions(-).
Checked: Typecheck (tsc) of the whole UI and the unit tests of this PR (Vitest), on top of the previous PR.

Summary

This PR removes the classic run screens that the workspace replaces. Links from the workflow list, the cockpit, the wiki and the history now open the workflow page. The route /dag-runs/:name/:dagRunId goes to LegacyRunRedirect. It also adds the tests for the page, the inspector and the canvas host.

Why

After PR 23 the workspace is the page of a workflow, but the old run modal, run panel and run page still exist. This PR deletes them and points every entry at the workspace. PR 26 adds editor integration tests. PR 27 adds the guard tests that check, for the whole tree, that no code reaches the removed screens again.

Changes

60 files: 28 modified, 18 new (one component, two fixture files, 15 tests), 14 deleted.

  • Routing: App.tsx uses RouteFallback, which shows WorkspaceLoading while a workflow page chunk loads, and routes old run URLs to LegacyRunRedirect.
  • Links to the page: BucketKanbanList.tsx (opens the run, on the Artifacts dock when the run has artifacts), DaguRunBlock.tsx (wiki), DAGTable.tsx (name is a real link built with buildDAGPageURL and useOpenPage), HistoryTableRow.tsx.
  • New dag-list/ScheduleSummary.tsx (ScheduleLine) replaces the schedule code in DAGTable.tsx.
  • HistoryTable.tsx: narrow run columns with a vertical start time.
  • mermaid-block.tsx loads Mermaid with a dynamic import on the first diagram.
  • pages/index.tsx and license/ConnectSection.tsx use the shared useClock hook in place of their own timers.
  • Small edits: toast.tsx transition, TabBar.tsx, wiki editor files, SchemaDocSidebar.tsx, useLicenseConnect.ts.
  • Deleted: DAGRunDetailsModal, DAGRunDetailsPanel, pages/dag-runs/dag-run/index.tsx, DAGHeader, DAGDefinition, DAGErrorSnackBar, DAGSpecErrors, reload-button.tsx, formatAutoRetryStatusLabel.ts, dags/lib/statusTabs.ts, and their tests.

How to review

  1. App.tsx and pages/dag-runs/LegacyRunRedirect.tsx.
  2. DAGTable.tsx with ScheduleSummary.tsx.
  3. The deleted files, to check for leftover imports.
  4. BucketKanbanList.tsx, DaguRunBlock.tsx, HistoryTableRow.tsx.
  5. mermaid-block.tsx.

Most attention: the redirect of old run URLs, and the dynamic load of Mermaid (a failed load is not cached).

Tests

  • Rewritten: DAGSpec.test.tsx (about 1300 lines changed), pages/dags/dag/__tests__/index.test.tsx, DAGTable.test.tsx, BucketKanbanList.test.tsx, DAGStatus.test.tsx, NodeStatusTableRow.test.tsx, SubRunStackModal.test.tsx, TimelineChart.test.tsx.
  • New: DAGSpec.hosted.test.tsx, DAGExecutionHistory.test.tsx, HistoryTable.test.tsx, ScheduleSummary.test.tsx, mermaid-block.test.tsx, WorkspaceCanvas.test.tsx, WorkspaceCanvas.notices.test.tsx, shared visual-editor/testing/fixtures.ts.
  • New inspector tests: ActionPicker, FieldIssues, StepInspector, TextField, issues, paramsForm, sections, uiSchema.

Screenshots

The workflow list now links to the workflow page.

Workflow list

Workflow page

This was referenced Oct 28, 2026
@yohamta0
yohamta0 force-pushed the stack/25-ui22 branch 2 times, most recently from d1f9c7d to c13555d Compare October 29, 2026 13:21
@yohamta0
yohamta0 force-pushed the stack/24-ui20 branch 2 times, most recently from b73208c to b30096f Compare October 30, 2026 06:44
@yohamta0
yohamta0 force-pushed the stack/25-ui22 branch 2 times, most recently from a60260d to 5b56b0f Compare October 30, 2026 11:03
@yohamta0
yohamta0 force-pushed the stack/24-ui20 branch 2 times, most recently from 2c726bb to 72ff7b4 Compare October 30, 2026 11:47
@yohamta0
yohamta0 force-pushed the stack/25-ui22 branch 2 times, most recently from c2bbdad to bc9c90e Compare October 31, 2026 05:37
@yohamta0
yohamta0 force-pushed the stack/25-ui22 branch 2 times, most recently from 01b3027 to 891d5a6 Compare October 31, 2026 09:21
SCcagg5 and others added 8 commits October 31, 2026 19:45
…ep view (dagucloud#3404)

* UI: integration tests of the editor
* Expect runs to open on the workflow page in E2E
* Wait for the URL in the step run action tests
* Cover run chip and reused-inputs fixes in tests
* Tighten the workspace tests that could not fail
* Cover sub-run links and run view fixes in tests
* Clear the refresh feedback timer on unmount
* Test the progress text of the run details
* Test reused and waiting steps in step facts
* Test draft steps and foreach logs in step runs
Two fixes of earlier PRs build issue maps without a prototype, and
their tests belong to files that this PR adds:

- stepIssues groups an issue of a field named `constructor` under that
  field instead of failing on the inherited member.
- issuesToErrorSchema keeps a `__proto__` field as a key of its own,
  so an issue path cannot write to Object.prototype.
Notifications and incidents still link to the old run page with
?subDAGRunId. The redirect opened the root run and applied the step of
the sub-run to it. It now passes the sub-run as ?subRun, so the
workflow page opens the sub-run over its root run with that step.

The old run page did not check the workspace scope. A run link of a
workflow labelled with another workspace than the one of the app bar
ended at "not in the selected workspace" with only a way back. The
page now also offers the workflow in its own workspace.

A click in the schedule list of a workflow row reached the row through
the tooltip portal and opened the workflow. The list now keeps its
clicks.

Tests cover a run link of a deleted workflow through the redirect, and
the empty action search checks that Enter picks nothing.
The parameters form keeps a shown field named __proto__, and the
action search and text fields ignore Enter and Escape while an input
method composes. Both test fixes from earlier in the stack, whose
test files start here.
A failed Mermaid load or render replaced the render container with
the source fallback, so a later code change on the same block found
no container and kept the fallback. The container now stays mounted
under the fallback.

The "View run" link of a dagu-run block named the workflow by its DAG
name, which differs from its file name when the YAML sets name:. It
now uses the file name from the lookup.

Kanban cards dropped the click event before useOpenPage, so Ctrl or
Cmd click navigated the current tab. The cockpit and saved-view
boards now pass the event through and open such clicks in a new tab.
A link to /dag-runs/<name>/latest dropped the run, so a DAG named
apart from its file had no run to find the file with and showed
Workflow not found. The redirect now names the latest run by its ID.

The old tab of a sub-run link landed on the dock of the root run. It
belongs to the sub-run, so the root keeps its default tab.

The workflow list computed a next run from the cron expression when
the server gave none. The server leaves it out on purpose, as while
the scheduler is paused, so the list showed a run that would not fire.
It now shows no upcoming run then.
The link selects all workspaces in the app bar as well as opening
the workflow. Only this harness sets the app-bar workspace.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants