Repository navigation
[airflow-ctl/v0-1-test] Escape server and user text in airflowctl command messages (#76265) - #76621
Merged
shahar1 merged 1 commit intoNov 6, 2026
Conversation
…mand messages (apache#76265) Several airflowctl commands interpolated server error text, Dag run ids and logical dates into Rich markup unescaped. A value containing a tag-like fragment such as "[/x]" made rich.print raise MarkupError, so the user saw a traceback instead of the actual error. (cherry picked from commit abc3a20) Conflict resolution: this branch has no ctl/utils/dag_run.py, so the escapes from that module go to the lookup helpers it keeps inline in dag_command.py and task_command.py, and its tests are rewritten against `dags state` and `tasks states-for-dag-run`. `dags clear` and `tasks failed-deps`, `state` and `logs` do not exist here, so their escapes and tests are dropped. "Error retrieving DAG" keeps this branch's wording. Generated-by: Claude Code (Opus 5.5) Claude-Session: https://claude.ai/code/session_01BVx6gA44HQY4GEf2fEAQwE
shahar1
requested review from
bugraoz93,
dheerajturaga and
potiuk
as code owners
November 6, 2026 17:28
shahar1
enabled auto-merge (squash)
November 6, 2026 17:28
shahar1
added a commit
to shahar1/airflow
that referenced
this pull request
Nov 7, 2026
…mand messages (apache#76265) (apache#76621) Several airflowctl commands interpolated server error text, Dag run ids and logical dates into Rich markup unescaped. A value containing a tag-like fragment such as "[/x]" made rich.print raise MarkupError, so the user saw a traceback instead of the actual error. (cherry picked from commit abc3a20) Conflict resolution: this branch has no ctl/utils/dag_run.py, so the escapes from that module go to the lookup helpers it keeps inline in dag_command.py and task_command.py, and its tests are rewritten against `dags state` and `tasks states-for-dag-run`. `dags clear` and `tasks failed-deps`, `state` and `logs` do not exist here, so their escapes and tests are dropped. "Error retrieving DAG" keeps this branch's wording. Generated-by: Claude Code (Opus 5.5) Claude-Session: https://claude.ai/code/session_01BVx6gA44HQY4GEf2fEAQwE Co-authored-by: Rishabh <[email protected]>
1 task done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backport of #76265 to
airflow-ctl/v0-1-test. The automatic backport failed on conflicts.airflowctl printed server error text, Dag run ids and logical dates as Rich markup. A value containing a tag-like fragment such as
[/x]raisedMarkupError, so the user got a traceback instead of the error.Conflict resolution:
ctl/utils/dag_run.py. Its escapes go to the lookup helpers kept inline indag_command.pyandtask_command.py, and its tests are rewritten againstdags stateandtasks states-for-dag-run.dags clearandtasks failed-deps,stateandlogsdo not exist here, so their escapes and tests are dropped.Tests: all 743 airflowctl unit tests pass. Removing any escape fails a test, except the rejected value in the two logical-date not-found messages, which has already passed
datetime.fromisoformatand cannot contain markup. This is the same exception as in #76265, and it appears twice because the helper exists twice here.(cherry picked from commit abc3a20)
Was generative AI tooling used to co-author this PR?
Generated-by: Claude Code (Opus 5.5) following the guidelines
🤖 Generated with Claude Code
https://claude.ai/code/session_01BVx6gA44HQY4GEf2fEAQwE