# Unsupported Media Fallback

## Contract

- Media unsupported by the selected provider is resolved to text or removed before dispatch.
- Every resolution or removal emits an inline `MediaNoticeData` event and a loud server log.
- PDF fallback extracts native embedded text only. It does not invoke OCR: OCR is an optional system capability, and scanned PDFs are removed with the existing no-extractable-text notice.
- Extracted document text is capped by `MAX_EXTRACTED_DOCUMENT_CHARS`.

## Entry points

- `handler.py::preprocess_unsupported_media` rewrites the request and records resolver usage.
- `handler.py::register_media_resolver` is the extension seam for supported conversions.
- `resolvers.py::register_builtin_media_resolvers` installs the document resolver.
