jason810496 opened a new pull request, #73191: URL: https://github.com/apache/airflow/pull/73191
- related ADR: `ts-sdk/adr/0001-mixed-lang-dag-interface.md` (decision 5) - **Depends on `feature/ts-sdk/taskflow-xcom-args` get merged first** (only the last commit is new here). - **Diff for early review**: https://github.com/jason810496/airflow/compare/feature/ts-sdk/taskflow-xcom-args...feature/ts-sdk/with-arg-names ## Why Folding absorbs spelling differences, but not a name the Python side never used: a handler that wants to call `run_label` simply `label`, or one whose argument is a TypeScript reserved word like `enum`. ## How - `withArgNames(map, handler)`, mapping first. An entry beats folding, and everything the map does not mention still folds, which is what keeps this rare in a real Dag. - The map's keys are checked against the handler's own parameter type, so `{ labl: "run_label" }` is a compile error naming the right key. Its type parameter is `NoInfer`, so the parameter type comes from the handler alone; inferring it from the map too would make every key correct by construction and the check vacuous. The values are Python names, which `tsc` cannot see and does not check. - A mapped name the call did not pass misses rather than falling back to folding, so a stated binding that is wrong is visible instead of silently replaced by a guess. The unbound-argument warning now also names the wire name that was asked for. - The renames travel with the handler on a global symbol and are read back at the dispatch site. The return value is a wrapper rather than the author's own function with a property attached, because one handler can be registered for two tasks that rename differently. - The shipped example gains a `report` task whose handler renames `run_label` to `label` and throws unless it bound correctly, so a rename that did not take effect fails the end-to-end run rather than returning a null. --- ##### 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]
