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

kaxilnaik 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 93144ab1578 Add end-to-end feature checklist to Execution API 
AGENTS.md (#62481)
93144ab1578 is described below

commit 93144ab1578ad44a41cfc1ad0f2c84f8338ab1dc
Author: Kaxil Naik <[email protected]>
AuthorDate: Thu Feb 26 16:47:14 2026 +0000

    Add end-to-end feature checklist to Execution API AGENTS.md (#62481)
    
    New Execution API features touch multiple packages (API routes,
    Task SDK comms/client/supervisor, DAG processor and triggerer
    exclusion lists). Document the full cross-package workflow so
    agents don't miss steps like updating message type unions.
---
 .../airflow/api_fastapi/execution_api/AGENTS.md    | 23 ++++++++++++++++++++++
 1 file changed, 23 insertions(+)

diff --git a/airflow-core/src/airflow/api_fastapi/execution_api/AGENTS.md 
b/airflow-core/src/airflow/api_fastapi/execution_api/AGENTS.md
index 56e2baca439..39e08334573 100644
--- a/airflow-core/src/airflow/api_fastapi/execution_api/AGENTS.md
+++ b/airflow-core/src/airflow/api_fastapi/execution_api/AGENTS.md
@@ -33,10 +33,33 @@ cd task-sdk && python dev/generate_task_sdk_models.py
 - Don't add changes to already-released version files.
 - Don't forget response converters for new fields in nested objects.
 
+### Adding a New Feature End-to-End
+
+Adding a new Execution API feature touches multiple packages. All of these 
must stay in sync:
+
+1. **Datamodels** — add request/response schemas in `datamodels/`.
+2. **Route** — add the endpoint in `routes/`.
+3. **Version migration** — add Cadwyn `VersionChange` (see above).
+4. **Task SDK message types** — add request/response to 
`task-sdk/src/airflow/sdk/execution_time/comms.py`.
+5. **Task SDK client** — add the client method in 
`task-sdk/src/airflow/sdk/api/client.py`.
+6. **Supervisor** — handle the new message in 
`task-sdk/src/airflow/sdk/execution_time/supervisor.py`.
+7. **DAG processor & triggerer exclusions** — these use 
`InProcessExecutionAPI` and have explicit message type unions. Add new types to 
their handler or exclusion lists in `airflow/dag_processing/processor.py` and 
`airflow/jobs/triggerer_job_runner.py`.
+8. **Regenerate models** — `cd task-sdk && python 
dev/generate_task_sdk_models.py`.
+9. **Tests** — if the new message type requires an API endpoint, add tests in 
all of these:
+   - `airflow-core/tests/unit/api_fastapi/execution_api/` — endpoint tests
+   - `task-sdk/tests/task_sdk/api/test_client.py` — client method tests
+   - `task-sdk/tests/task_sdk/execution_time/test_supervisor.py` — add a 
`RequestTestCase` entry to `REQUEST_TEST_CASES` list
+   - `task-sdk/tests/task_sdk/execution_time/test_task_runner.py` — task 
runner integration tests
+
 ### Key Paths
 
 - Models: `datamodels/`
 - Routes: `routes/`
 - Versions: `versions/`
+- Message types: `task-sdk/src/airflow/sdk/execution_time/comms.py`
+- Client: `task-sdk/src/airflow/sdk/api/client.py`
+- Supervisor: `task-sdk/src/airflow/sdk/execution_time/supervisor.py`
+- DAG processor handler: `airflow-core/src/airflow/dag_processing/processor.py`
+- Triggerer handler: `airflow-core/src/airflow/jobs/triggerer_job_runner.py`
 - Task SDK generated models: 
`task-sdk/src/airflow/sdk/api/datamodels/_generated.py`
 - Full versioning guide: 
[`contributing-docs/19_execution_api_versioning.rst`](../../../../contributing-docs/19_execution_api_versioning.rst)

Reply via email to