Skip to content

feat(semantic layers): don't show samples tab in explore#41509

Open
betodealmeida wants to merge 5 commits into
masterfrom
chart-samples
Open

feat(semantic layers): don't show samples tab in explore#41509
betodealmeida wants to merge 5 commits into
masterfrom
chart-samples

Conversation

@betodealmeida

@betodealmeida betodealmeida commented Jun 28, 2026

Copy link
Copy Markdown
Member

SUMMARY

In Explore, hide the "Samples" tab when visualizing a semantic view, since it doesn't make sense for them.

BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

Screenshot 2026-06-29 at 10 28 32 AM

TESTING INSTRUCTIONS

ADDITIONAL INFORMATION

  • Has associated issue:
  • Required feature flags:
  • Changes UI
  • Includes DB Migration (follow approval process in SIP-59)
    • Migration is atomic, supports rollback & is backwards-compatible
    • Confirm DB migration upgrade and downgrade tested
    • Runtime estimates and downtime expectations provided
  • Introduces new feature or API
  • Removes existing feature or API

@netlify

netlify Bot commented Jun 28, 2026

Copy link
Copy Markdown

Deploy Preview for superset-docs-preview ready!

Name Link
🔨 Latest commit 38254af
🔍 Latest deploy log https://app.netlify.com/projects/superset-docs-preview/deploys/6a60b6bba4e1630008a0066a
😎 Deploy Preview https://deploy-preview-41509--superset-docs-preview.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@codecov

codecov Bot commented Jun 28, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 83.33333% with 4 lines in your changes missing coverage. Please review.
✅ Project coverage is 64.69%. Comparing base (06f421e) to head (76ed4cd).
⚠️ Report is 433 commits behind head on master.

Files with missing lines Patch % Lines
superset/common/query_actions.py 0.00% 1 Missing and 1 partial ⚠️
superset/views/datasource/views.py 33.33% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master   #41509      +/-   ##
==========================================
- Coverage   64.73%   64.69%   -0.05%     
==========================================
  Files        2687     2688       +1     
  Lines      148743   148976     +233     
  Branches    34329    34382      +53     
==========================================
+ Hits        96295    96379      +84     
- Misses      50681    50824     +143     
- Partials     1767     1773       +6     
Flag Coverage Δ
hive 39.15% <50.00%> (-0.05%) ⬇️
javascript 69.59% <100.00%> (+<0.01%) ⬆️
mysql 57.78% <60.00%> (-0.10%) ⬇️
postgres 57.84% <60.00%> (-0.10%) ⬇️
presto 40.68% <50.00%> (-0.06%) ⬇️
python 59.25% <60.00%> (-0.09%) ⬇️
sqlite 57.42% <60.00%> (-0.10%) ⬇️
unit 100.00% <100.00%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 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.

@betodealmeida
betodealmeida marked this pull request as ready for review June 29, 2026 14:30
@dosubot dosubot Bot added change:frontend Requires changing the frontend explore:design Related to the Explore UI/UX labels Jun 29, 2026
// (e.g. semantic views). The check is intentionally ``=== false`` so that
// datasources from older backends that don't send the flag still show the
// tab and preserve current behavior.
const showSamplesTab = datasource?.supports_samples !== false;

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.

Suggestion: Conditionally removing the Samples tab can leave the currently selected tab pointing to a key that no longer exists when the datasource changes from supporting samples to not supporting them. In that state the panel can render with no active pane and no results request, so users see an empty data panel until they manually recover. Add a synchronization step that forces the active tab back to Results whenever samples become unsupported. [logic error]

Severity Level: Major ⚠️
❌ Explore data panel can show blank content after switch.
⚠️ Samples request flag set but SamplesPane no longer mounted.
❌ Users must manually recover by clicking a Results tab.
Steps of Reproduction ✅
1. Open the Explore view for a chart whose datasource supports samples; this renders
`ExploreChartPanel` at
`superset-frontend/src/explore/components/ExploreChartPanel/index.tsx:553-564`, which
includes `DataTablesPane` with the current `datasource` prop.

2. In the Explore data panel, click the “Samples” tab; this triggers `handleTabClick` in
`DataTablesPane` at `DataTablesPane.tsx:143-152`, setting `activeTabKey` to
`ResultTypes.Samples` (`'samples'`) and causing the samples request branch in the effect
at `DataTablesPane.tsx:107-133` to set `isRequest.samples` to `true`.

