Skip to content

Update App to alter the user journey and automated config creation#1040

Merged
mwojtyczka merged 7 commits into
mainfrom
feature/app-updates
Mar 5, 2026
Merged

Update App to alter the user journey and automated config creation#1040
mwojtyczka merged 7 commits into
mainfrom
feature/app-updates

Conversation

@laurencewells

Copy link
Copy Markdown
Contributor

This pull request introduces an AI Assistant feature to the application, allowing users to generate data quality rules using AI with context from their current run configuration. The changes include a new context provider, UI components for triggering and interacting with the assistant, and integration of the assistant into the main layout and relevant pages. Additionally, the configuration page UI is improved for better clarity and feedback.

AI Assistant Integration:

  • Added AIAssistantProvider context and related hooks/components (AIAssistantProvider, AIAssistantTrigger, and useAIAssistant) to manage the AI Assistant's state and provide a UI for AI-assisted rule generation, including context-aware prompts based on the selected run configuration. ([[1]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-9f2c346a7aee9be18060634db52822e48a981b33fddd0e2ffcb9c0f57858bdecR1-R92), [[2]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-8c3288a2679c1ee6e82d6dd14fcb063d59853b354d1dec19fa4f1062fa765604L5-R21), [[3]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-8c3288a2679c1ee6e82d6dd14fcb063d59853b354d1dec19fa4f1062fa765604L26-R33), [[4]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-8c3288a2679c1ee6e82d6dd14fcb063d59853b354d1dec19fa4f1062fa765604L52-R82), [[5]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-8c3288a2679c1ee6e82d6dd14fcb063d59853b354d1dec19fa4f1062fa765604L121-R140), [[6]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-8c3288a2679c1ee6e82d6dd14fcb063d59853b354d1dec19fa4f1062fa765604L137-R161), [[7]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-8c3288a2679c1ee6e82d6dd14fcb063d59853b354d1dec19fa4f1062fa765604L164), [[8]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-e8a0b3f8f5a0d009fab110fafb6d3468e5baebeac1d9c249d2ce7e1dcf201124R65), [[9]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-e8a0b3f8f5a0d009fab110fafb6d3468e5baebeac1d9c249d2ce7e1dcf201124R427-L430), [[10]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-e8a0b3f8f5a0d009fab110fafb6d3468e5baebeac1d9c249d2ce7e1dcf201124R462-R470))

  • Integrated the AI Assistant trigger button into the main navigation bar and sidebar layout, making the assistant easily accessible from anywhere in the application. ([[1]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-089eb9b0344758d760a9c23b1590f4cb3e812853dd4f5f8ba5147a387b804c73R2), [[2]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-089eb9b0344758d760a9c23b1590f4cb3e812853dd4f5f8ba5147a387b804c73R17-R21), [[3]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-7e1eb2bf4c5df6d9f204107f30f78bb4f4a4d55b29a8551f1484969a07b77d89R15), [[4]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-7e1eb2bf4c5df6d9f204107f30f78bb4f4a4d55b29a8551f1484969a07b77d89R41))

  • Wrapped the application's root route with the AIAssistantProvider to ensure the assistant context is available throughout the UI. ([[1]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-df88d29e92a8db8b5d45355308ca3942bb416e240fa1eddf83322dccb1f18cdaR2), [[2]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-df88d29e92a8db8b5d45355308ca3942bb416e240fa1eddf83322dccb1f18cdaR13-R15))

Run Context Awareness:

  • Enhanced the AI Assistant to use the current run's YAML configuration as context for generating rules, updating the context dynamically as the user selects or edits runs. ([[1]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-e8a0b3f8f5a0d009fab110fafb6d3468e5baebeac1d9c249d2ce7e1dcf201124R427-L430), [[2]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-e8a0b3f8f5a0d009fab110fafb6d3468e5baebeac1d9c249d2ce7e1dcf201124R462-R470), [[3]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-8c3288a2679c1ee6e82d6dd14fcb063d59853b354d1dec19fa4f1062fa765604L5-R21), [[4]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-8c3288a2679c1ee6e82d6dd14fcb063d59853b354d1dec19fa4f1062fa765604L26-R33), [[5]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-8c3288a2679c1ee6e82d6dd14fcb063d59853b354d1dec19fa4f1062fa765604L52-R82), [[6]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-8c3288a2679c1ee6e82d6dd14fcb063d59853b354d1dec19fa4f1062fa765604L121-R140), [[7]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-8c3288a2679c1ee6e82d6dd14fcb063d59853b354d1dec19fa4f1062fa765604L137-R161))

