Selector loads the entire catalog when an agent has no scope subscriptions
## Problem
Follow-up to:
#3586294+s
Parent:
#3586310+s
_**This issue should be verified prior to working on it to make sure it is valid.**_
`AiContextSelector::getPrefilteredPublishedItemIds()` returns NULL when `$scopeSubscriptions` is empty, so the chunk loop loads **every published context item** (full entities including content fields) on every AI request. This hits the very common "global items only" agent configuration. With thousands of items that's dozens of chunked queries, thousands of entity hydrations, and thousands of per-item plugin `matchesCurrentContext()` calls per request — the `match_all` broad-scan warning only logs, it doesn't avoid the work.
## Proposed resolution
When subscriptions are empty, prefilter via the scope index — global candidates from `getItemIdsByScopeValues('global', ['global'])` plus target-entity candidates — and skip the full scan unless `SELECTION_MODE_MATCH_ALL` is explicitly requested.
## AI usage
- [x] AI assisted issue
issue