3. While the panel remains open on the Samples tab, switch the datasource in Explore to a
semantic view whose `datasource.supports_samples` is `false`; `ExploreChartPanel`
re-renders and passes the new `datasource` into `DataTablesPane` (index.tsx:553-564),
where `showSamplesTab` at `DataTablesPane.tsx:204` becomes `false` and `tabItems` at
`DataTablesPane.tsx:205-228` is recomputed without any item whose `key` is
`ResultTypes.Samples`.

4. Observe that `activeTabKey` remains `'samples'` because there is no effect syncing it
to `ResultTypes.Results` when `showSamplesTab` changes, and `Tabs` at
`DataTablesPane.tsx:232-237` is rendered with `activeKey={panelOpen ? activeTabKey : ''}`
but `items={tabItems}` containing only results tabs. With an `activeKey` that no longer
matches any tab item, the data panel renders without a visible active tab or content, and
since `SamplesPane` is no longer mounted, no new results request is issued until the user
manually clicks a results tab to recover.

Fix in Cursor Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** superset-frontend/src/explore/components/DataTablesPane/DataTablesPane.tsx
**Line:** 204:204
**Comment:**
	*Logic Error: Conditionally removing the Samples tab can leave the currently selected tab pointing to a key that no longer exists when the datasource changes from supporting samples to not supporting them. In that state the panel can render with no active pane and no results request, so users see an empty data panel until they manually recover. Add a synchronization step that forces the active tab back to Results whenever samples become unsupported.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

@bito-code-review

Copy link
Copy Markdown
Contributor

The flagged issue is correct. When the Samples tab is conditionally removed from the DataTablesPane due to a datasource change, the activeTabKey state remains set to 'samples', causing the panel to render without content. To resolve this, you should add a useEffect hook in DataTablesPane.tsx that monitors showSamplesTab and resets activeTabKey to ResultTypes.Results if the current tab is no longer available.

Here is the suggested fix for superset-frontend/src/explore/components/DataTablesPane/DataTablesPane.tsx:

  useEffect(() => {
    if (!showSamplesTab && activeTabKey === ResultTypes.Samples) {
      setActiveTabKey(ResultTypes.Results);
    }
  }, [showSamplesTab, activeTabKey]);

I have checked the PR comments and there are no other pending review comments to address. Would you like me to implement any other changes?

superset-frontend/src/explore/components/DataTablesPane/DataTablesPane.tsx

useEffect(() => {
    if (!showSamplesTab && activeTabKey === ResultTypes.Samples) {
      setActiveTabKey(ResultTypes.Results);
    }
  }, [showSamplesTab, activeTabKey]);

@bito-code-review

bito-code-review Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Code Review Agent Run #3e87cf

Actionable Suggestions - 0
Additional Suggestions - 1
  • superset/connectors/sqla/models.py - 1
    • Missing unit test coverage · Line 193-208
      The new capability flags `supports_samples` and `supports_drill_to_detail` lack test coverage in `tests/unit_tests/connectors/sqla/models_test.py`. The existing `test_sqla_table_data_includes_currency_code_column` (line 1001) tests the same `data` property that now serializes these new fields. SemanticView already has equivalent tests (`test_semantic_view_supports_samples_is_false`, `test_semantic_view_supports_drill_to_detail_is_false`) at lines 662-669 in `tests/unit_tests/semantic_layers/models_test.py`.
Filtered by Review Rules

Bito filtered these suggestions based on rules created automatically for your feedback. Manage rules.

  • tests/unit_tests/semantic_layers/models_test.py - 1
Review Details
  • Files reviewed - 17 · Commit Range: a1297d1..7dac6c1
    • superset-frontend/src/components/Chart/DrillDetail/DrillDetailPane.test.tsx
    • superset-frontend/src/components/Chart/DrillDetail/DrillDetailPane.tsx
    • superset-frontend/src/components/Chart/useDrillDetailMenuItems/index.tsx
    • superset-frontend/src/components/Chart/useDrillDetailMenuItems/useDrillDetailMenuItems.test.tsx
    • superset-frontend/src/dashboard/types.ts
    • superset-frontend/src/explore/components/DataTablesPane/DataTablesPane.tsx
    • superset-frontend/src/explore/components/DataTablesPane/components/SamplesPane.tsx
    • superset-frontend/src/explore/components/DataTablesPane/components/useResultsPane.tsx
    • superset-frontend/src/explore/components/DataTablesPane/test/DataTablesPane.test.tsx
    • superset-frontend/src/explore/components/DataTablesPane/test/SamplesPane.test.tsx
    • superset-frontend/src/explore/types.ts
    • superset/connectors/sqla/models.py
    • superset/semantic_layers/models.py
    • superset/superset_typing.py
    • superset/views/datasource/views.py
    • tests/unit_tests/semantic_layers/models_test.py
    • tests/unit_tests/views/datasource/views_test.py
  • Files skipped - 0
  • Tools
    • MyPy (Static Code Analysis) - ✔︎ Successful
    • Astral Ruff (Static Code Analysis) - ✔︎ Successful
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful
    • Eslint (Linter) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

