You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airflow.apache.org by js...@apache.org on 2025/09/18 05:43:43 UTC

(airflow) branch main updated: fix(hitl): HITL ti state sorting (#55779)

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

jscheffl 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 a0c7e9378c3 fix(hitl): HITL ti state sorting (#55779)
a0c7e9378c3 is described below

commit a0c7e9378c33f0113548a90a74e54cfe1f182ae6
Author: Wei Lee <we...@gmail.com>
AuthorDate: Thu Sep 18 13:43:36 2025 +0800

    fix(hitl): HITL ti state sorting (#55779)
    
    * fix(hitl): fix HITL state sorting
    
    * feat(hitl): add task_instance_state sorting to get hitl details endpoint
---
 airflow-core/src/airflow/api_fastapi/core_api/routes/public/hitl.py   | 1 +
 .../src/airflow/ui/src/pages/HITLTaskInstances/HITLTaskInstances.tsx  | 2 +-
 .../tests/unit/api_fastapi/core_api/routes/public/test_hitl.py        | 4 ++++
 3 files changed, 6 insertions(+), 1 deletion(-)

diff --git a/airflow-core/src/airflow/api_fastapi/core_api/routes/public/hitl.py b/airflow-core/src/airflow/api_fastapi/core_api/routes/public/hitl.py
index f4b1e0baae2..e3f4b59c448 100644
--- a/airflow-core/src/airflow/api_fastapi/core_api/routes/public/hitl.py
+++ b/airflow-core/src/airflow/api_fastapi/core_api/routes/public/hitl.py
@@ -220,6 +220,7 @@ def get_hitl_details(
                     "run_after": DagRun.run_after,
                     "rendered_map_index": TI.rendered_map_index,
                     "task_instance_operator": TI.operator,
+                    "task_instance_state": TI.state,
                 },
             ).dynamic_depends(),
         ),
diff --git a/airflow-core/src/airflow/ui/src/pages/HITLTaskInstances/HITLTaskInstances.tsx b/airflow-core/src/airflow/ui/src/pages/HITLTaskInstances/HITLTaskInstances.tsx
index 376c2abf37f..82e43b6aa4f 100644
--- a/airflow-core/src/airflow/ui/src/pages/HITLTaskInstances/HITLTaskInstances.tsx
+++ b/airflow-core/src/airflow/ui/src/pages/HITLTaskInstances/HITLTaskInstances.tsx
@@ -58,7 +58,7 @@ const taskInstanceColumns = ({
   translate: TFunction;
 }): Array<ColumnDef<HITLDetail>> => [
   {
-    accessorKey: "task_instance.operator",
+    accessorKey: "task_instance_state",
     cell: ({ row: { original } }: TaskInstanceRow) => (
       <StateBadge state={original.task_instance.state}>{getHITLState(translate, original)}</StateBadge>
     ),
diff --git a/airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_hitl.py b/airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_hitl.py
index f8ab8e1c4d9..9a431565e7d 100644
--- a/airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_hitl.py
+++ b/airflow-core/tests/unit/api_fastapi/core_api/routes/public/test_hitl.py
@@ -637,18 +637,22 @@ class TestGetHITLDetailsEndpoint:
             ("run_after", lambda x: x["task_instance"]["run_after"]),
             ("rendered_map_index", lambda x: x["task_instance"]["rendered_map_index"]),
             ("task_instance_operator", lambda x: x["task_instance"]["operator_name"]),
+            ("task_instance_state", lambda x: x["task_instance"]["state"]),
             # htil key
             ("subject", itemgetter("subject")),
             ("responded_at", itemgetter("responded_at")),
             ("created_at", itemgetter("created_at")),
         ],
         ids=[
+            # ti key
             "ti_id",
             "dag_id",
             "run_id",
             "run_after",
             "rendered_map_index",
             "task_instance_operator",
+            "task_instance_state",
+            # htil key
             "subject",
             "responded_at",
             "created_at",