jason810496 opened a new pull request, #73190: URL: https://github.com/apache/airflow/pull/73190
- related ADR: `ts-sdk/adr/0001-mixed-lang-dag-interface.md` (decision 6) - **Depends on `feature/ts-sdk/taskflow-arg-folding` get merged first** (only the last commit is new here). - **Diff for early review**: https://github.com/jason810496/airflow/compare/feature/ts-sdk/taskflow-arg-folding...feature/ts-sdk/taskflow-xcom-args - **next**: `feature/ts-sdk/with-arg-names` ## Why `summarize(extract())` means "hand the handler what extract returned", but only literals could bind, so such an argument failed the task and told the author to pull the XCom by hand. ## How - Airflow names the upstream task in the binding spec, so the runtime pulls those `return_value` XComs itself, all of them concurrently: a task called with four upstream outputs waits for one round-trip, not four. - The whole spec is still validated before anything is pulled, so a binding this SDK cannot honour costs no round-trip, and leaves no half-resolved call behind. - Arguments resolve before the handler runs, the one stretch of a task's life with nothing else listening for termination, so the abort signal cuts the pulls short rather than leaving a killed task to sit out the force-exit grace period. - An upstream that pushed no output fails the task, naming both the argument and the task it came from. Telling that apart from an upstream that pushed null needs more than `getXCom`, which answers null for both, so the coordinator's own client keeps the found flag the supervisor already sends. Handlers stay typed against `TaskClient` and never see it. - A Python `int` beyond the range a JavaScript number holds exactly is refused rather than bound. Airflow stamps `format: "int64"` on the argument, and the value arrives with its low digits already lost, so nothing downstream could notice. ## Note ADR-0001 decision 6 is unchanged: being upstream is not being passed. A `>>` dependency still declares order only, and a value the call did not pass is still read explicitly. --- ##### Was generative AI tooling used to co-author this PR? - [x] Yes, with help of Claude Code Opus 5 following [the guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions) -- 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]
