- `EnrichmentService.discover` (`opencontractserver/enrichment/services/enrichment_service.py`) replaces the ambiguous `documents_total` result key with two unambiguous counts — `documents_total_in_corpus` (corpus-as-gate total) and `documents_visible_to_caller` (after the `MIN(corpus, document)` filter, before the `max_documents` cap) — so the `documents_truncated` "never silent" guarantee can no longer be defeated by permission filtering masquerading as a small corpus. `documents_truncated` now reflects only the `max_documents` cap applied to the visible set. The `discover_authorities` agent-tool docstring and `opencontractserver/tests/test_enrichment_discovery.py` are updated for the new keys.
- Removed the unreachable `require_document_visibility` parameter from `EnrichmentService._load`: all three callers hardcoded `True`, so the corpus-as-gate branch was dead code. The `MIN(corpus, document)` decision and its rationale now live once in `_load` instead of being repeated as a justification comment at every call site.
