aminghadersohi commented on PR #44797: URL: https://github.com/apache/superset/pull/44797#issuecomment-5902705143
### Acceptance at 892fc24aad **1. 100+ tabs / 400 charts: `tabs_only` fits under the guard, and `tab` returns that tab's charts: PASS** Test setup: a real SQLite metadata DB with a 114-tab dashboard (3 nesting levels) and 404 charts, 44 of them in rows above the tabs. The tool was called through the FastMCP client with `ResponseSizeGuardMiddleware` set to `max_bytes=40000`. - Full layout: 71,797 bytes, rejected by the guard (as expected). - `tabs_only=true`: 10,713 bytes (about 2.7k tokens at bytes/4). `tab_tree` has 114 entries at depths 0–2, and each top-level tab has `chart_count=60`. `tabs` and `charts` are empty. - `tab="TAB-t2m1"` (nested ID): 3,548 bytes, 6 tabs, 20 charts, all inside that subtree. - `tab="Top 3"` (title): 10,330 bytes, 19 tabs, 60 charts, `scope.tab_id="TAB-t3"`. - `tab="TAB-t1", tabs_only=true`: 2,042 bytes, 19-entry `tab_tree`. - `untabbed_only=true`: 44 charts, all with `tab_id=null`. - A duplicated title returns `ambiguous_tab`. **2. Callers passing only `identifier` get the same output as before: PASS (additive only)** I ran the same fixture at the merge-base and at head, with the guard disabled, using both an ID and a slug. Every field from the merge-base output is identical at head: 114 tabs and 404 charts. Head adds three fields: `tab_tree: []`, `untabbed_chart_count: 44` and `scope: null`. No fields were removed. The guarded full-layout error at the merge-base gave no recovery steps. At head it lists `tabs_only`, then `tab` (nested ID), then `untabbed_only` (44 distinct charts). **3. Unit tests cover both modes and the oversized-full-layout hint: PASS** - `pytest tests/unit_tests/mcp_service/dashboard/`: 692 passed. This includes `test_layout_tabs_only_large_tree`, `test_layout_tab_filter_large_tree`, `test_layout_default_response_unchanged`, `test_layout_oversized_hint_follows_scope`, `test_layout_oversized_hint_without_payload` and `test_layout_oversized_guard_hint`. - `pytest -n 4 tests/unit_tests/mcp_service`: 5,649 passed, 3 skipped. **Access check (same fixture): PASS** - A Gamma user who can see the dashboard through dashboard RBAC but has no datasource access to its charts gets the same scoped payloads as Admin. Every scoped `chart_id` also appears in the full layout. - A Gamma user without access to the dashboard gets `not_found` for every scope option. **Review thread "Dead selected_ids initializer": closed.** The initializer was removed in 6bff49560c, and there is already a reply on that thread. -- 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: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
