Skip to content

Conversation

@sanchalitorpe-source
Copy link

@sanchalitorpe-source sanchalitorpe-source commented Jan 29, 2026

Persist DataTable column visibility (show/hide) configuration in browser localStorage, so user preferences are restored when returning to a table.

This change uses the shared DataTable component and scopes persistence using the table 'modelName'. Only column visibility is persisted — sorting, filtering, and pagination behavior remain unchanged.

The implementation safely falls back to default column visibility when no stored configuration is found and follows existing UI persistence patterns in Airflow.

closes #61159

sanchalitorpe-source and others added 18 commits January 27, 2026 12:08
…Path (apache#60519)

* pyproject.toml: update universal-pathlib version boundaries

* task_sdk.io.path: fix test regarding relative_to

* tests: adjust the lazy_load test to reflect caching is done via STORE_CACHE

* tests: update tests to register fake remote filesystem in fsspec

* airflow.sdk.io.path: implement ObjectStoragePath via ProxyUPath

* airflow.sdk.io.path: provide a basic implementation for copy_into and move_into

* airflow.sdk.io.path: fix __str__ method

* airflow.sdk.io.path: docstring fixes

* update spelling_wordlist.txt
* Add support for globalCss to custom theme

* Fix CI
* Explicitly set table ordering

* Remove start_date as default

* simplify comments

* Simplify table sort fix

* Reverse sort direction to match tests

* Remove isfetching
The delete_old_records query was scanning the RTIF table with a complex
NOT EXISTS subquery containing a join, causing statement timeouts and
scheduler crashes for DAGs with 3k+ mapped task instances (~100k RTIF
records).

Simplified the query to only use the dag_run table for finding recent
run_ids, avoiding the expensive RTIF table scan entirely. Benchmarks
show ~38x improvement (330ms -> 6ms for 5000 records).

Changes:
- Replaced NOT EXISTS with simple NOT IN on dag_run table
- Uses run_after instead of logical_date (avoids NULL for manual runs)
- Renamed config to max_num_rendered_ti_fields_per_dag_run with
  backward-compatible deprecation of old name
- Added test for sparse task behavior to document the semantic change

Note: Retention is now based on N most recent dag runs rather than N
most recent task executions. For sparse/conditional tasks, this may
result in fewer historical records being retained.

* Improve performance of rendered templates cleanup

The delete_old_records query was scanning the RTIF table with a complex
NOT EXISTS subquery containing a join, causing statement timeouts and
scheduler crashes for DAGs with 3k+ mapped task instances (~100k RTIF
records).

Simplified the query to only use the dag_run table for finding recent
run_ids, avoiding the expensive RTIF table scan entirely. Benchmarks
show ~38x improvement (330ms -> 6ms for 5000 records).

Changes:
- Replaced NOT EXISTS with simple NOT IN on dag_run table
- Uses run_after instead of logical_date (avoids NULL for manual runs)
- Renamed config to max_num_rendered_ti_fields_per_dag_run with
  backward-compatible deprecation of old name
- Added test for sparse task behavior to document the semantic change

Note: Retention is now based on N most recent dag runs rather than N
most recent task executions. For sparse/conditional tasks, this may
result in fewer historical records being retained.
…tes (apache#61221)

Bumps the core-ui-package-updates group with 2 updates in the /airflow-core/src/airflow/api_fastapi/auth/managers/simple/ui directory: [@hey-api/openapi-ts](https://github.com/hey-api/openapi-ts) and [axios](https://github.com/axios/axios).


Updates `@hey-api/openapi-ts` from 0.90.9 to 0.90.10
- [Release notes](https://github.com/hey-api/openapi-ts/releases)
- [Changelog](https://github.com/hey-api/openapi-ts/blob/main/docs/CHANGELOG.md)
- [Commits](https://github.com/hey-api/openapi-ts/compare/@hey-api/openapi-ts@0.90.9...@hey-api/openapi-ts@0.90.10)

Updates `axios` from 1.13.2 to 1.13.3
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.13.2...v1.13.3)

---
updated-dependencies:
- dependency-name: "@hey-api/openapi-ts"
  dependency-version: 0.90.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: core-ui-package-updates
- dependency-name: axios
  dependency-version: 1.13.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: core-ui-package-updates
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
) (apache#60734)

* dag_processing: initialize versioned bundles for callbacks (apache#52040)

* Apply suggestion from @amoghrajesh

Co-authored-by: Amogh Desai <amoghrajesh1999@gmail.com>

* Apply suggestion from @amoghrajesh

Co-authored-by: Amogh Desai <amoghrajesh1999@gmail.com>

* Apply suggestion from @amoghrajesh

Co-authored-by: Amogh Desai <amoghrajesh1999@gmail.com>

* Add unit tests for callback handling and improve logging in Dag processing

* fix CI static checks apache#2

---------

Co-authored-by: Amogh Desai <amoghrajesh1999@gmail.com>
…iders/edge3/plugins/www in the edge-ui-package-updates group across 1 directory (apache#61220)

* Bump axios

Bumps the edge-ui-package-updates group with 1 update in the /providers/edge3/src/airflow/providers/edge3/plugins/www directory: [axios](https://github.com/axios/axios).


Updates `axios` from 1.13.2 to 1.13.3
- [Release notes](https://github.com/axios/axios/releases)
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md)
- [Commits](axios/axios@v1.13.2...v1.13.3)

---
updated-dependencies:
- dependency-name: axios
  dependency-version: 1.13.3
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: edge-ui-package-updates
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix static checks

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jens Scheffler <jscheffl@apache.org>
Previous behavior only updated the queued_at field if the run was cleared while in a terminal state.  A run which was cleared while it was running or queued kept the original queued_at timestamp, making it impossible to track when the run was most recently attempted and introducing different behaviour depending on when the button was clicked.  We now update the queued_at timestamp and clear_number counter regardless of the state the run was in at the time it was cleared.  start_date is preserved as the timestamp of the original first attempt.
Co-authored-by: Przemysław Mirowski <miretpl@gmail.com>
…behavior (apache#61047)

* Default logical_date to now in airflowctl dagrun trigger to match UI behavior

  When triggering DAG runs via airflowctl without specifying --logical-date, the
  parameter now defaults to the current timestamp instead of None. This aligns
  with the Airflow UI behavior where the trigger form pre-populates logical_date
  with the current time, providing a more intuitive user experience.

* Add tests
* Add XCom CLI commands to airflowctl

This commit adds `add`, `edit`, `delete`, `get`, and `list` commands for XComs to `airflowctl`.
These commands allow managing XCom entries for a specific task instance.
The commands support handling JSON values for XComs.

Key changes:
- Added `XComOperations` to `airflowctl/api/operations.py`.
- Added `xcom` property to `Client` in `airflowctl/api/client.py`.
- Exposed commands: `airflowctl xcom [add|edit|delete|get|list]`.

* Fix XCom CLI commands and add comprehensive unit tests

  This commit fixes critical issues with XCom CLI commands in airflowctl
  and adds comprehensive test coverage for all XCom operations.

* Add integration tests
@boring-cyborg
Copy link

boring-cyborg bot commented Jan 29, 2026

Congratulations on your first Pull Request and welcome to the Apache Airflow community! If you have any issues or are unsure about any anything please check our Contributors' Guide (https://github.com/apache/airflow/blob/main/contributing-docs/README.rst)
Here are some useful points:

  • Pay attention to the quality of your code (ruff, mypy and type annotations). Our prek-hooks will help you with that.
  • In case of a new feature add useful documentation (in docstrings or in docs/ directory). Adding a new operator? Check this short guide Consider adding an example DAG that shows how users should use it.
  • Consider using Breeze environment for testing locally, it's a heavy docker but it ships with a working Airflow and a lot of integrations.
  • Be patient and persistent. It might take some time to get a review or get the final approval from Committers.
  • Please follow ASF Code of Conduct for all communication including (but not limited to) comments on Pull Requests, Mailing list and Slack.
  • Be sure to read the Airflow Coding style.
  • Always keep your Pull Requests rebased, otherwise your build might fail due to changes not related to your commits.
    Apache Airflow is a community-driven project and together we are making it better 🚀.
    In case of doubts contact the developers at:
    Mailing List: dev@airflow.apache.org
    Slack: https://s.apache.org/airflow-slack

@boring-cyborg boring-cyborg bot added the area:UI Related to UI/UX. For Frontend Developers. label Jan 29, 2026
sanchalitorpe-source and others added 2 commits January 29, 2026 18:01
* fix(ui): avoid chart annotation left error by removing resizeDelay

* fix(ui): keep resizeDelay and set annotation clip false in gantt

* fix(ui): adjust annotation clip false position per prek formatting
Copy link
Contributor

@bbovenzi bbovenzi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be greatly simplified with useLocalStorage() ctrl+f the codebase to see examples

@guan404ming
Copy link
Member

guan404ming commented Jan 30, 2026

I think there are lots unrelated changes. You may need to rebase or open a fresh one. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:UI Related to UI/UX. For Frontend Developers.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Save tables columns configuration