You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@superset.apache.org by "aminghadersohi (via GitHub)" <gi...@apache.org> on 2026/05/05 23:26:45 UTC
[PR] fix(mcp): trim get_dataset_info response to prevent oversized payloads [superset]
aminghadersohi opened a new pull request, #39898:
URL: https://github.com/apache/superset/pull/39898
### SUMMARY
`get_dataset_info` could return ~80KB+ payloads for wide datasets, causing clients to truncate the response and LLM agents to time out trying to recover. Two issues:
1. The response always included verbose top-level fields (`params`, `template_params`, `extra`, `certified_by`, `certification_details`, `tags`, `schema_perm`) regardless of caller need.
2. Each `TableColumnInfo` serialized all 7 fields including long `description` text, so a 50-column dataset with verbose descriptions alone could exceed 30KB.
This change adds two new request parameters to `GetDatasetInfoRequest`:
- **`select_columns`** — top-level fields to include. Defaults to a lean set (`id`, `table_name`, `schema`, `database_name`, `database_id`, `uuid`, `is_virtual`, `description`, `main_dttm_col`, `sql`, `url`, `columns`, `metrics`).
- **`column_fields`** — per-column fields to include in `columns` entries. Defaults to `["column_name", "type", "is_dttm"]`. Wider lists let callers opt in to `verbose_name`, `groupby`, `filterable`, `description`.
`TableColumnInfo` and `DatasetInfo` already had a `model_serializer(mode="wrap")` that reads `select_columns` from the Pydantic serialization context. The tool now passes both `select_columns` and `column_fields` through `model_dump(context=...)` so filtering applies during serialization rather than after, mirroring the pattern already in `list_datasets` and `list_databases`.
The default response shrinks from ~80KB to a few KB for typical wide datasets while existing callers that pass explicit `select_columns` continue to work unchanged.
### BEFORE/AFTER SCREENSHOTS
N/A — backend change. Behavior change is observable via response payload size on `tools/call` for `get_dataset_info`.
### TESTING INSTRUCTIONS
```bash
pytest tests/unit_tests/mcp_service/dataset/ -v
```
New tests verify:
- Default response excludes verbose top-level and per-column fields.
- Explicit `select_columns` trims the response to requested fields only.
- Explicit `column_fields` opts in to verbose per-column fields.
### ADDITIONAL INFORMATION
- [ ] 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(mcp): trim get_dataset_info response to prevent oversized payloads [superset]
Posted by "aminghadersohi (via GitHub)" <gi...@apache.org>.
aminghadersohi commented on code in PR #39898:
URL: https://github.com/apache/superset/pull/39898#discussion_r3192222129
##########
superset/mcp_service/dataset/schemas.py:
##########
@@ -93,6 +93,29 @@ class TableColumnInfo(BaseModel):
filterable: bool | None = Field(None, description="Is filterable")
description: str | None = Field(None, description="Column description")
+ @model_serializer(mode="wrap")
+ def _filter_column_fields_by_context(
+ self, serializer: Any, info: Any
+ ) -> Dict[str, Any]:
+ """Filter column fields based on serialization context.
+
+ If context contains 'column_fields', only include those fields.
+ Otherwise, include all fields. This trims wide datasets so a
+ 50-column dataset doesn't ship 50 long descriptions when the
+ caller only needs column_name + type.
+ """
+ data = serializer(self)
+
+ if info.context and isinstance(info.context, dict):
+ column_fields = info.context.get("column_fields")
+ if column_fields:
+ requested = set(column_fields)
+ # Always preserve column_name as the only required field
+ requested.add("column_name")
+ return {k: v for k, v in data.items() if k in requested}
+
+ return data
Review Comment:
Already addressed via a different layer in b888574b16 — the `_parse_column_fields` field_validator on `GetDatasetInfoRequest` coerces an empty list (and None) back to `DEFAULT_GET_DATASET_INFO_COLUMN_FIELDS`, so the serializer never sees an empty `column_fields` at runtime. Same outcome you wanted (no caller silently re-enables verbose per-column fields), but resolved before the model is constructed rather than inside the serializer. Regression test in `test_get_dataset_info_empty_lists_fall_back_to_defaults` and `test_get_dataset_info_request_empty_lists_use_defaults`.
--
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(mcp): trim get_dataset_info response to prevent oversized payloads [superset]
Posted by "aminghadersohi (via GitHub)" <gi...@apache.org>.
aminghadersohi commented on PR #39898:
URL: https://github.com/apache/superset/pull/39898#issuecomment-4390156981
Closing — re-scoping to a proper fix. The original approach (lean defaults + select_columns/column_fields) was a workaround for the deeper issue: the char-based token estimator in `superset/mcp_service/utils/token_utils.py` (3.5 chars/token) under-counts JSON-heavy MCP responses vs. Claude's actual tokenizer, so payloads slip under our token cap while exceeding Claude Agent SDK's effective threshold.
Replacing this PR with one that fixes the estimator itself (Claude-aligned tokenization with tiktoken + heuristic fallback) so the existing 5-phase truncation in `ResponseSizeGuardMiddleware` actually fires when it should. New PR coming next.
--
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(mcp): trim get_dataset_info response to prevent oversized payloads [superset]
Posted by "aminghadersohi (via GitHub)" <gi...@apache.org>.
aminghadersohi commented on code in PR #39898:
URL: https://github.com/apache/superset/pull/39898#discussion_r3192191849
##########
superset/mcp_service/dataset/schemas.py:
##########
@@ -93,6 +93,29 @@ class TableColumnInfo(BaseModel):
filterable: bool | None = Field(None, description="Is filterable")
description: str | None = Field(None, description="Column description")
+ @model_serializer(mode="wrap")
+ def _filter_column_fields_by_context(
+ self, serializer: Any, info: Any
+ ) -> Dict[str, Any]:
+ """Filter column fields based on serialization context.
+
+ If context contains 'column_fields', only include those fields.
+ Otherwise, include all fields. This trims wide datasets so a
+ 50-column dataset doesn't ship 50 long descriptions when the
+ caller only needs column_name + type.
+ """
+ data = serializer(self)
+
+ if info.context and isinstance(info.context, dict):
+ column_fields = info.context.get("column_fields")
+ if column_fields:
+ requested = set(column_fields)
+ # Always preserve column_name as the only required field
+ requested.add("column_name")
+ return {k: v for k, v in data.items() if k in requested}
Review Comment:
Good catch. Fixed in b888574b16 — both and now coerce to the lean default in the field validators rather than falling through to "no filter". Added a regression test () that passes an empty list and asserts the lean defaults are still applied.
##########
superset/mcp_service/dataset/schemas.py:
##########
@@ -93,6 +93,29 @@ class TableColumnInfo(BaseModel):
filterable: bool | None = Field(None, description="Is filterable")
description: str | None = Field(None, description="Column description")
+ @model_serializer(mode="wrap")
+ def _filter_column_fields_by_context(
+ self, serializer: Any, info: Any
+ ) -> Dict[str, Any]:
+ """Filter column fields based on serialization context.
+
+ If context contains 'column_fields', only include those fields.
+ Otherwise, include all fields. This trims wide datasets so a
+ 50-column dataset doesn't ship 50 long descriptions when the
+ caller only needs column_name + type.
+ """
+ data = serializer(self)
+
+ if info.context and isinstance(info.context, dict):
+ column_fields = info.context.get("column_fields")
+ if column_fields:
+ requested = set(column_fields)
+ # Always preserve column_name as the only required field
+ requested.add("column_name")
+ return {k: v for k, v in data.items() if k in requested}
Review Comment:
Good catch. Fixed in b888574b16 — both `select_columns=[]` and `column_fields=[]` now coerce to the lean default in the field validators rather than falling through to "no filter". Added a regression test (`test_get_dataset_info_empty_lists_fall_back_to_defaults`) that passes an empty list and asserts the lean defaults are still applied.
--
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(mcp): trim get_dataset_info response to prevent oversized payloads [superset]
Posted by "aminghadersohi (via GitHub)" <gi...@apache.org>.
aminghadersohi closed pull request #39898: fix(mcp): trim get_dataset_info response to prevent oversized payloads
URL: https://github.com/apache/superset/pull/39898
--
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(mcp): trim get_dataset_info response to prevent oversized payloads [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #39898:
URL: https://github.com/apache/superset/pull/39898#issuecomment-4383914183
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(mcp): trim get_dataset_info response to prevent oversized payloads [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on code in PR #39898:
URL: https://github.com/apache/superset/pull/39898#discussion_r3192215586
##########
superset/mcp_service/dataset/schemas.py:
##########
@@ -93,6 +93,29 @@ class TableColumnInfo(BaseModel):
filterable: bool | None = Field(None, description="Is filterable")
description: str | None = Field(None, description="Column description")
+ @model_serializer(mode="wrap")
+ def _filter_column_fields_by_context(
+ self, serializer: Any, info: Any
+ ) -> Dict[str, Any]:
+ """Filter column fields based on serialization context.
+
+ If context contains 'column_fields', only include those fields.
+ Otherwise, include all fields. This trims wide datasets so a
+ 50-column dataset doesn't ship 50 long descriptions when the
+ caller only needs column_name + type.
+ """
+ data = serializer(self)
+
+ if info.context and isinstance(info.context, dict):
+ column_fields = info.context.get("column_fields")
+ if column_fields:
+ requested = set(column_fields)
+ # Always preserve column_name as the only required field
+ requested.add("column_name")
+ return {k: v for k, v in data.items() if k in requested}
+
+ return data
Review Comment:
<div>
<div id="suggestion">
<div id="issue"><b>Incorrect Filtering Logic</b></div>
<div id="fix">
The serializer skips filtering when `column_fields` is an empty list, returning all fields instead of just `column_name`. This can lead to unexpectedly large responses if users pass `[]` intending minimal output. Update the logic to always filter when the key is present, defaulting to only `column_name` for empty lists.
</div>
<details>
<summary>
<b>Code suggestion</b>
</summary>
<blockquote>Check the AI-generated fix before applying</blockquote>
<div id="code">
````suggestion
if info.context and isinstance(info.context, dict):
column_fields = info.context.get("column_fields")
if "column_fields" in info.context:
requested = set(column_fields or [])
# Always preserve column_name as the only required field
requested.add("column_name")
return {k: v for k, v in data.items() if k in requested}
return data
````
</div>
</details>
</div>
<small><i>Code Review Run #f4f326</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(mcp): trim get_dataset_info response to prevent oversized payloads [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 #39898:
URL: https://github.com/apache/superset/pull/39898#discussion_r3192150614
##########
superset/mcp_service/dataset/schemas.py:
##########
@@ -93,6 +93,29 @@ class TableColumnInfo(BaseModel):
filterable: bool | None = Field(None, description="Is filterable")
description: str | None = Field(None, description="Column description")
+ @model_serializer(mode="wrap")
+ def _filter_column_fields_by_context(
+ self, serializer: Any, info: Any
+ ) -> Dict[str, Any]:
+ """Filter column fields based on serialization context.
+
+ If context contains 'column_fields', only include those fields.
+ Otherwise, include all fields. This trims wide datasets so a
+ 50-column dataset doesn't ship 50 long descriptions when the
+ caller only needs column_name + type.
+ """
+ data = serializer(self)
+
+ if info.context and isinstance(info.context, dict):
+ column_fields = info.context.get("column_fields")
+ if column_fields:
+ requested = set(column_fields)
+ # Always preserve column_name as the only required field
+ requested.add("column_name")
+ return {k: v for k, v in data.items() if k in requested}
Review Comment:
**Suggestion:** The column filtering check treats an explicitly provided empty list as "no filter" and returns all column fields. This is a logic bug because callers can pass `column_fields=[]` (or values that parse to an empty list) and unexpectedly get verbose fields like `description` for every column, which defeats the payload-size reduction and can reintroduce oversized responses/timeouts. Handle empty lists as a valid filter input (e.g., still enforce the minimal required field set) instead of falling back to full serialization. [logic error]
<details>
<summary><b>Severity Level:</b> Critical 🚨</summary>
```mdx
- ❌ MCP `get_dataset_info` cannot honor explicit empty column_fields.
- ⚠️ Wide datasets may still return verbose per-column descriptions.
```
</details>
<details>
<summary><b>Steps of Reproduction ✅ </b></summary>
```mdx
1. In `superset/tests/unit_tests/mcp_service/dataset/tool/test_dataset_tools.py:18-31`,
copy the pattern of `test_get_dataset_info_respects_column_fields` but change the request
payload to use an empty list for `column_fields`:
`{"request": {"identifier": 3, "select_columns": ["id", "columns"], "column_fields":
[]}}`.
2. This request is validated into `GetDatasetInfoRequest` in
`superset/mcp_service/dataset/schemas.py:172-221`; the `@field_validator("column_fields")`
calls `parse_json_or_list` (see `schema_utils.py:111-151`), which returns `[]` unchanged
for a Python list, so `request.column_fields` is an empty list, not `None`.
3. The MCP tool handler `get_dataset_info` in
`superset/mcp_service/dataset/tool/get_dataset_info.py:21-27` fetches a `DatasetInfo`
instance, then at lines 119-126 calls `result.model_dump(..., context={"select_columns":
request.select_columns, "column_fields": request.column_fields})`, so
`info.context["column_fields"]` is `[]` for this call.
4. During serialization, each `TableColumnInfo` is processed by
`_filter_column_fields_by_context` in `superset/mcp_service/dataset/schemas.py:27-48`;
`info.context` is a dict and `column_fields` is `[]`, so the `if column_fields:` check at
lines 40-42 evaluates false and the method returns `data` unfiltered at line 48, including
verbose fields like `description`, `groupby`, `filterable`, etc. This contradicts the
request's explicit `column_fields=[]` and re-expands column payloads, undermining the PR's
goal of trimming oversized responses.
```
</details>
[Fix in Cursor](https://app.codeant.ai/fix-in-ide?tool=cursor&prompt=This%20is%20a%20comment%20left%20during%20a%20code%20review.%0A%0A%2A%2APath%3A%2A%2A%20superset%2Fmcp_service%2Fdataset%2Fschemas.py%0A%2A%2ALine%3A%2A%2A%20109%3A115%0A%2A%2AComment%3A%2A%2A%0A%09%2ALogic%20Error%3A%20The%20column%20filtering%20check%20treats%20an%20explicitly%20provided%20empty%20list%20as%20%22no%20filter%22%20and%20returns%20all%20column%20fields.%20This%20is%20a%20logic%20bug%20because%20callers%20can%20pass%20%60column_fields%3D%5B%5D%60%20%28or%20values%20that%20parse%20to%20an%20empty%20list%29%20and%20unexpectedly%20get%20verbose%20fields%20like%20%60description%60%20for%20every%20column%2C%20which%20defeats%20the%20payload-size%20reduction%20and%20can%20reintroduce%20oversized%20responses%2Ftimeouts.%20Handle%20empty%20lists%20as%20a%20valid%20filter%20input%20%28e.g.%2C%20still%20enforce%20the%20minimal%20required%20field%20set%29%20instead%20of%20falling%20back%20to%20full%20serializ
ation.%0A%0AValidate%20the%20correctness%20of%20the%20flagged%20issue.%20If%20correct%2C%20How%20can%20I%20resolve%20this%3F%20If%20you%20propose%20a%20fix%2C%20implement%20it%20and%20please%20make%20it%20concise.%0AOnce%20fix%20is%20implemented%2C%20also%20check%20other%20comments%20on%20the%20same%20PR%2C%20and%20ask%20user%20if%20the%20user%20wants%20to%20fix%20the%20rest%20of%20the%20comments%20as%20well.%20if%20said%20yes%2C%20then%20fetch%20all%20the%20comments%20validate%20the%20correctness%20and%20implement%20a%20minimal%20fix%0A) | [Fix in VSCode Claude](https://app.codeant.ai/fix-in-ide?tool=vscode-claude&prompt=This%20is%20a%20comment%20left%20during%20a%20code%20review.%0A%0A%2A%2APath%3A%2A%2A%20superset%2Fmcp_service%2Fdataset%2Fschemas.py%0A%2A%2ALine%3A%2A%2A%20109%3A115%0A%2A%2AComment%3A%2A%2A%0A%09%2ALogic%20Error%3A%20The%20column%20filtering%20check%20treats%20an%20explicitly%20provided%20empty%20list%20as%20%22no%20filter%22%20and%20returns%20all%20column%20fie
lds.%20This%20is%20a%20logic%20bug%20because%20callers%20can%20pass%20%60column_fields%3D%5B%5D%60%20%28or%20values%20that%20parse%20to%20an%20empty%20list%29%20and%20unexpectedly%20get%20verbose%20fields%20like%20%60description%60%20for%20every%20column%2C%20which%20defeats%20the%20payload-size%20reduction%20and%20can%20reintroduce%20oversized%20responses%2Ftimeouts.%20Handle%20empty%20lists%20as%20a%20valid%20filter%20input%20%28e.g.%2C%20still%20enforce%20the%20minimal%20required%20field%20set%29%20instead%20of%20falling%20back%20to%20full%20serialization.%0A%0AValidate%20the%20correctness%20of%20the%20flagged%20issue.%20If%20correct%2C%20How%20can%20I%20resolve%20this%3F%20If%20you%20propose%20a%20fix%2C%20implement%20it%20and%20please%20make%20it%20concise.%0AOnce%20fix%20is%20implemented%2C%20also%20check%20other%20comments%20on%20the%20same%20PR%2C%20and%20ask%20user%20if%20the%20user%20wants%20to%20fix%20the%20rest%20of%20the%20comments%20as%20well.%20if%20said%20yes%2C%20th
en%20fetch%20all%20the%20comments%20validate%20the%20correctness%20and%20implement%20a%20minimal%20fix%0A)
*(Use Cmd/Ctrl + Click for best experience)*
<details>
<summary><b>Prompt for AI Agent 🤖 </b></summary>
```mdx
This is a comment left during a code review.
**Path:** superset/mcp_service/dataset/schemas.py
**Line:** 109:115
**Comment:**
*Logic Error: The column filtering check treats an explicitly provided empty list as "no filter" and returns all column fields. This is a logic bug because callers can pass `column_fields=[]` (or values that parse to an empty list) and unexpectedly get verbose fields like `description` for every column, which defeats the payload-size reduction and can reintroduce oversized responses/timeouts. Handle empty lists as a valid filter input (e.g., still enforce the minimal required field set) instead of falling back to full serialization.
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
```
</details>
<a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F39898&comment_hash=00d5af769ce41f5f3354d10cc202572dc4c972ea224c3f47e269ed5dda52833d&reaction=like'>👍</a> | <a href='https://app.codeant.ai/feedback?pr_url=https%3A%2F%2Fgithub.com%2Fapache%2Fsuperset%2Fpull%2F39898&comment_hash=00d5af769ce41f5f3354d10cc202572dc4c972ea224c3f47e269ed5dda52833d&reaction=dislike'>👎</a>
--
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(mcp): trim get_dataset_info response to prevent oversized payloads [superset]
Posted by "bito-code-review[bot] (via GitHub)" <gi...@apache.org>.
bito-code-review[bot] commented on PR #39898:
URL: https://github.com/apache/superset/pull/39898#issuecomment-4384413145
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(mcp): trim get_dataset_info response to prevent oversized payloads [superset]
Posted by "codecov[bot] (via GitHub)" <gi...@apache.org>.
codecov[bot] commented on PR #39898:
URL: https://github.com/apache/superset/pull/39898#issuecomment-4383987064
## [Codecov](https://app.codecov.io/gh/apache/superset/pull/39898?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
:x: Patch coverage is `39.39394%` with `20 lines` in your changes missing coverage. Please review.
:white_check_mark: Project coverage is 63.26%. Comparing base ([`4a21a53`](https://app.codecov.io/gh/apache/superset/commit/4a21a5365f86d63e4f5e89433595c0a60c32d357?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`b5ed6b6`](https://app.codecov.io/gh/apache/superset/commit/b5ed6b67c4ccc32cc6a1e3b72aa81e69267fcfd3?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
| [Files with missing lines](https://app.codecov.io/gh/apache/superset/pull/39898?dropdown=coverage&src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Patch % | Lines |
|---|---|---|
| [superset/mcp\_service/dataset/schemas.py](https://app.codecov.io/gh/apache/superset/pull/39898?src=pr&el=tree&filepath=superset%2Fmcp_service%2Fdataset%2Fschemas.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VwZXJzZXQvbWNwX3NlcnZpY2UvZGF0YXNldC9zY2hlbWFzLnB5) | 42.85% | [16 Missing :warning: ](https://app.codecov.io/gh/apache/superset/pull/39898?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [...erset/mcp\_service/dataset/tool/get\_dataset\_info.py](https://app.codecov.io/gh/apache/superset/pull/39898?src=pr&el=tree&filepath=superset%2Fmcp_service%2Fdataset%2Ftool%2Fget_dataset_info.py&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#diff-c3VwZXJzZXQvbWNwX3NlcnZpY2UvZGF0YXNldC90b29sL2dldF9kYXRhc2V0X2luZm8ucHk=) | 20.00% | [4 Missing :warning: ](https://app.codecov.io/gh/apache/superset/pull/39898?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
<details><summary>Additional details and impacted files</summary>
```diff
@@ Coverage Diff @@
## master #39898 +/- ##
==========================================
- Coverage 63.88% 63.26% -0.62%
==========================================
Files 2583 2583
Lines 136592 136624 +32
Branches 31502 31506 +4
==========================================
- Hits 87265 86440 -825
- Misses 47814 48656 +842
- Partials 1513 1528 +15
```
| [Flag](https://app.codecov.io/gh/apache/superset/pull/39898/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | |
|---|---|---|
| [hive](https://app.codecov.io/gh/apache/superset/pull/39898/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `39.39% <39.39%> (+<0.01%)` | :arrow_up: |
| [mysql](https://app.codecov.io/gh/apache/superset/pull/39898/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [postgres](https://app.codecov.io/gh/apache/superset/pull/39898/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `59.11% <39.39%> (-0.02%)` | :arrow_down: |
| [presto](https://app.codecov.io/gh/apache/superset/pull/39898/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `41.09% <39.39%> (-0.01%)` | :arrow_down: |
| [python](https://app.codecov.io/gh/apache/superset/pull/39898/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `59.23% <39.39%> (-1.34%)` | :arrow_down: |
| [sqlite](https://app.codecov.io/gh/apache/superset/pull/39898/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
| [unit](https://app.codecov.io/gh/apache/superset/pull/39898/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `?` | |
Flags with carried forward coverage won't be shown. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache#carryforward-flags-in-the-pull-request-comment) to find out more.
</details>
[:umbrella: View full report in Codecov by Sentry](https://app.codecov.io/gh/apache/superset/pull/39898?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
<details><summary> :rocket: New features to boost your workflow: </summary>
- :snowflake: [Test Analytics](https://docs.codecov.com/docs/test-analytics): Detect flaky tests, report on failures, and find test suite problems.
- :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
</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