kaxil opened a new pull request, #68489: URL: https://github.com/apache/airflow/pull/68489
`LLMApprovalMixin` (`require_approval=True` on `LLMOperator` / `AgentOperator`) now raises `TaskAwaitingInput` on Airflow 3.3+, parking the review in the first-class `awaiting_input` state (#68028) with no trigger or triggerer involved, matching the standard provider's `HITLOperator`. On older cores it falls back to deferring to `HITLTrigger` unchanged, gated on `AIRFLOW_V_3_3_PLUS`. Why: - The triggerer no longer needs to run for approval pipelines to make progress. Resumption is driven by the Core API response handler or the scheduler's timeout sweep, which also enforces `approval_timeout` on 3.3+ with the same timeout-event semantics as `HITLTrigger`. - Together with `airflow dags test` resolving `awaiting_input` tasks interactively, review pipelines become runnable end to end locally. Verified in breeze with pydantic-ai's TestModel: the task parks in `awaiting_input`, an approval with reviewer-modified output resumes it, and the modified output flows downstream as the task result. One behavior fix rides along: on the legacy path `HITLTrigger` schema-validated `params_input` before resuming, but nothing does on the awaiting_input path (the Core API route validates chosen options and cardinality only). `execute_complete` now enforces the string contract for reviewer-modified output and raises `HITLTriggerEventError` with `error_type="validation"` for non-string values. Previously on this path an API client could make the operator return a dict where the declared output contract is `str`. The dependency floor moves to `apache-airflow-providers-common-compat>=1.15.0`, the first release with the `AIRFLOW_V_3_3_PLUS` flag. -- 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]