@bito-code-review

bito-code-review Bot commented Jun 29, 2026

Copy link
Copy Markdown
Contributor

Code Review Agent Run #087886

Actionable Suggestions - 0
Review Details
  • Files reviewed - 2 · Commit Range: 7dac6c1..48958cc
    • superset-frontend/src/explore/components/DataTablesPane/DataTablesPane.tsx
    • superset-frontend/src/explore/components/DataTablesPane/test/DataTablesPane.test.tsx
  • Files skipped - 1
    • superset-frontend/package-lock.json - Reason: Filter setting
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

@mikebridge mikebridge 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.

Review: Approve

Clean, well-scoped change — the capability-flag modeling reads nicely and the backward-compat story (server defaults True, strict === false frontend checks) is airtight. Two minor notes, both optional:

  • Drill-to-detail lacks a symmetric server-side gate. supports_samples gets a real refusal in the samples endpoint, but supports_drill_to_detail is only surfaced in the data() payload and enforced in the frontend menu — drill-detail requests flow through the chart-data API (superset/common/query_actions.py:227) with no matching check. Fine for this PR's scope, but the flags are advertised as symmetric while only one is server-enforced. Worth a follow-up if drill must be hard-blocked.
  • Fill the empty PR template sections (TESTING INSTRUCTIONS, ADDITIONAL INFORMATION are blank; UI checkbox unchecked despite the UI behaviour change), and drop the stray package-lock.json libc churn if easy.

This review was generated by Claude (AI) on behalf of @mikebridge.

@rusackas

rusackas commented Jul 2, 2026

Copy link
Copy Markdown
Member

@betodealmeida should we worry about the codeant finding? We might want to make sure we have tests that assert the Samples tab doesn't show as blank, and re-appears when switching back to a SQL tab.

@mikebridge mikebridge 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.

Approving — LGTM. Any notes in my earlier review are non-blocking.

This review was generated by Claude (AI) on behalf of @mikebridge.

Comment thread superset/views/datasource/views.py
Comment thread tests/unit_tests/common/test_query_actions_drill_detail.py
Comment thread tests/unit_tests/common/test_query_actions_drill_detail.py
@bito-code-review

bito-code-review Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

Code Review Agent Run #b0733f

Actionable Suggestions - 0
Additional Suggestions - 3
  • superset-frontend/src/explore/types.ts - 1
    • Semantic duplication across types · Line 81-92
      The added `supports_samples` and `supports_drill_to_detail` properties are duplicated in `src/dashboard/types.ts:235-237` with different docstring styles (single-line vs multi-line with backticks). Having the same type definition in two places increases maintenance burden and creates divergence risk.
  • superset/superset_typing.py - 1
    • Docstring missing new fields · Line 341-345
      The class docstring (lines 281–294) documents every other field in the 'Additional fields from SqlaTable' block but omits the two new fields `supports_samples` and `supports_drill_to_detail` introduced at lines 343–345. Readers relying on the docstring header will find no entry for these capabilities, creating a maintenance gap between documentation and implementation.
  • superset-frontend/src/explore/components/DataTablesPane/DataTablesPane.tsx - 1
    • Unnecessary optional chaining · Line 241-241
      The optional chaining `?.` on line 241 is unnecessary — `datasource` is a required prop in `DataTablesPaneProps` and is never `undefined` at runtime. Using `datasource.supports_samples` instead removes the dead-code branch and clarifies the contract.
Filtered by Review Rules

Bito filtered these suggestions based on rules created automatically for your feedback. Manage rules.

  • tests/unit_tests/common/test_query_actions_drill_detail.py - 1
