Paladium Bot v100.3.75 — Test Report
====================================

Source baseline:
- paladium-single-bot-100.3.74-final.zip

Changes validated:
- Premium/Custom Emoji map loader now merges config + database settings and no longer ignores a valid DB map when config contains {}.
- Premium Emoji mapping is longest-first and existing <tg-emoji> tags are protected from double conversion.
- Folder default-caption input now uses the same telegramRichValue()/puCaptionPartsForStorage() pipeline as uploader Rich captions.
- Folder captions preserve native Telegram custom_emoji entities and custom_emoji_id in canonical storage.
- Text/caption input for folder captions is rejected when empty or whitespace-only.
- Unsupported sendRichMessage API attempts removed from send/edit/stat paths.
- Rich2 content is flattened locally to a safe Bot API text fallback instead of sending a non-standard method.
- Telegram API error logging now captures caller file, line, function and a bounded trace.
- Empty Telegram text is blocked before API delivery where possible and post-normalization guard remains active.

Validation:
- PHP syntax lint: PASS — 73 PHP files, 0 errors.
- Premium map + native custom_emoji entity capture: PASS.
- Rich1 -> HTML <tg-emoji> -> native entity round-trip: PASS.
- Empty/whitespace Rich text detection: PASS.
- Rich2 plain fallback extraction: PASS.
- Unsupported sendRichMessage call-site scan: PASS — no executable tg('sendRichMessage', ...) calls remain.
- Literal empty sendMessage/editMessageText call-site scan: PASS.
- ZIP integrity: PASS (verified with unzip -t).
- SHA256 recorded in accompanying .sha256 file.

Production limitation:
- A live Telegram/cPanel production request was not executable in this environment, so final confirmation still requires deploying this build and testing one real Premium Emoji folder caption plus one publish-to-group/channel operation.
