stevqin opened a new pull request, #18648: URL: https://github.com/apache/dolphinscheduler/pull/18648
## Was this PR generated or assisted by AI? YES. OpenAI Codex assisted with the Gantt UI implementation, data-normalization tests, and this description. The UI was iterated with the contributor and verified in a local running DolphinScheduler instance. ## Purpose of the pull request Closes #18647. Make the workflow-instance Gantt view useful for inspecting workflows with mixed task durations. The previous view rounds timestamps to whole seconds, making subsecond tasks appear to have no duration, and does not expose task-count summaries or direct log access. For example, a workflow containing a long task and an 8 ms task should keep the short task visible, preserve its actual duration, show whether other tasks are still unsubmitted or have failed, and let an operator open the corresponding log while still being able to select and copy task names. ## Brief change log - Replace the fixed chart layout with a compact timeline that fits the available width, with elapsed-time and percentage ticks shown together and no horizontal scrollbar. - Preserve millisecond timestamps and use a 5 px visual minimum for short task bars, including bars at the right edge. Duration labels and percentages still represent the actual values; parallel-task percentages may total more than 100%. - Add compact, color-coded counts for total, submitted, unsubmitted, waiting, running, succeeded, failed, and paused/stopped tasks. Use the instance's definition version and deduplicate retries by task code. - Refresh active workflows every five seconds, extend running durations, and retain the last successful snapshot on refresh failure. Ignore stale requests after navigation/unmount. - Keep task names selectable and provide a separate log button using the existing log modal, refresh, and download actions. Bound the in-page preview to 20,000 lines and offer the full download. - Add subtle grid guides, responsive layout, existing theme colors, and Chinese/English text. Display the last update beside the workflow-instance ID. The change is confined to the UI and uses existing APIs. There are no backend, database-schema, public-API, or dependency changes. ## Verify this pull request This change adds tests and was verified as follows: - `cd dolphinscheduler-ui && node --test tests/gantt-model.test.cjs`: 7 tests covering retry deduplication, unsubmitted nodes, millisecond precision, running/completed durations, missing dates, parallel-task percentages, UTC parsing, and subsecond timeline bounds. - `vue-tsc --noEmit`: passed. - Scoped ESLint and Prettier checks for the changed UI files: passed. - `vite build --mode production`: passed (existing bundle-size warnings). - `mvn -B -ntp spotless:apply`: passed for the full reactor; no unrelated formatting changes. - Manual browser verification against a local Standalone/H2 backend: completed workflows with successful, failed, and unsubmitted tasks; real log retrieval via the separate button; task-name text selection; 5 px minimum bar width; no horizontal overflow; and updated layout at the available viewport width. Running-time calculations are covered by tests. A new production workload was not launched for this change. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
