mirror of
https://github.com/infiniflow/ragflow.git
synced 2026-06-29 15:31:05 +08:00
### What problem does this PR solve? This PR fixes a mismatch between the MCP retrieval contract and the backend retrieval API. `ragflow_retrieval` already describes `dataset_ids` as optional, but `/api/v1/retrieval` still rejected omitted or empty `dataset_ids` with `` `dataset_ids` is required. ``. That made MCP retrieval fail even though the tool schema promised that the request could search across all available datasets. This change updates `/api/v1/retrieval` to accept missing or empty `dataset_ids`, resolve all accessible datasets for the authenticated user, and keep the route schema aligned with the new runtime behavior. It also adds focused unit coverage for the fallback resolution path and the no-accessible-datasets case. ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) Fixes: #13981 <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Bug Fixes** * Improved dataset resolution to reliably discover all accessible datasets through proper pagination, replacing the previous parsing method. * Enhanced error handling with clearer messaging when no datasets are available for retrieval. <!-- end of auto-generated comment: release notes by coderabbit.ai -->