Review Details
  • Files reviewed - 19 · Commit Range: b5e1aef..a664294
    • superset-frontend/src/components/Chart/DrillDetail/DrillDetailPane.test.tsx
    • superset-frontend/src/components/Chart/DrillDetail/DrillDetailPane.tsx
    • superset-frontend/src/components/Chart/useDrillDetailMenuItems/index.tsx
    • superset-frontend/src/components/Chart/useDrillDetailMenuItems/useDrillDetailMenuItems.test.tsx
    • superset-frontend/src/dashboard/types.ts
    • superset-frontend/src/explore/components/DataTablesPane/DataTablesPane.tsx
    • superset-frontend/src/explore/components/DataTablesPane/components/SamplesPane.tsx
    • superset-frontend/src/explore/components/DataTablesPane/components/useResultsPane.tsx
    • superset-frontend/src/explore/components/DataTablesPane/test/DataTablesPane.test.tsx
    • superset-frontend/src/explore/components/DataTablesPane/test/SamplesPane.test.tsx
    • superset-frontend/src/explore/types.ts
    • superset/common/query_actions.py
    • superset/connectors/sqla/models.py
    • superset/semantic_layers/models.py
    • superset/superset_typing.py
    • superset/views/datasource/views.py
    • tests/unit_tests/common/test_query_actions_drill_detail.py
    • tests/unit_tests/semantic_layers/models_test.py
    • tests/unit_tests/views/datasource/views_test.py
  • Files skipped - 0
  • Tools
    • MyPy (Static Code Analysis) - ✔︎ Successful
    • Astral Ruff (Static Code Analysis) - ✔︎ Successful
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful
    • Eslint (Linter) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

# ---------------------------------------------------------------------------


@patch("superset.views.datasource.views._", lambda s: s)

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.

Suggestion: Replace the inline lambda with a named helper function that includes explicit parameter and return type annotations, and patch using that typed helper instead. [custom_rule]

Severity Level: Minor ⚠️

Why it matters? 🤔

The new code introduces an inline lambda without type hints in a modified Python file. Since the rule requires type hints for new or modified Python code where annotations can be added, replacing it with a named helper annotated with explicit parameter and return types is a valid match.

Rule source 📖

.cursor/rules/dev-standard.mdc (line 28)

Fix in Cursor Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** tests/unit_tests/views/datasource/views_test.py
**Line:** 322:322
**Comment:**
	*Custom Rule: Replace the inline lambda with a named helper function that includes explicit parameter and return type annotations, and patch using that typed helper instead.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

@bito-code-review

bito-code-review Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Code Review Agent Run #f6a2db

Actionable Suggestions - 0
Review Details
  • Files reviewed - 3 · Commit Range: a664294..76ed4cd
    • superset-frontend/src/components/GridTable/Header.test.tsx
    • superset-frontend/src/explore/types.ts
    • superset-frontend/src/features/alerts/AlertReportModal.test.tsx
  • Files skipped - 0
  • Tools
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful
    • Eslint (Linter) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

@rebenitez1802 rebenitez1802 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.

thanks for addressing the comments, LGTM

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.

are this changes intended?

@rusackas

rusackas commented Jul 9, 2026

Copy link
Copy Markdown
Member

Obviously we need a rebase here, but does anyone want to sweep through the bot review comments (many are not marked as resolved) and take/reject/resolve them?

(the branch is on origin, so any Committer should be able to do this)

@rusackas

Copy link
Copy Markdown
Member

Happy to tackle the rebase here if @betodealmeida doesn't have time and nobody else wants to volunteer :) Just say the word.

Comment on lines +134 to +136
expect(screen.getByText('Results')).toBeVisible();
// Panel stays expanded and renders Results content rather than going blank.
expect(screen.getByLabelText('Collapse data panel')).toBeVisible();

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.

Suggestion: This regression test does not actually verify that the pane switched away from an orphaned tab and rendered fallback content; it only checks that the tab label and collapse button are visible, which can still be true when the content area is blank. Add an assertion on concrete Results-pane content (or active tab state) after rerender so the original blank-panel bug cannot pass unnoticed. [logic error]

Severity Level: Major ⚠️
- ⚠️ Explore Data panel regression may bypass this specific test.
- ⚠️ Blank Results content on datasource swap might reoccur undetected.
- ⚠️ Regression coverage for semantic view datasources remains incomplete.
Steps of Reproduction ✅
1. Open
`superset-frontend/src/explore/components/DataTablesPane/test/DataTablesPane.test.tsx` and
locate the test `Falls back to Results when active Samples tab disappears mid-session` at
lines 108–137, which documents a prior bug leaving `activeTabKey === 'samples'` and
rendering a blank panel (comment at lines 109–112).

2. Assume the original bug in `DataTablesPane` reappears so that, after a datasource swap
that removes the Samples tab, the tab strip (including the `Results` label) and the panel
chrome (including the `Collapse data panel` button) still render, but the content area
remains blank because the active tab key no longer matches any rendered tab (as described
in the test comment).

3. Run the frontend test suite (e.g. `npm test -- DataTablesPane.test.tsx`) so this
regression test mounts `DataTablesPane`, clicks `Expand data panel` and `Samples`, then
rerenders with `supports_samples: false`, following the exact sequence coded at lines
113–133.

4. Observe that the assertions at lines 134–136 only verify that the `Results` tab label
and `Collapse data panel` button are visible, without asserting any concrete Results
content (such as table rows) or the active tab state; in the bug scenario described in
step 2 these UI chrome elements can still be present while the content area is blank, so
the test still passes and fails to catch the regression.

Fix in Cursor Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is a comment left during a code review.

**Path:** superset-frontend/src/explore/components/DataTablesPane/test/DataTablesPane.test.tsx
**Line:** 134:136
**Comment:**
	*Logic Error: This regression test does not actually verify that the pane switched away from an orphaned tab and rendered fallback content; it only checks that the tab label and collapse button are visible, which can still be true when the content area is blank. Add an assertion on concrete Results-pane content (or active tab state) after rerender so the original blank-panel bug cannot pass unnoticed.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix
👍 | 👎

@bito-code-review

bito-code-review Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Code Review Agent Run #2038ba

Actionable Suggestions - 0
Additional Suggestions - 3
  • superset/connectors/sqla/models.py - 1
    • Missing test coverage for new flags · Line 196-204
      The new `supports_samples` and `supports_drill_to_detail` flags default to `True` for SQL-backed datasources but lack test coverage for the default case. Existing tests only verify the overridden `False` behavior in `SemanticView`. Add tests asserting concrete classes return `True` for these fields to prevent regressions if a subclass accidentally inherits `False`.
  • superset/superset_typing.py - 2
    • Incomplete TypedDict docstring · Line 347-349
      The `supports_samples` field is defined but not documented in the `ExplorableData` class docstring. The inline comment (lines 347-348) is helpful, but the docstring's field listing (lines 287-301) should be updated for API documentation completeness.
    • Incomplete TypedDict docstring · Line 350-351
      The `supports_drill_to_detail` field is defined but not documented in the `ExplorableData` class docstring. The inline comment (lines 350-351) is helpful, but the docstring's field listing should be updated for API documentation completeness.
Review Details
  • Files reviewed - 19 · Commit Range: 44234c6..f4d4caf
    • superset-frontend/src/components/Chart/DrillDetail/DrillDetailPane.test.tsx
    • superset-frontend/src/components/Chart/DrillDetail/DrillDetailPane.tsx
    • superset-frontend/src/components/Chart/useDrillDetailMenuItems/index.tsx
    • superset-frontend/src/components/Chart/useDrillDetailMenuItems/useDrillDetailMenuItems.test.tsx
    • superset-frontend/src/dashboard/types.ts
    • superset-frontend/src/explore/components/DataTablesPane/DataTablesPane.tsx
    • superset-frontend/src/explore/components/DataTablesPane/components/SamplesPane.tsx
    • superset-frontend/src/explore/components/DataTablesPane/components/useResultsPane.tsx
    • superset-frontend/src/explore/components/DataTablesPane/test/DataTablesPane.test.tsx
    • superset-frontend/src/explore/components/DataTablesPane/test/SamplesPane.test.tsx
    • superset-frontend/src/explore/types.ts
    • superset/common/query_actions.py
    • superset/connectors/sqla/models.py
    • superset/semantic_layers/models.py
    • superset/superset_typing.py
    • superset/views/datasource/views.py
    • tests/unit_tests/common/test_query_actions_drill_detail.py
    • tests/unit_tests/semantic_layers/models_test.py
    • tests/unit_tests/views/datasource/views_test.py
  • Files skipped - 0
  • Tools
    • MyPy (Static Code Analysis) - ✔︎ Successful
    • Astral Ruff (Static Code Analysis) - ✔︎ Successful
    • Whispers (Secret Scanner) - ✔︎ Successful
    • Detect-secrets (Secret Scanner) - ✔︎ Successful
    • Eslint (Linter) - ✔︎ Successful

Bito Usage Guide

Commands

Type the following command in the pull request comment and save the comment.

  • /review - Manually triggers a full AI review.

  • /pause - Pauses automatic reviews on this pull request.

  • /resume - Resumes automatic reviews.

  • /resolve - Marks all Bito-posted review comments as resolved.

  • /abort - Cancels all in-progress reviews.

Refer to the documentation for additional commands.

Configuration

This repository uses Superset You can customize the agent settings here or contact your Bito workspace admin at evan@preset.io.

Documentation & Help

AI Code Review powered by Bito Logo

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

Labels

change:frontend Requires changing the frontend explore:design Related to the Explore UI/UX preset-io size/L

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants