This is an automated email from the ASF dual-hosted git repository.

bbovenzi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new dd048b35f0a Fix Gantt tooltip showing wrong start date on 
queued/scheduled segments (#68176)
dd048b35f0a is described below

commit dd048b35f0a31edb097fdbce905e8966ef1565ce
Author: Shashwati Bhattacharyaa <[email protected]>
AuthorDate: Thu Jun 11 22:17:56 2026 +0530

    Fix Gantt tooltip showing wrong start date on queued/scheduled segments 
(#68176)
    
    Co-authored-by: Shashwati <[email protected]>
---
 .../src/airflow/ui/src/layouts/Details/Gantt/GanttTimeline.tsx       | 2 +-
 airflow-core/src/airflow/ui/src/layouts/Details/Gantt/utils.ts       | 5 ++++-
 2 files changed, 5 insertions(+), 2 deletions(-)

diff --git 
a/airflow-core/src/airflow/ui/src/layouts/Details/Gantt/GanttTimeline.tsx 
b/airflow-core/src/airflow/ui/src/layouts/Details/Gantt/GanttTimeline.tsx
index 42cc8b44f95..43c28dba56b 100644
--- a/airflow-core/src/airflow/ui/src/layouts/Details/Gantt/GanttTimeline.tsx
+++ b/airflow-core/src/airflow/ui/src/layouts/Details/Gantt/GanttTimeline.tsx
@@ -86,7 +86,7 @@ const toTooltipSummary = (
   return {
     child_states: null,
     max_end_date: dayjs(segment.x[1]).toISOString(),
-    min_start_date: dayjs(segment.x[0]).toISOString(),
+    min_start_date: segment.start_when ?? dayjs(segment.x[0]).toISOString(),
     state: segment.state ?? null,
     task_display_name: segment.y,
     task_id: segment.taskId,
diff --git a/airflow-core/src/airflow/ui/src/layouts/Details/Gantt/utils.ts 
b/airflow-core/src/airflow/ui/src/layouts/Details/Gantt/utils.ts
index ff281092add..9502cd31e78 100644
--- a/airflow-core/src/airflow/ui/src/layouts/Details/Gantt/utils.ts
+++ b/airflow-core/src/airflow/ui/src/layouts/Details/Gantt/utils.ts
@@ -33,6 +33,8 @@ export type GanttDataItem = {
   /** Source try times for tooltips (matches TaskInstance `*_when` fields). */
   queued_when?: string | null;
   scheduled_when?: string | null;
+  /** Actual task execution start_date — consistent across all segments of the 
same try. */
+  start_when?: string | null;
   state?: TaskInstanceState | null;
   taskId: string;
   tryNumber?: number;
@@ -133,10 +135,11 @@ export const transformGanttData = ({
             const queuedMs = queuedDttm === null ? undefined : 
dayjs(queuedDttm).valueOf();
             const scheduledMs = scheduledDttm === null ? undefined : 
dayjs(scheduledDttm).valueOf();
 
-            // Include scheduled/queued times in tooltip data whenever the 
timestamps exist.
+            // Include scheduled/queued/start times in tooltip data whenever 
the timestamps exist.
             const tryWhenForTooltip = {
               ...(scheduledMs === undefined ? {} : { scheduled_when: 
scheduledDttm }),
               ...(queuedMs === undefined ? {} : { queued_when: queuedDttm }),
+              ...(startDate === null ? {} : { start_when: startDate }),
             };
 
             let endMs: number;

Reply via email to