Paladium Bot v100.3.31 — Rich Text / Premium Emoji Repair Test Report
===============================================================
Baseline: v100.3.30

FIXED
- Final uploader preview no longer flattens the stored rich title to plain text.
- RICH1 envelopes created for media-caption overflow are recomposed as native Rich payloads before send; literal RICH1/base64 can no longer be emitted by that path.
- Media-group caption overflow now uses telegramRichSplitPayload(), preserving Telegram entities and UTF-16 offsets.
- Media caption edit truncation preserves Rich entities instead of stripping all formatting.
- Uploader single/batch final commit has a DB-ID recovery fallback when PDO::lastInsertId() returns 0.
- Uploader existing-image preview now uses the stored rich title.

VALIDATION
- PHP syntax lint: PASS — 74 PHP files, 0 errors.
- RICH1 payload/compose/split/entity-boundary test: PASS.
- Static RICH1 emission audit: PASS — no visible-message code creates a concatenated raw RICH1 overflow; only the centralized rich helpers contain the RICH1 marker.

EXPECTED BEHAVIOR
- Bold/italic/underline/strikethrough/spoiler/code/pre/blockquote/links/mentions/custom_emoji are retained when the original Telegram message contains those entities.
- Premium Custom Emoji remain native Telegram custom_emoji entities rather than being downgraded to ordinary Unicode emoji.
- Rich content stored in the database/state is rendered through Telegram entities at the API boundary.

LIMITATION
- Live Telegram delivery cannot be exercised from this offline test environment. Production validation should send one test caption containing Bold + Link + Blockquote + at least 2 Custom Emoji and inspect the resulting message entities.
