User story: Search across all content sources
**As a** listener, **I want** to search one query and get results from all my installed plugins, **so that** I don't need to search each source separately.
User story: Search across all content sources
As a listener,
I want to search one query and get results from all my installed plugins,
so that I don’t need to search each source separately.
Priority
Must
Acceptance criteria
- Given two plugins with
searchcapability are registered, when I type a query in the search bar, then results from both plugins appear. - Given one plugin is slow or unresponsive, when I search, then results from responsive plugins appear immediately and the slow plugin’s results arrive when ready (or timeout with a notification).
- Given two plugins return the same track, when search results are displayed, then the duplicate is merged into one entry.
- Given no plugins are installed, when I search, then I see a helpful message explaining how to add a plugin.
Notes / constraints
- Search is parallel with per-plugin timeout (FR-CORE-4).
- Deduplication is advisory — may not catch all edge cases (constraint A6).
Traceability
- Requirement IDs: FR-CORE-4, FR-PLUGIN-4
- NFRs: NFR-PERF-4
- Feature docs:
docs/user/features/search.md