aminghadersohi opened a new pull request, #42659:
URL: https://github.com/apache/superset/pull/42659

   ### SUMMARY
   
   Dashboard lookup tools can resolve shared `/dashboard/p/<key>/` links and 
bare permalink keys, returning the dashboard identifier together with the 
permalink's active-tab and filter state. This extends the existing tools rather 
than adding a resolver round trip: their response models already carry 
dashboard metadata and state, so transparent resolution keeps the workflow 
discoverable without losing context.
   
   Invalid or expired permalinks return an actionable error asking for a fresh 
shared link. Numeric IDs, UUIDs, and slugs retain their existing lookup path; 
ambiguous bare strings are attempted as permalinks only after ordinary 
identifier lookup fails.
   
   ### BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
   
   Not applicable; this changes MCP tool behavior and schemas only.
   
   ### TESTING INSTRUCTIONS
   
   ```bash
   ruff format superset/mcp_service/dashboard/schemas.py 
superset/mcp_service/dashboard/permalink.py 
superset/mcp_service/dashboard/tool/get_dashboard_info.py 
superset/mcp_service/dashboard/tool/get_dashboard_layout.py 
tests/unit_tests/mcp_service/dashboard/tool/test_dashboard_tools.py 
tests/unit_tests/mcp_service/dashboard/tool/test_get_dashboard_layout.py
   ruff check superset/mcp_service/dashboard/schemas.py 
superset/mcp_service/dashboard/permalink.py 
superset/mcp_service/dashboard/tool/get_dashboard_info.py 
superset/mcp_service/dashboard/tool/get_dashboard_layout.py 
tests/unit_tests/mcp_service/dashboard/tool/test_dashboard_tools.py 
tests/unit_tests/mcp_service/dashboard/tool/test_get_dashboard_layout.py
   pytest -q tests/unit_tests/mcp_service/dashboard/
   pre-commit run --files superset/mcp_service/app.py 
superset/mcp_service/dashboard/schemas.py 
superset/mcp_service/dashboard/permalink.py 
superset/mcp_service/dashboard/tool/get_dashboard_info.py 
superset/mcp_service/dashboard/tool/get_dashboard_layout.py 
tests/unit_tests/mcp_service/dashboard/tool/test_dashboard_tools.py 
tests/unit_tests/mcp_service/dashboard/tool/test_get_dashboard_layout.py
   ```
   
   The dashboard MCP unit suite passes (362 tests). Changed-file pre-commit 
passes. The repository-wide pre-commit run was also attempted; unrelated 
existing type/lint failures and missing frontend dependencies prevent that 
full-tree gate from completing.
   
   ### ADDITIONAL INFORMATION
   
   - [ ] Has associated issue:
   - [ ] Required feature flags:
   - [ ] 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
   - [x] Introduces new feature or API
   - [ ] Removes existing feature or API
   
   #### Blast radius
   
   Apache Superset's optional MCP service only. No migrations, feature flags, 
authentication changes, workspace isolation changes, or database query behavior 
changes.
   
   #### Risk and rollback
   
   The main risk is interpreting an unknown slug-like identifier as a permalink 
after normal lookup fails. Existing identifiers are resolved first, and 
reverting this commit restores the previous behavior.
   
   #### Eval evidence
   
   The deployment-backed agent eval suite was not run for this draft because no 
deployed build is available. The deterministic MCP unit coverage exercises 
permalink resolution, active-tab/filter context, invalid links, and existing 
identifier forms.
   
   #### Cost and latency delta
   
   No model, prompt-routing, or token changes. A bare permalink key can add one 
permalink lookup after an unsuccessful ordinary identifier lookup; explicit 
permalink inputs and shared URLs resolve directly. Deployment-backed latency 
measurements were not available for this draft.
   
   #### Prompt / non-determinism
   
   Tool descriptions were updated to identify `/dashboard/p/<key>/` links and 
direct agents to the lookup tools. The resolution behavior is deterministic; no 
model prompt or routing behavior changed.
   
   #### Review guidance
   
   Start with `dashboard/permalink.py` and the request/response schema changes, 
then review how each lookup tool reuses the resolved dashboard ID and safely 
exposes permalink state. The most important behavior is the 
ordinary-identifier-first fallback for bare strings.
   


-- 
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]

Reply via email to