Configuration Page UI Improvements:

  • Updated the configuration location display to use clearer icons, badges, and improved feedback for loading and error states, making it easier for users to understand and interact with config settings. ([[1]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-40f7eaf3280e8b425f3ab9b427d858e53ce31cf4c0da9c10afd050e27bc3c591R47-R48), [[2]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-40f7eaf3280e8b425f3ab9b427d858e53ce31cf4c0da9c10afd050e27bc3c591R120-R129), [[3]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-40f7eaf3280e8b425f3ab9b427d858e53ce31cf4c0da9c10afd050e27bc3c591R159), [[4]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-40f7eaf3280e8b425f3ab9b427d858e53ce31cf4c0da9c10afd050e27bc3c591L547-R557), [[5]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-40f7eaf3280e8b425f3ab9b427d858e53ce31cf4c0da9c10afd050e27bc3c591L579-R608), [[6]](https://github.com/databrickslabs/dqx/pull/1040/files#diff-40f7eaf3280e8b425f3ab9b427d858e53ce31cf4c0da9c10afd050e27bc3c591L597))

These changes collectively provide a more interactive, context-aware, and user-friendly experience for generating data quality rules and managing configuration within the application.

@github-actions

github-actions Bot commented Feb 20, 2026

Copy link
Copy Markdown
Contributor

✅ 606/606 passed, 26 flaky, 38 skipped, 3h50m56s total

Flaky tests:

  • 🤪 test_save_checks_when_global_installation_missing (10.007s)
  • 🤪 test_profiler_workflow (10.014s)
  • 🤪 test_save_checks_in_custom_folder_installation_in_yaml_file (10.008s)
  • 🤪 test_save_checks_when_user_installation_missing (10.014s)
  • 🤪 test_save_results_in_table_only_output (10.005s)
  • 🤪 test_save_results_in_table (10.008s)
  • 🤪 test_save_results_in_table_only_quarantine (10.007s)
  • 🤪 test_save_results_in_table_in_user_installation (10.008s)
  • 🤪 test_save_results_in_table_in_user_installation_only_quarantine (10.014s)
  • 🤪 test_save_results_in_table_in_user_installation_only_output (10.014s)
  • 🤪 test_save_results_in_table_in_user_installation_output_table_provided (10.014s)
  • 🤪 test_save_results_in_table_in_user_installation_quarantine_table_provided (10.014s)
  • 🤪 test_save_results_in_table_missing_output_and_quarantine_dfs (10.015s)
  • 🤪 test_save_results_in_table_in_user_installation_missing_output_and_quarantine_table (10.014s)
  • 🤪 test_save_results_in_table_in_custom_folder_installation (10.011s)
  • 🤪 test_save_streaming_results_in_table (10.014s)
  • 🤪 test_quality_checker_no_input_configured (10.014s)
  • 🤪 test_observer_metrics_before_action[apply_checks] (10.014s)
  • 🤪 test_observer_custom_column_names (10.006s)
  • 🤪 test_e2e_workflow (10.007s)
  • 🤪 test_observer_metrics_before_action[apply_checks_by_metadata] (10.014s)
  • 🤪 test_observer_metrics[apply_checks] (10.014s)
  • 🤪 test_e2e_workflow_serverless (10.014s)
  • 🤪 test_observer_metrics[apply_checks_by_metadata] (10.014s)
  • 🤪 test_e2e_workflow_for_patterns_table_checks_storage (10.622s)
  • 🤪 test_observer_metrics_output[apply_checks_and_save_in_table] (3.916s)

Running from acceptance #4069

@codecov

codecov Bot commented Feb 20, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 91.78%. Comparing base (cbe048b) to head (428c737).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@             Coverage Diff             @@
##             main    #1040       +/-   ##
===========================================
+ Coverage   79.79%   91.78%   +11.98%     
===========================================
  Files          98       98               
  Lines        8945     8945               
===========================================
+ Hits         7138     8210     +1072     
+ Misses       1807      735     -1072     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@mwojtyczka mwojtyczka left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

test

@mwojtyczka mwojtyczka left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

test

Comment thread app/src/databricks_labs_dqx_app/ui/components/AICheckGenerator.tsx Outdated

@mwojtyczka mwojtyczka left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

test

Comment thread app/src/databricks_labs_dqx_app/ui/components/AICheckGenerator.tsx Outdated

@mwojtyczka mwojtyczka left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

test

Comment thread app/src/databricks_labs_dqx_app/ui/components/AICheckGenerator.tsx Outdated

@mwojtyczka mwojtyczka left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

test

Comment thread app/src/databricks_labs_dqx_app/ui/components/AICheckGenerator.tsx Outdated

@mwojtyczka mwojtyczka left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

test

Comment thread app/src/databricks_labs_dqx_app/ui/components/AICheckGenerator.tsx Outdated

@mwojtyczka mwojtyczka left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

test

Comment thread app/src/databricks_labs_dqx_app/ui/components/AICheckGenerator.tsx

@mwojtyczka mwojtyczka left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

test

Comment thread app/src/databricks_labs_dqx_app/ui/components/AICheckGenerator.tsx

@mwojtyczka mwojtyczka left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

test batch

Comment thread app/src/databricks_labs_dqx_app/ui/components/AICheckGenerator.tsx Outdated
Comment thread app/src/databricks_labs_dqx_app/ui/routes/_sidebar/runs.tsx
Comment thread app/src/databricks_labs_dqx_app/ui/routes/index.tsx Outdated

@mwojtyczka mwojtyczka left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Good direction overall — the global context provider pattern is the right approach for an app-wide AI panel, and the landing page config-detection flow is a nice UX improvement.

General: uv.lock (6 000 lines) is committed as part of this feature PR. Lock file updates add significant diff noise and cause merge conflicts. Best committed in a dedicated chore PR or check whether it belongs in .gitignore.

Comment thread app/src/databricks_labs_dqx_app/ui/components/AICheckGenerator.tsx Outdated
Comment thread app/src/databricks_labs_dqx_app/ui/routes/_sidebar/runs.tsx
Comment thread app/src/databricks_labs_dqx_app/ui/routes/index.tsx Outdated
… uvlock

Signed-off-by: Laurence Wells <laurence.wells+data@databricks.com>

@mwojtyczka mwojtyczka left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@mwojtyczka
mwojtyczka merged commit c8079d5 into main Mar 5, 2026
18 checks passed
@mwojtyczka
mwojtyczka deleted the feature/app-updates branch March 5, 2026 12:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants