You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by "ramiroaquinoromero (via GitHub)" <gi...@apache.org> on 2026/01/28 00:18:50 UTC
[PR] fix(explore-chart-panel): 'Last Queried at' Overlap [superset]
ramiroaquinoromero opened a new pull request, #37501:
URL: https://github.com/apache/superset/pull/37501
<!---
Please write the PR title following the conventions at https://www.conventionalcommits.org/en/v1.0.0/
Example:
fix(dashboard): load charts correctly
-->
### SUMMARY
<!--- Describe the change below, including rationale and design decisions -->
Open up an existing chart from the charts list (note that it's easier to see this bug on a bar chart, area chart, line chart etc than it is on something like a Big Number)
### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
### Before
### After
https://github.com/user-attachments/assets/92a5948c-0eb2-4210-a326-03e52d7fcab8
<!--- Skip this if not applicable -->
### TESTING INSTRUCTIONS
<!--- Required! What steps can be taken to manually verify the changes? -->
### ADDITIONAL INFORMATION
<!--- Check any relevant boxes with "x" -->
<!--- HINT: Include "Fixes #nnn" if you are fixing an existing issue -->
- [ ] Has associated issue:
- [ ] Required feature flags:
- [x] Changes UI
- [ ] Includes DB Migration (follow approval process in [SIP-59](https://github.com/apache/superset/issues/13351))
- [ ] 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
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "msyavuz (via GitHub)" <gi...@apache.org>.
msyavuz commented on PR #37501:
URL: https://github.com/apache/superset/pull/37501#issuecomment-3816630516
Also can you add some testing steps and highlight the bug on the summary. I attached the issue onto the pr but it would be easy to miss what's wrong from the videos
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "alexandrusoare (via GitHub)" <gi...@apache.org>.
alexandrusoare commented on code in PR #37501:
URL: https://github.com/apache/superset/pull/37501#discussion_r2797867469
##########
superset-frontend/src/explore/components/ExploreChartPanel/index.tsx:
##########
@@ -244,19 +264,22 @@ const ExploreChartPanel = ({
setShowSplit(isOpen);
}, []);
- const renderChart = useCallback(
+ const renderChart = useMemo(
() => (
<div
css={css`
- min-height: 0;
- flex: 1;
- overflow: auto;
+ min-height: 260px;
+ min-width: 300px;
Review Comment:
I am curious on how did we decide on these values? Is there a recurring pattern for these values?
##########
superset-frontend/src/explore/components/ExploreChartPanel/index.tsx:
##########
@@ -282,7 +305,7 @@ const ExploreChartPanel = ({
})}
{...(chart.chartStatus && { chartStatus: chart.chartStatus })}
/>
- )}
+ ) : null}
</div>
Review Comment:
Why did we drop `&&` for `?` ?
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #37501:
URL: https://github.com/apache/superset/pull/37501#issuecomment-3826702574
AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
<details>
<summary>
Bito Usage Guide
</summary>
**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 <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/available-commands" target="_blank" rel="noopener noreferrer">documentation</a> for additional commands.
**Configuration**
This repository uses `Superset` You can customize the agent settings <a href="https://alpha.bito.ai/home/ai-agents/code-review-agent" target="_blank" rel="noopener noreferrer">here</a> or contact your Bito workspace admin at evan@preset.io.
**Documentation & Help**
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/getting-started/install-run-using-bito-cloud/create-or-customize-an-agent-instance" target="_blank" rel="noopener noreferrer">Customize agent settings</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/implementing-custom-code-review-rules" target="_blank" rel="noopener noreferrer">Review rules</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent" target="_blank" rel="noopener noreferrer">General documentation</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/faqs" target="_blank" rel="noopener noreferrer">FAQ</a>
</details>
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "codeant-ai-for-open-source[bot] (via GitHub)" <gi...@apache.org>.
codeant-ai-for-open-source[bot] commented on code in PR #37501:
URL: https://github.com/apache/superset/pull/37501#discussion_r2748362168
##########
superset-frontend/src/explore/components/ExploreChartPanel/index.tsx:
##########
@@ -143,11 +165,9 @@ const ExploreChartPanel = ({
can_download: canDownload,
}: ExploreChartPanelProps) => {
const theme = useTheme();
- const gutterMargin = theme.sizeUnit * GUTTER_SIZE_FACTOR;
const gutterHeight = theme.sizeUnit * GUTTER_SIZE_FACTOR;
const {
ref: chartPanelRef,
- observerRef: resizeObserverRef,
width: chartPanelWidth,
height: chartPanelHeight,
Review Comment:
**Suggestion:** The `updateQueryContext` callback captures `force` (and potentially other values) but its dependency array only includes `[slice]`, so it will use a stale `force` value when those change; include all referenced external variables in the dependency array to avoid stale closures. [race condition]
<details>
<summary><b>Severity Level:</b> Major ⚠️</summary>
```mdx
- ⚠️ Persisted chart query_context may use wrong force flag.
- ⚠️ /api/v1/chart/{slice_id} PUT called with stale payload.
- ⚠️ Chart metadata persistence logic affected in Explore UI.
```
</details>
```suggestion
[slice, force],
```
<details>
<summary><b>Steps of Reproduction ✅ </b></summary>
```mdx
1. Open the Explore chart panel component defined in
superset-frontend/src/explore/components/ExploreChartPanel/index.tsx. The callback
updateQueryContext is declared at index.tsx (see line indicated above) and is memoized
with useCallback.
2. Ensure the chart Slice exists and its stored query_context is null (slice.query_context
=== null). This condition is checked inside updateQueryContext (index.tsx:150-170).
3. Trigger a prop change that toggles the `force` prop passed into ExploreChartPanel (for
example, a parent action that sets force to true to force-refresh the chart). Because
updateQueryContext's dependency array only contains [slice], the callback is not
recomputed when `force` changes.
4. The useEffect that calls updateQueryContext (index.tsx — the effect invoking
updateQueryContext is immediately after the callback declaration) will invoke the stale
updateQueryContext closure which uses the old `force` value when building the query
context and when calling SupersetClient.put('/api/v1/chart/${slice.slice_id}'), causing
the persisted query_context to be generated with an incorrect `force` value.
Note: This is not a hypothetical path — the file contains updateQueryContext (index.tsx)
and a subsequent useEffect that calls it. The missing dependency on `force` means current
code intentionally captures stale `force`; adding `force` to the dependency array aligns
the callback lifetime with referenced values.
```
</details>
<details>
<summary><b>Prompt for AI Agent 🤖 </b></summary>
```mdx
This is a comment left during a code review.
**Path:** superset-frontend/src/explore/components/ExploreChartPanel/index.tsx
**Line:** 172:172
**Comment:**
*Race Condition: The `updateQueryContext` callback captures `force` (and potentially other values) but its dependency array only includes `[slice]`, so it will use a stale `force` value when those change; include all referenced external variables in the dependency array to avoid stale closures.
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.
```
</details>
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "ramiroaquinoromero (via GitHub)" <gi...@apache.org>.
ramiroaquinoromero commented on code in PR #37501:
URL: https://github.com/apache/superset/pull/37501#discussion_r2805455553
##########
superset-frontend/src/explore/components/ExploreChartPanel/index.tsx:
##########
@@ -244,19 +264,22 @@ const ExploreChartPanel = ({
setShowSplit(isOpen);
}, []);
- const renderChart = useCallback(
+ const renderChart = useMemo(
() => (
<div
css={css`
- min-height: 0;
- flex: 1;
- overflow: auto;
+ min-height: 260px;
+ min-width: 300px;
Review Comment:
It was only to establish a size since we were advised to set one
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "msyavuz (via GitHub)" <gi...@apache.org>.
msyavuz commented on code in PR #37501:
URL: https://github.com/apache/superset/pull/37501#discussion_r2740835794
##########
superset-frontend/src/explore/components/ExploreChartPanel/index.tsx:
##########
@@ -243,19 +262,23 @@ const ExploreChartPanel = ({
setShowSplit(isOpen);
}, []);
- const renderChart = useCallback(
+ const renderChart = useMemo(
Review Comment:
Why are we changing this from a function to variable?
##########
superset-frontend/src/explore/components/ExploreChartPanel/index.tsx:
##########
@@ -99,29 +99,50 @@ const MIN_SIZES: PanelSizes = [300, 65];
const DEFAULT_SOUTH_PANE_HEIGHT_PERCENT = 40;
const Styles = styled.div<{ showSplite: boolean }>`
+ box-sizing: border-box;
display: flex;
flex-direction: column;
align-items: stretch;
align-content: stretch;
- overflow: auto;
+ overflow: hidden;
box-shadow: none;
height: 100%;
+ width: 100%;
& > div {
height: 100%;
+ min-height: 0;
+ width: 100%;
+ box-sizing: border-box;
}
.gutter {
border-top: 1px solid ${({ theme }) => theme.colorSplit};
border-bottom: 1px solid ${({ theme }) => theme.colorSplit};
width: ${({ theme }) => theme.sizeUnit * 9}px;
- margin: ${({ theme }) => theme.sizeUnit * GUTTER_SIZE_FACTOR}px auto;
+ margin: 0 auto;
+ box-sizing: border-box;
+ background-color: ${({ theme }) => theme.colorFillQuaternary};
}
.gutter.gutter-vertical {
display: ${({ showSplite }) => (showSplite ? 'block' : 'none')};
cursor: row-resize;
+ position: relative;
+ z-index: 1;
Review Comment:
We should avoid it if we can
##########
superset-frontend/src/explore/components/ExploreChartPanel/useResizeDetectorByObserver.ts:
##########
@@ -16,30 +16,35 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { useState, useCallback, useRef } from 'react';
+import { useMemo } from 'react';
import { useResizeDetector } from 'react-resize-detector';
export default function useResizeDetectorByObserver() {
- const ref = useRef<HTMLDivElement>(null);
- const [{ width, height }, setChartPanelSize] = useState<{
- width?: number;
- height?: number;
- }>({});
Review Comment:
Is this hook used anywhere else? If so how do they get affected?
##########
superset-frontend/src/explore/components/ExploreChartPanel/index.tsx:
##########
@@ -99,29 +99,50 @@ const MIN_SIZES: PanelSizes = [300, 65];
const DEFAULT_SOUTH_PANE_HEIGHT_PERCENT = 40;
const Styles = styled.div<{ showSplite: boolean }>`
+ box-sizing: border-box;
display: flex;
flex-direction: column;
align-items: stretch;
align-content: stretch;
- overflow: auto;
+ overflow: hidden;
box-shadow: none;
height: 100%;
+ width: 100%;
& > div {
height: 100%;
+ min-height: 0;
+ width: 100%;
+ box-sizing: border-box;
}
.gutter {
border-top: 1px solid ${({ theme }) => theme.colorSplit};
border-bottom: 1px solid ${({ theme }) => theme.colorSplit};
width: ${({ theme }) => theme.sizeUnit * 9}px;
- margin: ${({ theme }) => theme.sizeUnit * GUTTER_SIZE_FACTOR}px auto;
+ margin: 0 auto;
+ box-sizing: border-box;
+ background-color: ${({ theme }) => theme.colorFillQuaternary};
}
.gutter.gutter-vertical {
display: ${({ showSplite }) => (showSplite ? 'block' : 'none')};
cursor: row-resize;
+ position: relative;
+ z-index: 1;
Review Comment:
Is this z-indext required?
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "ramiroaquinoromero (via GitHub)" <gi...@apache.org>.
ramiroaquinoromero commented on code in PR #37501:
URL: https://github.com/apache/superset/pull/37501#discussion_r2744340303
##########
superset-frontend/src/explore/components/ExploreChartPanel/useResizeDetectorByObserver.ts:
##########
@@ -16,30 +16,35 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { useState, useCallback, useRef } from 'react';
+import { useMemo } from 'react';
import { useResizeDetector } from 'react-resize-detector';
export default function useResizeDetectorByObserver() {
- const ref = useRef<HTMLDivElement>(null);
- const [{ width, height }, setChartPanelSize] = useState<{
- width?: number;
- height?: number;
- }>({});
Review Comment:
I checked the codebase and useResizeDetectorByObserver is only used in ExploreChartPanel/index.tsx. The hook is specifically designed for this component's needs.
The changes simplify the implementation by:
- Removing internal state management that was causing unnecessary re-renders
- Leveraging react-resize-detector's built-in debouncing (refreshMode: 'debounce', refreshRate: 100)
- Using useMemo to floor dimensions and prevent sub-pixel render loops
- Since it's only used in one place, there are no side effects on other components
##########
superset-frontend/src/explore/components/ExploreChartPanel/index.tsx:
##########
@@ -243,19 +262,23 @@ const ExploreChartPanel = ({
setShowSplit(isOpen);
}, []);
- const renderChart = useCallback(
+ const renderChart = useMemo(
Review Comment:
This optimizes chart loading by preventing the graph from recalculating if it hasn't changed. Since it directly returns JSX, useMemo is fully compatible and avoids unnecessary re-renders
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "ramiroaquinoromero (via GitHub)" <gi...@apache.org>.
ramiroaquinoromero commented on PR #37501:
URL: https://github.com/apache/superset/pull/37501#issuecomment-3888404250
@msyavuz Please review it.
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "alexandrusoare (via GitHub)" <gi...@apache.org>.
alexandrusoare commented on PR #37501:
URL: https://github.com/apache/superset/pull/37501#issuecomment-3889834251
Superset uses Git pre-commit hooks courtesy of [pre-commit](https://pre-commit.com/). To install run the following:
```
pip3 install -r requirements/development.txt
pre-commit install
```
A series of checks will now run when you make a git commit.
Alternatively it is possible to run pre-commit by running pre-commit manually:
```
pre-commit run --all-files
```
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #37501:
URL: https://github.com/apache/superset/pull/37501#issuecomment-3815536611
AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
<details>
<summary>
Bito Usage Guide
</summary>
**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 <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/available-commands" target="_blank" rel="noopener noreferrer">documentation</a> for additional commands.
**Configuration**
This repository uses `Superset` You can customize the agent settings <a href="https://alpha.bito.ai/home/ai-agents/code-review-agent" target="_blank" rel="noopener noreferrer">here</a> or contact your Bito workspace admin at evan@preset.io.
**Documentation & Help**
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/getting-started/install-run-using-bito-cloud/create-or-customize-an-agent-instance" target="_blank" rel="noopener noreferrer">Customize agent settings</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/implementing-custom-code-review-rules" target="_blank" rel="noopener noreferrer">Review rules</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent" target="_blank" rel="noopener noreferrer">General documentation</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/faqs" target="_blank" rel="noopener noreferrer">FAQ</a>
</details>
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): 'Last Queried at' Overlap [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #37501:
URL: https://github.com/apache/superset/pull/37501#issuecomment-3808239421
AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on code in PR #37501:
URL: https://github.com/apache/superset/pull/37501#discussion_r2748578198
##########
superset-frontend/src/explore/components/ExploreChartPanel/useResizeDetectorByObserver.ts:
##########
@@ -16,30 +16,35 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { useState, useCallback, useRef } from 'react';
+import { useMemo } from 'react';
import { useResizeDetector } from 'react-resize-detector';
export default function useResizeDetectorByObserver() {
- const ref = useRef<HTMLDivElement>(null);
- const [{ width, height }, setChartPanelSize] = useState<{
- width?: number;
- height?: number;
- }>({});
- const onResize = useCallback(() => {
- if (ref.current) {
- const { width, height } = ref.current.getBoundingClientRect?.() || {};
- setChartPanelSize({ width, height });
- }
- }, []);
- const { ref: observerRef } = useResizeDetector({
+ const {
+ width: rawWidth,
+ height: rawHeight,
+ ref,
+ } = useResizeDetector({
refreshMode: 'debounce',
- refreshRate: 300,
- onResize,
+ refreshRate: 250,
+ handleHeight: true,
+ handleWidth: true,
+ skipOnMount: true,
});
Review Comment:
<div>
<div id="suggestion">
<div id="issue"><b>Broken initial chart render</b></div>
<div id="fix">
Setting skipOnMount to true skips the initial resize event, leaving width and height undefined until the first resize. This prevents ChartContainer from rendering initially in `ExploreChartPanel`, as it only renders when both dimensions are defined.
</div>
<details>
<summary>
<b>Code suggestion</b>
</summary>
<blockquote>Check the AI-generated fix before applying</blockquote>
<div id="code">
````suggestion
refreshMode: 'debounce',
refreshRate: 250,
handleHeight: true,
handleWidth: true,
skipOnMount: false,
});
````
</div>
</details>
</div>
<small><i>Code Review Run #988724</i></small>
</div>
---
Should Bito avoid suggestions like this for future reviews? (<a href=https://alpha.bito.ai/home/ai-agents/review-rules>Manage Rules</a>)
- [ ] Yes, avoid them
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "ramiroaquinoromero (via GitHub)" <gi...@apache.org>.
ramiroaquinoromero commented on code in PR #37501:
URL: https://github.com/apache/superset/pull/37501#discussion_r2805461161
##########
superset-frontend/src/explore/components/ExploreChartPanel/index.tsx:
##########
@@ -282,7 +305,7 @@ const ExploreChartPanel = ({
})}
{...(chart.chartStatus && { chartStatus: chart.chartStatus })}
/>
- )}
+ ) : null}
</div>
Review Comment:
We use the ternary so we never render a falsy value (like 0). With &&, if width or height is 0, React would show that "0" on screen; with ? ... : null we only render the chart or nothing.
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): 'Last Queried at' Overlap [superset]
Posted by "netlify[bot] (via GitHub)" <gi...@apache.org>.
netlify[bot] commented on PR #37501:
URL: https://github.com/apache/superset/pull/37501#issuecomment-3808248378
### <span aria-hidden="true">✅</span> Deploy Preview for *superset-docs-preview* ready!
| Name | Link |
|:-:|------------------------|
|<span aria-hidden="true">🔨</span> Latest commit | 22dd1a62030ed3ec05e5944a80f1c70e0a765714 |
|<span aria-hidden="true">🔍</span> Latest deploy log | https://app.netlify.com/projects/superset-docs-preview/deploys/697955eaf29bec00088459be |
|<span aria-hidden="true">😎</span> Deploy Preview | [https://deploy-preview-37501--superset-docs-preview.netlify.app](https://deploy-preview-37501--superset-docs-preview.netlify.app) |
|<span aria-hidden="true">📱</span> Preview on mobile | <details><summary> Toggle QR Code... </summary><br /><br /><br /><br />_Use your smartphone camera to open QR code link._</details> |
---
<!-- [superset-docs-preview Preview](https://deploy-preview-37501--superset-docs-preview.netlify.app) -->
_To edit notification comments on pull requests, go to your [Netlify project configuration](https://app.netlify.com/projects/superset-docs-preview/configuration/notifications#deploy-notifications)._
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "massucattoj (via GitHub)" <gi...@apache.org>.
massucattoj commented on PR #37501:
URL: https://github.com/apache/superset/pull/37501#issuecomment-4229858774
Hi! Just a heads up — the root cause of this issue was fixed in #39160 (merged April 8), which consolidated the resize observer refs that were causing the layout mismatch. The "Last queried at" overlap can no
longer be reproduced on current master. This PR can likely be closed. @msyavuz
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "ramiroaquinoromero (via GitHub)" <gi...@apache.org>.
ramiroaquinoromero commented on code in PR #37501:
URL: https://github.com/apache/superset/pull/37501#discussion_r2748296406
##########
superset-frontend/src/explore/components/ExploreChartPanel/index.tsx:
##########
@@ -99,29 +99,50 @@ const MIN_SIZES: PanelSizes = [300, 65];
const DEFAULT_SOUTH_PANE_HEIGHT_PERCENT = 40;
const Styles = styled.div<{ showSplite: boolean }>`
+ box-sizing: border-box;
display: flex;
flex-direction: column;
align-items: stretch;
align-content: stretch;
- overflow: auto;
Review Comment:
Done
##########
superset-frontend/src/explore/components/ExploreChartPanel/index.tsx:
##########
@@ -99,29 +99,50 @@ const MIN_SIZES: PanelSizes = [300, 65];
const DEFAULT_SOUTH_PANE_HEIGHT_PERCENT = 40;
const Styles = styled.div<{ showSplite: boolean }>`
+ box-sizing: border-box;
display: flex;
flex-direction: column;
align-items: stretch;
align-content: stretch;
- overflow: auto;
+ overflow: hidden;
box-shadow: none;
height: 100%;
+ width: 100%;
& > div {
height: 100%;
+ min-height: 0;
+ width: 100%;
+ box-sizing: border-box;
}
.gutter {
border-top: 1px solid ${({ theme }) => theme.colorSplit};
border-bottom: 1px solid ${({ theme }) => theme.colorSplit};
width: ${({ theme }) => theme.sizeUnit * 9}px;
- margin: ${({ theme }) => theme.sizeUnit * GUTTER_SIZE_FACTOR}px auto;
+ margin: 0 auto;
+ box-sizing: border-box;
+ background-color: ${({ theme }) => theme.colorFillQuaternary};
}
.gutter.gutter-vertical {
display: ${({ showSplite }) => (showSplite ? 'block' : 'none')};
cursor: row-resize;
+ position: relative;
+ z-index: 1;
Review Comment:
removed index
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "reynoldmorel (via GitHub)" <gi...@apache.org>.
reynoldmorel commented on code in PR #37501:
URL: https://github.com/apache/superset/pull/37501#discussion_r2742000564
##########
superset-frontend/src/explore/components/ExploreChartPanel/index.tsx:
##########
@@ -99,29 +99,50 @@ const MIN_SIZES: PanelSizes = [300, 65];
const DEFAULT_SOUTH_PANE_HEIGHT_PERCENT = 40;
const Styles = styled.div<{ showSplite: boolean }>`
+ box-sizing: border-box;
display: flex;
flex-direction: column;
align-items: stretch;
align-content: stretch;
- overflow: auto;
Review Comment:
I think setting overflow to hidden is not a good option, because I can change either size of the browser and the zoom, and those should make the scrollbars to show, if there is a very small space to render the element. If not it would look like cut
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "alexandrusoare (via GitHub)" <gi...@apache.org>.
alexandrusoare commented on PR #37501:
URL: https://github.com/apache/superset/pull/37501#issuecomment-3896168720
Can we also update the description to get more of context on what the issue was, what was the root cause and what the fix is?
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "sadpandajoe (via GitHub)" <gi...@apache.org>.
sadpandajoe closed pull request #37501: fix(explore-chart-panel): last queried at overlap
URL: https://github.com/apache/superset/pull/37501
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "codeant-ai-for-open-source[bot] (via GitHub)" <gi...@apache.org>.
codeant-ai-for-open-source[bot] commented on code in PR #37501:
URL: https://github.com/apache/superset/pull/37501#discussion_r2739880208
##########
superset-frontend/src/explore/components/ExploreChartPanel/useResizeDetectorByObserver.ts:
##########
@@ -16,30 +16,35 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { useState, useCallback, useRef } from 'react';
+import { useMemo } from 'react';
import { useResizeDetector } from 'react-resize-detector';
export default function useResizeDetectorByObserver() {
- const ref = useRef<HTMLDivElement>(null);
- const [{ width, height }, setChartPanelSize] = useState<{
- width?: number;
- height?: number;
- }>({});
- const onResize = useCallback(() => {
- if (ref.current) {
- const { width, height } = ref.current.getBoundingClientRect?.() || {};
- setChartPanelSize({ width, height });
- }
- }, []);
- const { ref: observerRef } = useResizeDetector({
+ const {
+ width: rawWidth,
+ height: rawHeight,
+ ref,
+ } = useResizeDetector({
refreshMode: 'debounce',
- refreshRate: 300,
- onResize,
+ refreshRate: 100,
+ handleHeight: true,
+ handleWidth: true,
+ skipOnMount: false,
});
+ // Round dimensions immediately to prevent sub-pixel render loops
+ const width = useMemo(
+ () => (rawWidth ? Math.floor(rawWidth) : undefined),
Review Comment:
**Suggestion:** Falsy-value bug: the check `rawWidth ? ... : undefined` treats 0 (and other falsy numeric values like NaN) as absent and returns `undefined` instead of 0, causing consumers to believe there's no width when the element is actually 0px wide; replace the truthy check with a finite-number check (e.g., `rawWidth != null && Number.isFinite(rawWidth)`). [logic error]
<details>
<summary><b>Severity Level:</b> Major ⚠️</summary>
```mdx
- ❌ ExploreChartPanel charts receive incorrect width value.
- ⚠️ Chart rendering falls back to stale dimensions.
- ⚠️ UI overlap/visual glitches when panels collapse.
```
</details>
```suggestion
() => (rawWidth != null && Number.isFinite(rawWidth) ? Math.floor(rawWidth) : undefined),
```
<details>
<summary><b>Steps of Reproduction ✅ </b></summary>
```mdx
1. Start the frontend with the PR code and open the Explore page that mounts the chart
panel.
2. The hook `useResizeDetectorByObserver()` defined in
`superset-frontend/src/explore/components/ExploreChartPanel/useResizeDetectorByObserver.ts`
collects raw sizes (see rawWidth at line 24 in this file). When the chart container
becomes exactly 0px wide (for example, by collapsing adjacent UI panels), the resize
observer sets `rawWidth` to 0 at the assignment on line 24.
3. The width memoization at lines 36-39 executes: `() => (rawWidth ? Math.floor(rawWidth)
: undefined)`. Because `0` is falsy, the expression returns `undefined` instead of `0`.
4. Any consumer of this hook (the Explore chart panel component that imports this hook)
receives `width === undefined` instead of `width === 0`. Consumers that treat undefined as
"not measured" may skip rendering or reuse previous dimensions, causing visible
layout/rendering mismatches (overlap) when the container is actually 0px wide.
```
</details>
<details>
<summary><b>Prompt for AI Agent 🤖 </b></summary>
```mdx
This is a comment left during a code review.
**Path:** superset-frontend/src/explore/components/ExploreChartPanel/useResizeDetectorByObserver.ts
**Line:** 37:37
**Comment:**
*Logic Error: Falsy-value bug: the check `rawWidth ? ... : undefined` treats 0 (and other falsy numeric values like NaN) as absent and returns `undefined` instead of 0, causing consumers to believe there's no width when the element is actually 0px wide; replace the truthy check with a finite-number check (e.g., `rawWidth != null && Number.isFinite(rawWidth)`).
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.
```
</details>
##########
superset-frontend/src/explore/components/ExploreChartPanel/useResizeDetectorByObserver.ts:
##########
@@ -16,30 +16,35 @@
* specific language governing permissions and limitations
* under the License.
*/
-import { useState, useCallback, useRef } from 'react';
+import { useMemo } from 'react';
import { useResizeDetector } from 'react-resize-detector';
export default function useResizeDetectorByObserver() {
- const ref = useRef<HTMLDivElement>(null);
- const [{ width, height }, setChartPanelSize] = useState<{
- width?: number;
- height?: number;
- }>({});
- const onResize = useCallback(() => {
- if (ref.current) {
- const { width, height } = ref.current.getBoundingClientRect?.() || {};
- setChartPanelSize({ width, height });
- }
- }, []);
- const { ref: observerRef } = useResizeDetector({
+ const {
+ width: rawWidth,
+ height: rawHeight,
+ ref,
+ } = useResizeDetector({
refreshMode: 'debounce',
- refreshRate: 300,
- onResize,
+ refreshRate: 100,
+ handleHeight: true,
+ handleWidth: true,
+ skipOnMount: false,
});
+ // Round dimensions immediately to prevent sub-pixel render loops
+ const width = useMemo(
+ () => (rawWidth ? Math.floor(rawWidth) : undefined),
+ [rawWidth],
+ );
+
+ const height = useMemo(
+ () => (rawHeight ? Math.floor(rawHeight) : undefined),
Review Comment:
**Suggestion:** Falsy-value bug for height: the check `rawHeight ? ... : undefined` treats 0 (and other non-finite values) as absent and yields `undefined` instead of the actual 0 height; guard with a finite-number check (`rawHeight != null && Number.isFinite(rawHeight)`). [logic error]
<details>
<summary><b>Severity Level:</b> Major ⚠️</summary>
```mdx
- ❌ ExploreChartPanel charts receive incorrect height value.
- ⚠️ Chart layout falls back to stale height measurements.
- ⚠️ Visual overlap when container is collapsed to zero height.
```
</details>
```suggestion
() => (rawHeight != null && Number.isFinite(rawHeight) ? Math.floor(rawHeight) : undefined),
```
<details>
<summary><b>Steps of Reproduction ✅ </b></summary>
```mdx
1. Run the app and open the Explore page so the chart panel mounts the hook
`useResizeDetectorByObserver()` (this file).
2. Cause the chart container to have height `0` (for example, collapse a vertical toolbar
or use a browser devtools layout adjustment). `rawHeight` is assigned at line 25 in this
file by the resize detector.
3. The height memo at lines 41-44 runs `() => (rawHeight ? Math.floor(rawHeight) :
undefined)`; because `rawHeight === 0` is falsy, the result becomes `undefined` instead of
`0`.
4. Components reading `height` may treat `undefined` as "not measured" and skip layout
updates or reuse previous heights, producing rendering/overlap issues in Explore charts
when the actual container height is zero.
```
</details>
<details>
<summary><b>Prompt for AI Agent 🤖 </b></summary>
```mdx
This is a comment left during a code review.
**Path:** superset-frontend/src/explore/components/ExploreChartPanel/useResizeDetectorByObserver.ts
**Line:** 42:42
**Comment:**
*Logic Error: Falsy-value bug for height: the check `rawHeight ? ... : undefined` treats 0 (and other non-finite values) as absent and yields `undefined` instead of the actual 0 height; guard with a finite-number check (`rawHeight != null && Number.isFinite(rawHeight)`).
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.
```
</details>
##########
superset-frontend/src/explore/components/ExploreChartPanel/index.tsx:
##########
@@ -243,19 +262,23 @@ const ExploreChartPanel = ({
setShowSplit(isOpen);
}, []);
- const renderChart = useCallback(
+ const renderChart = useMemo(
() => (
<div
css={css`
min-height: 0;
- flex: 1;
- overflow: auto;
+ flex: 1 1 auto;
+ overflow: hidden;
+ position: relative;
+ box-sizing: border-box;
+ opacity: ${chartPanelWidth && chartPanelHeight ? 1 : 0};
Review Comment:
**Suggestion:** The opacity check uses truthiness (`chartPanelWidth && chartPanelHeight`) which treats 0 as falsy; if a dimension is legitimately 0 the element will be hidden. Use explicit undefined/null checks so zero dimensions don't incorrectly force opacity 0. [logic error]
<details>
<summary><b>Severity Level:</b> Major ⚠️</summary>
```mdx
- ❌ Explore chart panel can remain hidden unexpectedly.
- ⚠️ ChartContainer not mounted preventing chart render.
- ⚠️ Standalone/hidden-mount scenarios show blank charts.
```
</details>
```suggestion
opacity: ${typeof chartPanelWidth !== 'undefined' && typeof chartPanelHeight !== 'undefined' ? 1 : 0};
```
<details>
<summary><b>Steps of Reproduction ✅ </b></summary>
```mdx
1. Mount the Explore chart editor which instantiates ExploreChartPanel (component defined
at src/explore/components/ExploreChartPanel/index.tsx, around the function definition at
the top of the file). The renderChart block is created by the useMemo beginning at the
hunk shown around lines 265-276 in the PR diff.
2. The hook useResizeDetectorByObserver
(src/explore/components/ExploreChartPanel/useResizeDetectorByObserver.ts, lines 22-51)
returns a width/height computed via Math.floor(rawWidth/rawHeight). If the DOM measurement
returns a small value that floors to 0 (rawWidth in [0,1)), useResizeDetectorByObserver
sets width = 0 (concrete code: Math.floor(rawWidth) at
src/.../useResizeDetectorByObserver.ts:30-38).
3. In the renderChart CSS (src/explore/components/ExploreChartPanel/index.tsx:269-276 per
the PR hunk), the opacity is computed with the truthy expression at line 274: opacity:
${chartPanelWidth && chartPanelHeight ? 1 : 0};. When chartPanelWidth === 0 (a real value
returned by the resize hook), this expression evaluates falsy causing opacity to be 0.
4. Additionally, ChartContainer is conditionally rendered only when the same truthy
expression is true (see the conditional at
src/explore/components/ExploreChartPanel/index.tsx:279-283 in the hunk). Therefore a
measured dimension of 0 prevents ChartContainer from mounting and the chart area remains
hidden/transparent in the Explore panel until dimensions change to non-zero.
Note: This is reproducible when the component is measured with a very small size on mount
(e.g., mounted into a hidden or collapsed DOM container), which is exactly when
useResizeDetectorByObserver can return 0 due to Math.floor; the fix changes the check to
explicit undefined checks so legitimate numeric zeros are treated as valid dimensions.
```
</details>
<details>
<summary><b>Prompt for AI Agent 🤖 </b></summary>
```mdx
This is a comment left during a code review.
**Path:** superset-frontend/src/explore/components/ExploreChartPanel/index.tsx
**Line:** 274:274
**Comment:**
*Logic Error: The opacity check uses truthiness (`chartPanelWidth && chartPanelHeight`) which treats 0 as falsy; if a dimension is legitimately 0 the element will be hidden. Use explicit undefined/null checks so zero dimensions don't incorrectly force opacity 0.
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.
```
</details>
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "ramiroaquinoromero (via GitHub)" <gi...@apache.org>.
ramiroaquinoromero commented on code in PR #37501:
URL: https://github.com/apache/superset/pull/37501#discussion_r2805461161
##########
superset-frontend/src/explore/components/ExploreChartPanel/index.tsx:
##########
@@ -282,7 +305,7 @@ const ExploreChartPanel = ({
})}
{...(chart.chartStatus && { chartStatus: chart.chartStatus })}
/>
- )}
+ ) : null}
</div>
Review Comment:
We use the ternary so we never render a falsy value (like 0). With &&, if width or height is 0, React would show that "0" on screen, with ? : null we only render the chart or nothing.
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org
Re: [PR] fix(explore-chart-panel): last queried at overlap [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #37501:
URL: https://github.com/apache/superset/pull/37501#issuecomment-3888531620
AI Code Review is in progress (usually takes 3 to 15 minutes unless it's a very large PR).
<details>
<summary>
Bito Usage Guide
</summary>
**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 <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/available-commands" target="_blank" rel="noopener noreferrer">documentation</a> for additional commands.
**Configuration**
This repository uses `Superset` You can customize the agent settings <a href="https://alpha.bito.ai/home/ai-agents/code-review-agent" target="_blank" rel="noopener noreferrer">here</a> or contact your Bito workspace admin at evan@preset.io.
**Documentation & Help**
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/getting-started/install-run-using-bito-cloud/create-or-customize-an-agent-instance" target="_blank" rel="noopener noreferrer">Customize agent settings</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/implementing-custom-code-review-rules" target="_blank" rel="noopener noreferrer">Review rules</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent" target="_blank" rel="noopener noreferrer">General documentation</a>
- <a href="https://docs.bito.ai/bito-dev-agents/ai-code-review-agent/faqs" target="_blank" rel="noopener noreferrer">FAQ</a>
</details>
--
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: notifications-unsubscribe@superset.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@superset.apache.org
For additional commands, e-mail: notifications-help@superset.apache.org